SX1302官方开源代码无法在NUC980主控芯片中使用SPI片选脚
SX1302官方開源代碼無法在NUC980主控芯片中使用SPI片選腳
情況說明
Sx1302代碼:https://gitee.com/rejeee/gw1302s
NUC980DK61Y內(nèi)核代碼:官方提供的虛擬機鏡像包(里面包含linux內(nèi)核及交叉編譯工具鏈)
SPI引腳使用:
如上圖可見,使用了NUC980的SPI0口。使能SPI0口后,運行網(wǎng)關程序時,卻始終反饋如下錯誤:
經(jīng)示波器檢查發(fā)現(xiàn)片選腳無電平變化,但我們已經(jīng)開啟了SS0片選功能。仔細排查內(nèi)核代碼后,發(fā)現(xiàn)文件:
user@ubuntu:"Youself path"/NUC970_Buildroot-master/output/build/linux-master/arch/arm/mach-nuc980/dev.c中有這樣一段代碼:
#ifdef CONFIG_SPI_SPIDEV{.modalias = "spidev",.max_speed_hz = 75000000,.bus_num = 1,#if defined(CONFIG_BOARD_IOT) || defined(CONFIG_BOARD_LORAG).chip_select = 0, //use SS0#else.chip_select = 1, //use SS1#endif.mode = SPI_MODE_0,}, #endif從#if defined(CONFIG_BOARD_IOT) || defined(CONFIG_BOARD_LORAG)中我們可以看出,只有當配置文件為IOT與LORAG時,才會使用SS0片選腳。但我們在make menuconfig時配置的不是這兩個文件,而是eth2uart文件。
因此內(nèi)核代碼配置的是使用ss1而不是ss0。
解決方法
在if條件后加上defined(CONFIG_BOARD_ETH2UART),即:
同時通過make linux-menuconfig進入內(nèi)核配置界面,在Device Drivers > Memory Technology Device (MTD) support界面下取消SPI-NOR device support配置。
重新編譯后,即可成功連接服務器。
總結
以上是生活随笔為你收集整理的SX1302官方开源代码无法在NUC980主控芯片中使用SPI片选脚的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 备战阿里巴巴
- 下一篇: Istio 架构简单说明