esp8266 spi slave 驱动调试



最近在ESP8266 上要搞个通讯协议与mcu 通讯 ,8266 做从机,开发的过程以及遇到的问题,记录下来,供查考。

1,首先根据需求和esp8266的spi说明文档参见esp8266-technical_reference_cn.pdf,MCU与8266 需要双向数据交互,且为了编程方便,通讯数据采用定长,最后决定采用双线透传协议通讯(有现成的例程也是重要原因,能少走弯路)

2. spi 双线透传的例程在NONOS SDK 下,先把它的驱动文件 spi.c 搬到我的应用里来,我用的是RTOS SDK, 需要移植。

写了简单的测试程序。先初始化,并在接收中断里发送消息给任务。

    spi_slave_init( SpiNum_HSPI, 32); 32 是数据段长度,也就是一次需要发送34 个字节才会触发接收中断。

3. (不要在中断处理里面)加上调试信息,先确定通讯正常,由于MCU那边还没有开发,只有自己先想办法自测试了,直接搞了USB转SPI的调试板来测,先用逻辑分析仪来验证调试工具的信号是否满足条件。如图1,一共34个字节,cmd(1)+addr(1)+data(32)

    cmd为2 ,表示主机发送,addr 必须为0 ,后面数据依次1-32。 和预期一致。

然后将调试板和esp8266硬件连接,测试打印接受数据发现数据混乱,接收中断和发送中断都进去了,检查代码,看的眼花,还是先看硬件吧,一看四条线都接了,就是地线没接,不过看ESP8266 spitest 接线图也没写,加上地线以后,数据就OK了




猜你喜欢

转载自blog.csdn.net/zsj1126/article/details/81014986