Hi David
We are using S32 Design Studio.
S32 Design Studio for Power Architecture
Version: 1.2
Build id: 170613
(c) Copyright Freescale Semiconductor 2016. All rights reserved.
(c) Copyright NXP 2017.
MCU == MPC5777C
evb == MPC5777C EVB
debugger == Multilink universal fx
Operating System == Win7x64,Win8x64
EQADC initialization:-
void eqadc_A_init(void)
{
EQADC_A.MCR.R = 0x00000000; // Synchronous Serial Interface-Disable; Debug-Disable
EQADC_A.CFPR[0].R = 0x00800301; //Send CFIFO 0 a ADC0 configuration command
EQADC_A.CFPR[0].R = 0x82800301; //Send CFIFO 0 a ADC1 configuration command
EQADC_A.CFCR0.R = 0x04100000;
while (EQADC_A.FISR[0].B.EOQFX == 0); /* Wait for End Of Queue flag */
EQADC_A.FISR[0].R = End_of_Queue_Flag;
}
eDMA initialization:-
void eDMA_init(void)
{
// eDMA Control Reg: set round robin arbitration, ERGA=1,ERCA=1,EDBG=0
DMA_A.CR.R = 0x0000000C;
// eDMA Enable Error Interrupt Register Channels 63:32
DMA_A.EEIH.R = 0x00;
// eDMA Enable Error Interrupt Register Channels 31:00
DMA_A.EEIL.R = 0x00;
// eDMA Enable Request Register Channels 63:32
DMA_A.ERQH.R = 0x00;
// eDMA Enable Request Register Channels 31:00
DMA_A.ERQL.R = 0x00;
}
Same initialization done for EQADC_B and eDMA_B.
I am using CFIFO_1 for transmitting 10 commands from Cqueue to CFIFO through DMA for both EQADC_A and EQADC_B.
like this:-
( CHANNEL(ANA34_TO_IGBT1_Thermistor1) | B0 | CAL | MESSAGE_TAG(RFIFO1) | LST(0) ),
( CHANNEL(ANA35_TO_IGBT2_Thermistor2) | B1 | CAL | MESSAGE_TAG(RFIFO2) | LST(0) ),
( CHANNEL(ANA36_TO_IGBT3_Thermistor3) | B0 | CAL | MESSAGE_TAG(RFIFO1) | LST(0) ),
( CHANNEL(ANA37_TO_IGBT4_Thermistor4) | B1 | CAL | MESSAGE_TAG(RFIFO2) | LST(0) ),
( CHANNEL(ANA06_TO_DC_BUS_Volt_Sense) | B0 | CAL | MESSAGE_TAG(RFIFO1) | LST(0) ),
( CHANNEL(ANA07_TO_DC_BUS_Current_Sense)| B1 | CAL | MESSAGE_TAG(RFIFO2) | LST(0) ),
( CHANNEL(ANA12_TO_IoutA_Sense) | B0 | CAL | MESSAGE_TAG(RFIFO1) | LST(0) ),
( CHANNEL(ANA13_TO_IoutB_Sense) | B1 | CAL | MESSAGE_TAG(RFIFO2) | LST(0) ),
( CHANNEL(ANA14_TO_IoutC_Sense) | B0 | CAL | MESSAGE_TAG(RFIFO1) | LST(0) ),
( CHANNEL(ANA15_TO_IoutD_Sense) | B1 | CAL | MESSAGE_TAG(RFIFO2) | LST(0) | EOQ ),
I am receiving ADC0 data in RFIFO_1 and ADC1 data in RFIFO_2 and sending this data to Rqueue_1 from RFIFO_1 and Rqueue_2 from RFIFO_2.
So for EQADC_A i am getting the correct result in Rqueue_A_1 from RFIFO_1 and Rqueue_A_2 from RFIFO_2.
But for EQADC_B i am getting correct result in Rqueue_B_1 from RFIFO_1 but getting garbage in Rqueue_B_2 which is out of range and also the count is not varying when i vary the voltage range.