Open
Conversation
* Makes ADAT TX functionality easier to implement in a delivery loop
Author
|
Thanks Henk - that all makes a lot of sense. I've just done some further testing of the new implementation, and I'm not seeing any data corruption. I'm feeding the ADAT TX thread fixed values - 0xCCCCCC00, and then from another product that uses the ADAT RX module, reading in 1024 sample at a time. Once the ADAT RX thread has locked on, I have not seen one sample come in with an incorrect value at 44.1kHz or 48kHz. I have also just recorded the ADAT data to an audio file, so I could check over a longer period of time. So far over a 2 minute period, I have not been able to find any errors. For this testing and in the actual production firmware I've been using a 50MIPS thread, and the adat_transmit_port_until_ct_2x function. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I'm looking for some feedback on a modification I have had to make in order to integrate ADAT TX functionality into our products. I have just made the changes in the adat_transmit_port_until_ct_4x function as an example, but they would also be required for adat_transmit_port_until_ct_2x and adat_transmit_port_until_ct_1x.
Currently the non-ADAT_TX_USE_SHARED_BUFF implementation will take almost a whole sample period to consume 8 samples from the delivery thread, this is because it consumes and transmits two samples at a time.
These changes make it consume all 8 samples from the channel at the start of the loop, then transmit the 8 samples. This reduces the amount of time required to send all 8 samples from the delivery thread by an order of magnitude.
These changes would bring the performance much more inline with the ADAT_TX_USE_SHARED_BUFF implementation.