你好,
我能够使用UART加载代码@startup,但无法从外部SPI master加载相同的。
我使用CPOL = 0, CPHA = 0和一个时钟330 kHz。在没有任何切换的情况下,CS线始终保持逻辑低电平。
我使用0作为模式字节(byte nr = 6)
我得到前导ACK和长度ACK (0x2)在字节nr. 3和6预期。但是我在字节nr. 8处得到一个值0x7F。
基本上,当我发送
spi_TX_buf[10] = {0x70, 0x50, 0, (BLE_CODE_SIZE >> 2) & 0xFF, (BLE_CODE_SIZE >> 10) & 0xFF, BLE_CODE_CRC, 0,0,0,0};//将代码的前两个字节设为0,用于调试
我回来
spi_RX_buf [] =
[0] (0 x00)
[1] (0 xdc)
[2] (0 xd4)
[3] (0 x02)
[4] (0 xe5)
[5] (0 xc4)
[6] (0 x02)
[7] (0 xc0)
[8] (0x7F) //这应该是0x02或0x20
[9] (0 xff)
有什么问题吗?
问候,
Ashwin
关键词:
设备:
你好,
从AN-B-001中给出的SPI主程序引导正确吗?这似乎对我不起作用。
问候,
Ashwin
HI Ashiwn,我没有意识到这个应用程序笔记的任何错误:我可以问你从哪个主机启动吗?BR JE_Dialog
你好,
谢谢您的回复。我使用的是STM32F4系列MCU。
我可以看到MCU正在使用范围发送正确的数据。我确实得到了前两个致谢。我不知道为什么我没有得到最终的ACK/NACK。
问候,
Ashwin
我看了你的帖子,因为我没有得到任何Ack或Nack。
无论如何,这段代码不应该:
(BLE_CODE_SIZE >> 2) & 0xFF, (BLE_CODE_SIZE >> 10) & 0xFF
是:
BLE_CODE_SIZE & 0xFF, BLE_CODE_SIZE >> 8
问候,鲍勃
嗨vantassel,
它应该是(BLE_CODE_SIZE >> 2) & 0xFF, (BLE_CODE_SIZE >> 10) & 0xFF,因为当从外部SPI master引导时,大小应该以4个字节的倍数指定。
关于ACK/NACK问题,我认为这是AN-B-001的一个错误。
如果我忽略字节nr 8和照常进行,我可以下载代码,并得到最后的ACK。
但是我还没有收到dialog semi公司的确认。
问候,
Ashwin