Forums

Timer A used as sample timer for ADC on MSP430F5438

Started by zjeriet November 28, 2008
Hello,

I'm using TimerA to generate a PWM and feed it to the ADC12 on a
MSP430F5438. I'm using an UP/down counter (with CCR1 setting the duty
cycle to 50%). Now my clk generated is OK (checked it with scope on
output pin). But I'm unable to trigger my ADC12 using this clock.

In the user guide it states the ADC can select Timer_A.OUT1 as sample
source. But when I do this nothing happens. Does this OUT1 mean
TimerA1 or TimerAx.1?
Another strange thing. When I state:
TA0CCTL1 |= OUTMOD_4; // Timer 1 output set to toggle
nothing happens but when I change it to
TA0CCTL0 |= OUTMOD_4;
I'm entering the ADC's ISR. But then changing the CCRx counters
doesn't change the interrupt rate on the ADC. So this makes me think
it's not triggered by TimerA

I've been looking at the issue the whole day and I'm starting to doubt
the device... Usually it's not

Any ideas?

Beginning Microcontrollers with the MSP430

I've not used the 5xx parts, but was having a similar problem with an
1611 part. I was also trying to use TA1 (or any of those signals,
except ADC12SC bit) to trigger a conversion in various modes. The
problem in my case seems to be that TA1 signal only works to trigger
the first conversion (single or sequence modes alike) and it requires
a cycling of ENC bit to let the TA1 trigger the next conversion. There
seems to be no way of configuring the ADC12 for any signal
(TA1,TB0,TB1) to trigger a conversion at fixed intervals. If you use
any trigger source except ADC12SC bit, you need to cycle ENC bit by
software between conversions.
I didn't had the time to continue investigating this issue and moved
to working on more important aspects of the firmware. I still haven't
worked this out.
...
Just looked it over and this is what the (1xx) datahseet says:
"When ADC12SC triggers a conversion, successive conversions can be
triggered by the ADC12SC bit. When any other trigger source is used,
ENC must be toggled between each conversion."

Hope it helps.

Michael K.

--- In m..., "zjeriet" wrote:
>
> Hello,
>
> I'm using TimerA to generate a PWM and feed it to the ADC12 on a
> MSP430F5438. I'm using an UP/down counter (with CCR1 setting the duty
> cycle to 50%). Now my clk generated is OK (checked it with scope on
> output pin). But I'm unable to trigger my ADC12 using this clock.
>
> In the user guide it states the ADC can select Timer_A.OUT1 as sample
> source. But when I do this nothing happens. Does this OUT1 mean
> TimerA1 or TimerAx.1?
> Another strange thing. When I state:
> TA0CCTL1 |= OUTMOD_4; // Timer 1 output set to toggle
> nothing happens but when I change it to
> TA0CCTL0 |= OUTMOD_4;
> I'm entering the ADC's ISR. But then changing the CCRx counters
> doesn't change the interrupt rate on the ADC. So this makes me think
> it's not triggered by TimerA
>
> I've been looking at the issue the whole day and I'm starting to doubt
> the device... Usually it's not
>
> Any ideas?
>

> In the user guide it states the ADC can select Timer_A.OUT1 as sample
> source. But when I do this nothing happens. Does this OUT1 mean
> TimerA1 or TimerAx.1?

Actually, on this device the signal is connected to Timer_A0.OUT0.
Please refer to "Table 5 - Timer0_A5 Signal Connections" in the device
data sheet. Unfortunately the current documentation is a bit
misleading... Note that since this is a xxx.OUT0 capture/compare block,
the only meaningful output mode would be the toggle mode. Hope that
helps.

Regards,
Andreas
In parallel with a post on the yahoo group I've contacted TI and this
was their answer...
So it seems your completely right andreas. Thanks for the help
Thank you for contacting Texas Instruments. Your request has been
received and Service Request number xxx has been assigned to your
inquiry.

Your observation is correct - unfortunately there is a bug in the
device which was found recently and is not yet included into errata
sheet:

TA20:
Module: Timer_A, Function: TA0 output connection to ADC12 is
incompatible with previous device families
Description:
The TA0CCR0 output signal is connected to the ADC12. To be
compatible with previous device
families, TA0CCR1 output signal should be connected to ADC12.
Workaround:
Modify any existing code to use TA0CCR0 as opposed to TA0CCR1. In
addition, Timer B now
supports CCR0 and CCR1 output signal for usage with the ADC12.
At least the datasheet includes this information into table 5.

http://www.ti.com/lit/gpn/msp430f5438 page 21

Sorry for inconviniences caused by this bug!

Do not hesitate to contact us again if you have further specific
questions.

--- In m..., "Andreas Dannenberg"
wrote:
>
> > In the user guide it states the ADC can select Timer_A.OUT1 as
sample
> > source. But when I do this nothing happens. Does this OUT1 mean
> > TimerA1 or TimerAx.1?
>
> Actually, on this device the signal is connected to Timer_A0.OUT0.
> Please refer to "Table 5 - Timer0_A5 Signal Connections" in the
device
> data sheet. Unfortunately the current documentation is a bit
> misleading... Note that since this is a xxx.OUT0 capture/compare
block,
> the only meaningful output mode would be the toggle mode. Hope that
> helps.
>
> Regards,
> Andreas
>