你好,
我能够使用UART加载代码@startup,但无法从外部SPI主加载相同的。
我使用CPOL = 0, CPHA = 0和一个330千赫的时钟。CS线一直保持低逻辑,没有任何切换。
我使用0作为模式字节(字节nr = 6)
我在字节nr. 3和6上获得了预期的前置ACK和长度ACK (0x2)。但我得到一个值0x7F在字节nr. 8。
基本上,当我发送
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
我看了你的帖子,因为我没吃到任何东西。
不管怎样,这段代码不应该是:
(BLE_CODE_SIZE >> 2) & 0xFF, (BLE_CODE_SIZE >> 10) & 0xFF
是:
BLE_CODE_SIZE & 0xFF, BLE_CODE_SIZE >>
问候,鲍勃
嗨vantassel,
它应该是(BLE_CODE_SIZE >> 2) & 0xFF, (BLE_CODE_SIZE >> 10) & 0xFF,因为大小应该在从外部SPI主引导时以4字节的倍数指定。
关于ACK/NACK的问题,我认为这是AN-B-001的一个错误。
如果我忽略字节nr 8和继续像往常一样,我可以下载代码,并得到最后的ACK。
但是我还没有收到来自dialog semi的确认。
问候,
Ashwin