I'm testing a prototype but seem to have difficulty establishing SPI mode.
I have an output pin driving the RST pin to control the sequence in software.
My initialisation routine floats SA0/MISO with RST low, then drives RST high for 1ms.
I am monitoring the INT1 pin as described in sections 6.2.3 / 6.2.4 in the data sheet but this sequence seems unclear.
Is there a detailed timing diagram of this reset sequence anywhere?
已解决! 转到解答。
Hi Robert,
Unfortunately it seems a detailed timing diagram for this reset sequence does not exist.
That said, I can provide a couple notes:
A slightly better sequence might be:
Using this method your system no longer has to worry about the part timing and can simply continue when the part indicates the reset is complete.
Please let me know if you have any further questions!
Regards,
Troy
Troy,
Thanks for the reply. I've now managed to get this working OK from my micro-controller as follows...
//configure I/O pins
INT1 pin as input with no pull-up.
MISO pin as input with no pull-up.
RST pin as output.
//generate an active high reset pulse
Drive RST low
Delay 2ms
Drive RTS high
Delay 2ms
Drive RTS low.
//monitor INT1 pin
If INT1 pin is low then interface is SPI mode (see *)
Delay 2ms (>boot time of 1ms?)
Verify that INT1 pin is now high.
Continue with initialisation via SPI.
* A timeout value would be useful here. I've just looped 1000 times.
My original difficulty was trying to monitor INT1 pin during the RTS pulse as this sequence was not clear (to me!) from the data sheet.
This seems to work OK but more detailed timing information would be helpful.
Hi Robert,
Unfortunately it seems a detailed timing diagram for this reset sequence does not exist.
That said, I can provide a couple notes:
A slightly better sequence might be:
Using this method your system no longer has to worry about the part timing and can simply continue when the part indicates the reset is complete.
Please let me know if you have any further questions!
Regards,
Troy