EmbeddedRelated.com
Forums

software UARTs, Timer_A UART

Started by Brian C. Lane December 12, 2002
In the interest of trying to cram as much into a small package as
possible, I'm now looking for the minimum msp430 that can do the
following:
  Minimum 38.4k full duplex serial port (mostly transmit)
  SPI port, as slave.
  9600bps full duplex serial port (mostly receive though)

I'm reading through the TI Timer_A UART app note, figuring out how
this could be setup, but I thought I'd as for advice here in parallel
to my reading.

My plan is to use the P1.1, P2.2 Timer_A Uart pins to connect to the
PC, this would also allow reflashing of units from the PC. I notice
the app note is for a half duplex port. What other timing resources
are needed for full duplex.

The 9600bps serial port would also be a software uart, using another
set of capture/compare? Not sure about this part yet, since there is
only one SCCI flag, right?

Use the hardware USART0 for the SPI connection since it will be the
fastest.

I've narrowed it down to the '1222, '1232, '13x, 14x parts.
I know it
can be done with the '14x parts with 2 USARTs, but could it be done
with the '12x2 parts?

Thanks for any comments, back to app-note reading...

Brian
-----------------
Brian C. Lane (W7BCL)                      Programmer
www.shinemicro.com   RF, DSP & Microcontroller Design

Beginning Microcontrollers with the MSP430

Brian,
I think you are on the right track. For SPI I also prefer built-in 
USART. UART is pretty simple to implement using the Timar_A. For full 
duplex you can use one CCR for receiver and another CCR for 
transmitter. I implemented similar application in F123 part. 
Regarding serial programming through P1.1 and P2.2. Unfortunately, 
for this programming you need almost same number of pins as JTAG. I 
find this serial programming practically useless. In my designs I 
connect JTAG. I can programm through it and I always can also to 
debug the code.
Take care
IK
--- In msp430@msp4..., Brian C. Lane <brian@s...> wrote:
> In the interest of trying to cram as much into a
small package as
> possible, I'm now looking for the minimum msp430 that can do the
> following:
>   Minimum 38.4k full duplex serial port (mostly transmit)
>   SPI port, as slave.
>   9600bps full duplex serial port (mostly receive though)
> 
> I'm reading through the TI Timer_A UART app note, figuring out how
> this could be setup, but I thought I'd as for advice here in 
parallel
> to my reading.
> 
> My plan is to use the P1.1, P2.2 Timer_A Uart pins to connect to the
> PC, this would also allow reflashing of units from the PC. I notice
> the app note is for a half duplex port. What other timing resources
> are needed for full duplex.
> 
> The 9600bps serial port would also be a software uart, using another
> set of capture/compare? Not sure about this part yet, since there is
> only one SCCI flag, right?
> 
> Use the hardware USART0 for the SPI connection since it will be the
> fastest.
> 
> I've narrowed it down to the '1222, '1232, '13x, 14x
parts. I know 
it
> can be done with the '14x parts with 2
USARTs, but could it be done
> with the '12x2 parts?
> 
> Thanks for any comments, back to app-note reading...
> 
> Brian
> -----------------
> Brian C. Lane (W7BCL)                      Programmer
> www.shinemicro.com   RF, DSP & Microcontroller Design


On Thu, 12 Dec 2002 18:56:36 -0000, you wrote:

>Brian,
>I think you are on the right track. For SPI I also prefer built-in 
>USART. UART is pretty simple to implement using the Timar_A. For full 
>duplex you can use one CCR for receiver and another CCR for 
>transmitter. I implemented similar application in F123 part.

  I've gone over the app note and dta sheets and it looks like I can
do it with the '1222 or 1232 just fine. I can share a CCR for my
transmitters and run independent receivers in the other 2 CCRs. One
thing I mis-understood before grokking all the docs is that each CCR
has a SCCI capture register, so you can do receivers with low overhead
on all of Timer_A's CCRs. For some reason I was under the
mis-impression that only CCR0 could do this.
 
>Regarding serial programming through P1.1 and P2.2.
Unfortunately, 
>for this programming you need almost same number of pins as JTAG. I 
>find this serial programming practically useless. In my designs I 
>connect JTAG. I can programm through it and I always can also to 
>debug the code.

We'd like to be able to reflash the units once in service using a
simple PC program. Maybe some jumpers to protect against accidentaly
entering the flash mode. We'll be using JTAG (the FET actually) for
development though.

Thanks,

Brian

-----------------
Brian C. Lane (W7BCL)                      Programmer
www.shinemicro.com   RF, DSP & Microcontroller Design