"When high, do not read data from the FIFO." — FT245R Datasheet
Well, I think I've found out why the FT245R was behaving erratically. To read from it I was setting RD low, and then waiting until RXF went low. But the datasheet says that you shouldn't read data when RXF is high, so I'm guessing that's why it only worked sometimes.
Yesterday I tried slowing the clock down in order to debug something else, an no matter what I did, I couldn't read any data from the FT245R. I hooked up some LEDs to different signals and found it wasn't behaving as expected, and then I re-read the data sheet. After fixing the CPLD code to only set the FTDI's RD line low once data is actually available, I can now drop the clock speed right down and it still works.
This is hopefully the correct solution, and not just another random red herring.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.