SX1302官方开源代码无法在NUC980主控芯片中使用SPI片选脚
生活随笔
收集整理的這篇文章主要介紹了
SX1302官方开源代码无法在NUC980主控芯片中使用SPI片选脚
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SX1302官方開源代碼無法在NUC980主控芯片中使用SPI片選腳
情況說明
Sx1302代碼:https://gitee.com/rejeee/gw1302s
NUC980DK61Y內核代碼:官方提供的虛擬機鏡像包(里面包含linux內核及交叉編譯工具鏈)
SPI引腳使用:
如上圖可見,使用了NUC980的SPI0口。使能SPI0口后,運行網關程序時,卻始終反饋如下錯誤:
經示波器檢查發現片選腳無電平變化,但我們已經開啟了SS0片選功能。仔細排查內核代碼后,發現文件:
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文件。
因此內核代碼配置的是使用ss1而不是ss0。
解決方法
在if條件后加上defined(CONFIG_BOARD_ETH2UART),即:
同時通過make linux-menuconfig進入內核配置界面,在Device Drivers > Memory Technology Device (MTD) support界面下取消SPI-NOR device support配置。
重新編譯后,即可成功連接服務器。
總結
以上是生活随笔為你收集整理的SX1302官方开源代码无法在NUC980主控芯片中使用SPI片选脚的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 备战阿里巴巴
- 下一篇: Istio 架构简单说明