Other Parts Discussed in Thread: HALCOGEN, TINA-TI
Hey everyone,
I am using the ADC modules on a RM46 to sample a few analog inputs. These are custom PCBs and I have attached the important parts of the electrical schematic. The issue I am seeing is a small cross over between ADC channels in the same group that is proportional to and input channel. For example the figure below is a capture of AIN[2], AIN[3] and AREFHI pins to the RM46L852-PGET chip. When I increase the voltage going into AIN[2] you can see an increase in the noise on AIN[3]. This translates into readings crossing the channel. With AIN[2] at ~0 AIN[3] is ~0 but when I increase AIN[2] to ~3600 AIN[3] increases to ~316. BUT this does not work in reverse, increasing the input into AIN[3] does not effect AIN[2] like I would expect:
After some debugging I found that the noise corresponds to my ADC samples:
There are breaks visible when the CPU is not doing ADC conversions, like writing to CAN or SCI. In my software I am running this:
void main()
{
adcInit();
while(1)
{
adcData_t d[ADC_MAX_CHANNEL_COUNT];
adcStartConversion( adcREG1, adcGROUP1 );
// wait while ADC is converting
while( !adcIsConversionComplete( adcREG1, adcGROUP1 ) );
// Get the data
adcGetData( adcREG1, adcGROUP1, &d[0]);
brakePressureMonitor.Raw = d[0].value;
tsVehicleVoltageMonitor.Raw = d[1].value;
driveThrottleOneMonitor.Raw = d[2].value;
driveThrottleTwoMonitor.Raw = d[3].value;
// Other stuff afterwords eg. CAN transmissions, SCI transmissions
}
}
Schematics:
Any ideas what could be causing this behavior? If you would like any more information let me know!
Thanks,
Nathan






