On Aug 31, 2010, at 3:58 PM, Michael Plante wrote: >>> Now, it could *possibly* be that there's no data to read... but >>> on the serial port version of this radio, I'm seeing a packet >>> coming in about every second here in the office. And since I >>> keep trying to read one byte at a time, for as long as several >>> minutes, I should get *something*. All zeros, the whole way. > > Which commands (particularly the 0x80 commands) are you sending to get this > display? It would be nice to have the list of I/O bytes that go with the > screenshot.
You're seeing me do an 0x80, then an 0x08, and then a 0x1b. I'm not supposed to write to MOSI, so no 0x11s, but I am attempting to read one byte back. That's 0x20 (and the size). Finally, I do another 0x80, 0x18, 0x1b. I repeating that for a 1000 loops or whatever, which takes long enough that it's impossible that the fifo is empty. The code for the 0x20 is generating 0x00,0x00 for the args... that's 1 byte read, right? >>> Another possibility is that the radio's not in receive mode, but >>> this seems even less likely than that there are no packets in the fifo. > > Is there a register you can read that states how many bytes are in the FIFO, > or at least whether or not it's empty? > No. That's what the bit banging on B would give me... there are two interrupts, and their states tell you if it's empty/full, and a bunch of other things I don't understand, depending on which or both. > >>> The other thing is, in the data sheet it says "To read bytes from the > FIFO the >>> timing diagram below should be carefully followed by the uC." So, maybe > I'm not >>> doing it as perfect as I should be, my code is still rather sloppy. > > They probably mean exactly what I was saying about +ve/-ve edges and that > sort of thing, and, because there are no transitions on MOSI/MISO, that > isn't causing the current problem you showed. Minimum times may also > matter, but are not shown on that diagram. Are you sure that your FTDI SPI > clock speed is low enough that the radio chip can keep up (i.e., is your > divisor high enough)? Not certain. There's a 6Mhz crystal on the device. The flashrom code I borrowed from is setting that, and I think it was claiming that it did it at 2Mhz. But I don't understand that well enough other than it works partially now. >>> And how do I tell this dumb thing to toggle high again more quickly? > > I don't see it toggling high again at all. Is that off the right hand side > of the screen? Even on the zoomed-out part at the top, which is admittedly > difficult to read, it doesn't seem to be going back high. And if you have a > question like that, I'd need to see exactly when the bytes are being sent > from the computer to the 2232, etc. You should certainly try to send the > bit-bang/MPSSE command to raise the line in the same buffer where you tell > it to do the SPI stuff. > It never toggles high again on the portion of this that I can pan. I'm assuming it does so eventually, else even stranger things would be happening. Thanks, John O. -- libftdi - see http://www.intra2net.com/en/developer/libftdi for details. To unsubscribe send a mail to [email protected]
