前面SWS, POS阶段都能正确的接收到DSP的的应答。但是到了OS阶段,没有收到应答。
我发送opcode的方式是:先发送opcode,接着发送后面的数据;发完数据后循环发送opcode并且读SPI,但是一直没有独到opcode应答。
不知道还我这样发送的opcde方式是否是正确的?我看了SPRABB1C.pdf,上面没有说清楚后面opcode synchronization阶段该怎么发送。
Shine:
试试加长host发opcode之间的时间间隔。
NOTE: SPI slave boot modes suffer from a bug during Opcode Synchronization. The bootloader willhang if an opcode is sent by the host before the bootloader is ready to receive it (forexample., if the bootloader is still processing the previous opcode). Therefore, in SPI slaveboot modes, the host should insert sufficient delay between opcodes that the bootloader isready to receive the next opcode. This bug does not affect other slave boot modes (I2C,UART, etc.).
http://www.ti.com/lit/an/sprabb1c/sprabb1c.pdf
kunhai huang:
回复 Shine:
这段我早就注意到了,而且也加长了时间间隔,但是没有用;而且前面两个步骤是能读到应答的。
我现在主要是不明白opcode及其后面的参数该怎么发送,那个文档说的不够详细。
Shine:
回复 kunhai huang:
master发送opcode给DSP, 等待接收RECV opcode,如果收不到RECV opcode, 再发送opcode给DSP,直到收到RECV opcode为止。
kunhai huang:
回复 Shine:
Each AIS command consists of an opcode, optionally followed by one or more arguments, followed byoptional data
每个opcode后面都有参数,这些参数是跟随在opcode之后发给DSP吗?我现在就是这么做的,但是没有收到RECV opcode。