This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi,
I recently purchased the LM98640CVAL evaluation board, and I have been having trouble communicating with the analog front-end (AFE) via the serial interface.
In most cases, I am able to successfully read from and write to the AFE register map. However, I occasionally observe inconsistent and irreproducible errors. For example, sometimes the value read from a register does not reflect the value last written to it. Other times I seem to get erroneous outputs.
In one particular instance, I came to realize that the False Lock signal had been set by the AFE. During subsequent testing, I have consistently observed instances of the False Lock bit, and there appears to be a strong correlation between the presence of the False Lock bit and the misbehavior described above. Furthermore, resetting the DLL by writing to bit 0 of register 0x28 appears to have no effect.
Before I describe my test setup, I would like to note two things. After reading through comments here on the forum, I have identified at least two instances where the behavior of the evaluation board during my testing did not agree with statements made by TI engineers:
Could you please advise me on how to proceed with debugging? The following describes my test setup:
Thank you for your help.
Bradley
Hi Bradley,
Can you please confirm the power supplies you have provided to the CVAL EVM. You state putting +5V on JR4 which is confusing to me since this is labeled -5V on the schematic. Did you mean JR1? How is U3 and U4 getting power? Have you confirmed correct power supplies to all active devices by probing at the device pins?
Thanks
Christian
@Christian Yes, sorry. JR1 is correct. I misread the schematic as I was typing my post.
Before powering the rest of the board, I checked that I was getting the correct voltages on pin 5 of both JP6 and JP7. Once verified, I connected pins 5 and 6 on both jumpers to supply the rest of the board.
U3 and U4 should be powered by the board. Is there some reason I should think otherwise? When applying INCLK, I did verify that I was seeing the proper signal at TP22 and TP23, so I think I can assume that U3 and U4 are correctly powered.
@Kirby Ah ok. Perhaps I'll try the serial interface at lower speeds without INCLK, just to see what happens.
I did check the INCLK signal at TP22 and TP23, and everything looked correct. I will double check this though.
And yes, I'm writing all registers at startup and I'm aware of the comment in the datasheet that says I should write register 0x3D before register 0x09. Could you please advise on the best write order at startup? I think my current strategy has been the following:
I have tried a few different approaches here, including:
But it seems like I inevitably have problems, regardless of the write order.
You say that I should not be experiencing a false lock and that the false lock bit should never bit set in normal operation. Can you suggest any other possible causes of false lock? Would you expect a false lock to cause intermittent and irreproducible problems with the serial interface?
Thanks for your help,
Bradley
Kriby and Christian,
Sorry for the delay; I meant to write you yesterday.
I am fairly certain I have identified the problem. I found that my FPGA development board was sending additional, erroneous write commands to the AFE, above and beyond those I would expect based my software commands. Using an oscilloscope, I had previously confirmed that the timing requirements were being met and that the data was correct. However, until my further testing, I hadn't captured one of the erroneous write commands. I believe this fully explains the behavior I am seeing. I want to implement further testing of the HDL before re-programming the FPGA, so I cannot confirm full functionality just yet.
I have one last question before you can close this thread. What is the expected result when writing to status bits and reserved bits? For example, if I were to write a 1 to the False Lock bit, should I expect to read a 1 from it on the following cycle? Or are writes to status bits ignored? What about reserved bits?
Thanks for all of your help. Sorry for the issue on my end. I had suspected there was a problem with the HDL, but the oscilloscope was telling me otherwise. In the future, I'll be sure to consider that it might be missing something.
Bradley