06-02-2007 10:30 PM - edited 06-02-2007 10:30 PM
Message Edited by sma on 06-02-2007 10:31 PM
Message Edited by sma on 06-02-2007 10:31 PM
06-03-2007 07:16 PM
06-04-2007 09:56 AM
Hello sma,
It sounds like you've taken some steps to uncover the problem. It sounds like using another interface to communicate with both sides made things work. But the two pieces have intermittent problems communicating with each other, correct?
It still seems like the problem could be residing in either device. I would normally make sure that there are no operations between releasing the hold-off and checking the BI Bit and then reading, but you are using hold-off on all. This causes a nrfd hold-off to occur after each byte. Is it possible that you are releasing the hold-off twice in your firmware?
Make sure that your read routine is following the suggested guidelines from the NAT9914 Reference Manual.
Steven T.
06-04-2007 09:56 AM - edited 06-04-2007 09:56 AM
Message Edited by Steven T on 06-04-2007 09:56 AM
06-04-2007 06:02 PM
06-04-2007 06:03 PM
As this code could not fit with my previous response here are the read functions.
06-05-2007 04:11 PM
Hello sma,
After looking at your code, I see that the ContReadData has exactly the condition I was describing. Your code calls ContReadData with a copy of ISR0. If the byte has not made it into the NAT9914 yet, then BI will not be set. This will put the first read in ContReadData as never happening. Then when you get to the while loop, the first thing that is done is a release rfd hold-off.
I would recommend restructuring your program so that you will not need to have the initial read that may not happen resulting in the loss of the first byte.
You can also do some debug prints in your code if you have doubts that this is the problem. Perhaps you can save some statements in a buffer so that you can see the flow of the program.
Steven T.
06-05-2007 08:27 PM - edited 06-05-2007 08:27 PM
I restructured my code as you suggested by removing the read before entering the read routine. This did not resolve the problem.
It is strage however that the slower the sample rate (talk cmds) the worse the error rate is. Running the commands at app 2.5/Sec results in an error rate of about 1.4% whislt running it with a sample rate of 15/Sec results in an error rate of 0.00217%.
The error rate is also dependant on the delay before releasing the holdoff caused by the MA which occurs when the MLA is placed on the bus.
It appears that the NRFD line may be intermittently deasserting, as the NDAC line is high during the transition from active mode to standby mode.
Do you have any code examples for the implementation of a 9914 based controller?
Message Edited by sma on 06-05-2007 08:30 PM
06-06-2007
08:37 AM
- last edited on
05-22-2025
03:47 PM
by
Content Cleaner
06-06-2007 05:37 PM