Monday, 16 October 2017

Digital DI Box 04 - direct ADC to DAC transfer

Digital DI Box 04 - direct ADC to DAC transfer

Direct transfer

After a lot of experimenting with DMA and Timers I decided to strive for the best possible data transfer from ADC to DAC. For this I put ADC into high priority interrupt mode and the rest to medium to low priority. To monitor the data I had to sacrifice continuous flow due to computer's USB serial port unable to cope with such loads. As a result the output quality is very good, I put some low pass RC filter in place to get rid of high frequency noise caused by ADC. Later I will fine tune it and install low pass filter as well.

Communication via interrupts

Serial comms now done through interrupts instead of polling. Sampling is done by getting the respective command on serial line, all data goes into uint16_t[512] array. Once the data is ready I get it in parts of 16 samples using a simple protocol. This causes some chirping sounds during playback, but this is only for data analysis, so should be fine

No comments:

Post a Comment

Is low level programming still relevant these days?

The levels of abstraction have made the application programming much easier and faster. But everything comes at a price. This is a new ...