What is the easiest way to initiate an ADC conversion on the Concerto with the M3?
EDIT: The CPU timers and PWM edges seem to be limited to the C28 side.
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
It is not possible to directly trigger the ADC from the M3 side.
http://e2e.ti.com/support/microcontrollers/c2000/f/171/p/138792/697454.aspx#697454
You could externally wire an M3 output to C28x XINT2. This could act as a software trigger if you set the bits to toggle the output, or you could use some other M3 peripheral like GPTM to generate a periodic sequence of triggers.
The timer suggestion is interesting. Would that still require an (imo: kludgy) external short? Could you elaborate on that?
How would I get the M3 timer interrupt across to the ADC?
_________________________
Here is the problem I need to solve:
I am designing a system with 24 Analog inputs, since the 144-pin Concerto only has 20 ADC pins, I have serialized 4 of the slower responding signals with a mux and designated GPIO pins to be selection bits to choose between them. I wanted to control these selection signals, initiate the conversion and read them on the M3 side. That way it would be easier to keep track of the signal AND the result.
Reading the ADC result register would not really tell me what data are being read from the mux, unless I also nicely tracked the current mux selection.
I have a few solutions now in mind, but they really all depend on the response to the above question.
Cheers.
Originally I was thinking that you would output your timer on a pin (like you would if you wanted to use it as a PWM) and then you would externally connect this to the ADCEXTTRIG pin. You could also trigger an M3 interrupt when the timer hits its compare value, triggering the ADC.
However, the ADCEXTTRIG comes through GPTRIP2, which can be connected to any of GPIO0-GPIO63. I am wondering if it would work if you were to output your timer on a pin, then also select that same pin as the input to GPTRIP2. You would then just leave the pin floating, no external wiring required. (If this doesn't work and you need to use 2 physical pins, then you at least have the flexibility to select a pin near your timer output)
Otherwise, depending on what the C28x is doing, you could create an IPC interrupt to the C28x from the M3 where the c28x interrupt software triggers the ADC.
Alternately, you could setup a C28x PWM to trigger the ADC periodically and also cause a C28x interrupt. In the C28x interrupt, send an IPC interrupt to the M3.