Other Parts Discussed in Thread: EK-TM4C1294XL
Testing of ANIx inputs via EK-TM4C1294XL GPTM 102Hz generator via single test wire lead placed into each of 3 AINx inputs of SS1 reveals reading FIFO data fails via HWREG circular reads into specific array levels via Tivaware macro calls seem to fail. Although it seems SS1 step 0 had gone amuck, it was the HWREG reads of circular FIFO returning incorrect data upon END, IE of any last step minus a source pin. Other wise HWREG call fails to read any data if END IE exist on a step with a source pin. Although HWREG call reads sequencer FIFO into an dedicated array step, lastly drains any remained data it seemingly crosses with other sequencers data. Puzzling how FIFO filtering, checks, drains, overflow/underflow status type MACRO calls keeps any part of this train wreck from ultimate disaster is quite amazing that it simulates DSP signals like crazy.
It would seem Tivaware skirts discovery of incorrect data from triggered reads of FIFO by doing BULK reads via ADCsequencerDataGet() of all steps placed into a single buffer array. Seemingly that is not maintaining compatibility of Stellarisware M3 codes that worked for reading single step FIFO data via migration to Tivaware and M4 Macro calls that seem to somehow cross FIFO data of the AD converter in the process.
The input source of AINx pin sampled via specific sequencer step as outlined in the datasheet seem to fail when HWREG reads sequencer steps are triggered by C+ directives on the circular FIFO.
How is cascading below capture possibly cross linking FIFO data between sequencers and arrays occurring from HWREG calls made into the sequencer FIFO?
Why is there little to no 201Hz signal on one AINx input yet the other two have some resemblance of it yet at different amplitudes occurring from the same source?
Below 201Hz +3.2v GPTM AINx input source moved between 3 steps SS1 cause 3 different levels of FIFO data being returned. Even after adding dummy triggers (HWREG calls) to read back the 3 sequencer steps, the same amplitude of 201Hz GPTM data is not being returned as shown below. This issue is plaguing production of final product.
ui16ADC0DataRaw[1] = HWREG(ADC0_BASE + ADC_O_SSFIFO0);
/*************************************************************/
ulTemp=HWREG(ADC0_BASE + ADC_O_SSFIFO1);
ui16PhaseRaw[1] = HWREG(ADC0_BASE + ADC_O_SSFIFO1);