The purpose of this group is to foster exchange of information on the Texas Instruments MSP430 family of microcontrollers and related tools. Everyone welcome, all levels of familiarity/expertise.
MCU too big? - abufadel - Aug 7 23:10:05 2009
Hello,
I would like to drive a two digit lcd display totaling 14 segments. The smallest msp430
that drives an lcd has 48 pins (MSP430FG477/8/9). This means there will be a lot of pins
that are not connected. In addition to lcd, I would be using one a/d input pin and I2C.
Is this a good choice for what I want or can I get by with a smaller part that is not
meant specifically for an LCD display..
Thank you for your input.
A
------------------------------------

(You need to be a member of msp430 -- send a blank email to msp430-subscribe@yahoogroups.com )
Re: MCU too big? - old_cow_yellow - Aug 8 0:09:48 2009
I think FG47x have 80 or 113 pins. And they cost $5 to $6 each.
F41x2, F42x0, and FG42x0 have 48 pins. Cost is $2 to $4 each.
--- In m...@yahoogroups.com, "abufadel"
wrote:
>
> Hello,
> I would like to drive a two digit lcd display totaling 14 segments. The smallest
msp430 that drives an lcd has 48 pins (MSP430FG477/8/9). This means there will be a lot
of pins that are not connected. In addition to lcd, I would be using one a/d input pin and
I2C.
>
> Is this a good choice for what I want or can I get by with a smaller part that is not
meant specifically for an LCD display..
>
> Thank you for your input.
>
> A
>
------------------------------------

(You need to be a member of msp430 -- send a blank email to msp430-subscribe@yahoogroups.com )need terminal working on MSP430F2417 - rupesh vishwakarma - Aug 8 9:33:54 2009
HI I need to get some characters from uart through hyperterminal and print =
them=A0 I tried with the given examples but it is not working can anyone gi=
ve me method how to get characters from hyperterminal here is my code
=A0
void main(void) {
=A0=A0=A0 unsigned char=A0command[10];
=A0=A0=A0 // initialize peripherals
=A0=A0=A0 WDTCTL =3D WDTPW + WDTHOLD;=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 /=
/ Stop WDT
=A0=A0=A0 //PARset();=A0=A0=A0=A0 //Set Port Functions for Parallel Mode
=A0=A0=A0 LEDallOFF;=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0 //all LED are OFF
=A0=A0=A0 //LEDallON;
=A0=A0=A0 LEDportSET;
=A0=A0=A0 //LEDpowerON;
=A0=A0=A0 UARTset();
=A0//=A0 EnableInterrupts;=A0
=A0=A0kputchar('A');
=A0=A0
=A0while(1)
=A0{
=A0}
}
void UARTset(void) //Uses USCI_A0
{
=A0 P3SEL |=3D BIT4 + BIT5;=A0/* P3.4, P3.5 UART mode */
=A0 P3DIR |=3D BIT4;=A0=A0=A0/* P3.4 - output */
=A0 UCA0CTL1 |=3D UCSWRST;=A0=A0=A0/* disable UART */ //Universal serial co=
mmunication interface reset)
=A0 UCA0CTL0 =3D 0x00;
=A0 UCA0CTL1 |=3D UCSSEL_2;=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0 // SMCLK
=A0 UCA0BR0 =3D 0xA;=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 // 115200//1.1MHZ
=A0 UCA0BR1 =3D BAUD1;
=A0 UCA0MCTL =3D 0;=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0 // Modulation UCBRSx =3D 5
=A0 UCA0CTL1 &=3D ~UCSWRST;=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0 // **Initialize USCI state machine**
=A0 IE2 |=3D UCA0RXIE;=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0 // Enable USCI_A0 RX interrupt
=A0=A0IE2|=3DUCA0TXIE;
=A0}
=A0
#pragma vector=3DUSCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void)
{
=A0 LEDtypeBON;
=A0 unsigned char ch;
=A0 while (!(IFG2&UCA0TXIFG));=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
// USCI_A0 TX buffer ready?
=A0 ch =3D UCA0RXBUF;=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0 // TX -> RXed character
=A0 Put_byte(ch);
=A0=A0=A0=20
}
=A0
void kputchar(char TXchar)
{=A0=A0=A0
=A0 while(!(IFG2 & UCA0TXIFG))
=A0=A0=A0=A0=A0=A0 {
=A0=A0=A0=A0=A0=A0=A0=A0=20
=A0=A0=A0=A0=A0=A0=A0 }
=A0=A0=A0=A0=A0=A0=A0=A0=A0=20
=A0// wait for TX register to be empty //
=A0
=A0=A0=A0=A0=A0=A0=A0=20
=A0=A0=A0=A0=A0=A0=A0 UCA0TXBUF =3D TXchar;=A0// this prints on terminal
}=A0
=A0
=A0
=A0
=A0
=A0
=A0
=A0
=A0
=A0
=A0
=A0
Looking for local information? Find it on Yahoo! Local http://in.loca=
l.yahoo.com/
[Non-text portions of this message have been removed]
------------------------------------

(You need to be a member of msp430 -- send a blank email to msp430-subscribe@yahoogroups.com )
Re: MCU too big? - abufadel - Aug 8 9:40:24 2009
--- In m...@yahoogroups.com, "old_cow_yellow"
wrote:
>
> I think FG47x have 80 or 113 pins. And they cost $5 to $6 each.
> F41x2, F42x0, and FG42x0 have 48 pins. Cost is $2 to $4 each.
>
Thanks for the suggestions. Can you or anyone please explain how is it that a part can
drive more LCD segments than the number of pins on the package? Does this mean that more
than one segment per pin? I think I do not understand how LCD's are connected to the
MCU.
Thanks again,
A
------------------------------------
______________________________
Stellaris® MCU Family: New Parts, New Package, New Price.

(You need to be a member of msp430 -- send a blank email to msp430-subscribe@yahoogroups.com )Re: MCU too big? - Stuart_Rubin - Aug 8 10:33:06 2009
If you are that cost-conscious and can do a little experimentation, you can probably drive
the LCD display with I/O directly, and some resistors, etc. Just make sure you don't
leave DC on any segment / backplane combination or you'll cook the display.
Take a look at the analog (or, multi-value digital, really) signals which drive the LCD.
You can probably roll-your-own for pennies. There's no magic to driving an LCD. The uC's
just make it more convenient, especially when you're talking about large (many segment)
displays. Yours is pretty small.
Good luck. I'd love to hear if you pulled this off. It's a good exercise, anyway.
Stuart
--- In m...@yahoogroups.com, "abufadel"
wrote:
>
> Hello,
> I would like to drive a two digit lcd display totaling 14 segments. The smallest
msp430 that drives an lcd has 48 pins (MSP430FG477/8/9). This means there will be a lot
of pins that are not connected. In addition to lcd, I would be using one a/d input pin and
I2C.
>
> Is this a good choice for what I want or can I get by with a smaller part that is not
meant specifically for an LCD display..
>
> Thank you for your input.
>
> A
>
------------------------------------

(You need to be a member of msp430 -- send a blank email to msp430-subscribe@yahoogroups.com )Re: MCU too big? - old_cow_yellow - Aug 8 10:56:40 2009
For example, a LCD can have up to 144 segments divided into 4 groups. Each group of 36
segments share one common. The chip can drive one group at a time rapidly cycling through
all groups. Human eyes cannot sense the flickering and will see all 144 segments. But you
only need 36 pins for the segments and 4 pins for the commons.
In your case, you only need 14 segments and 1 common. The other segment pins and common
pins can be used for other I/O functions.
You need to consider other features of the chip to fit your needs. But as far as LCD
controller is concerned, F41x2 are as good as FG47x.
--- In m...@yahoogroups.com, "abufadel"
wrote:
>
> --- In m...@yahoogroups.com, "old_cow_yellow" wrote:
> >
> > I think FG47x have 80 or 113 pins. And they cost $5 to $6 each.
> > F41x2, F42x0, and FG42x0 have 48 pins. Cost is $2 to $4 each.
> > Thanks for the suggestions. Can you or anyone please explain how is it that a part
can drive more LCD segments than the number of pins on the package? Does this mean that
more than one segment per pin? I think I do not understand how LCD's are connected to the
MCU.
>
> Thanks again,
>
> A
>
------------------------------------

(You need to be a member of msp430 -- send a blank email to msp430-subscribe@yahoogroups.com )Re: MCU too big? - bungalow_steve - Aug 8 12:40:28 2009
For such a small LCD display most people use a STATIC LCD, which is very simple to use
with any 15 general purpose I/O pins. It hooks up directly to the micro.
The 430 LCD controllers are made to drive various multiplex LCD displays with all sorts of
fancy options. You don't need that.
see
http://www.ubasics.com/driving_static_lcds
if you don't like that link search for "static LCD" for more examples
--- In m...@yahoogroups.com, "abufadel"
wrote:
>
> Hello,
> I would like to drive a two digit lcd display totaling 14 segments. The smallest
msp430 that drives an lcd has 48 pins (MSP430FG477/8/9). This means there will be a lot
of pins that are not connected. In addition to lcd, I would be using one a/d input pin and
I2C.
>
> Is this a good choice for what I want or can I get by with a smaller part that is not
meant specifically for an LCD display..
>
> Thank you for your input.
>
> A
>
------------------------------------
______________________________
Stellaris® MCU Family: New Parts, New Package, New Price.

(You need to be a member of msp430 -- send a blank email to msp430-subscribe@yahoogroups.com )Re: Re: MCU too big? - Frank Harvey - Aug 8 13:54:03 2009
thanks for that link, Steve. That kind of article is always useful.
frank
--- On Sat, 8/8/09, bungalow_steve
wrote:
From: bungalow_steve
Subject: [msp430] Re: MCU too big?
To: m...@yahoogroups.com
Date: Saturday, August 8, 2009, 9:40 AM
=A0
=20=20=20=20
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20
For such a small LCD display most people use a STATIC LCD, which is very si=
mple to use with any 15 general purpose I/O pins. It hooks up directly to t=
he micro.
The 430 LCD controllers are made to drive various multiplex LCD displays wi=
th all sorts of fancy options. You don't need that.
see
http://www.ubasics. com/driving_ static_lcds
if you don't like that link search for "static LCD" for more examples
--- In msp430@yahoogroups. com, "abufadel" wrote:
>
> Hello,
> I would like to drive a two digit lcd display totaling 14 segments. Th=
e smallest msp430 that drives an lcd has 48 pins (MSP430FG477/ 8/9). This =
means there will be a lot of pins that are not connected. In addition to lc=
d, I would be using one a/d input pin and I2C.
>=20
> Is this a good choice for what I want or can I get by with a smaller part=
that is not meant specifically for an LCD display..
>=20
> Thank you for your input.
>=20
> A
>
=20
=20=20=20=20=20=20
=20=20=20=20
=20=20=20=20
=09
=09=20
=09
=09
=09
=09
=09
[Non-text portions of this message have been removed]
------------------------------------

(You need to be a member of msp430 -- send a blank email to msp430-subscribe@yahoogroups.com )Re: need terminal working on MSP430F2417 - Bart Oegema - Aug 10 12:52:17 2009
First thing: It's hard for anyone to help you if we don't know what
device you're trying to use. Not all MSP430 devices are alike, and one
of the first things to check is whether or not the example code was
written for the device you're trying to use.
I haven't double-checked your configuration because of that, but I see
a few problems right away:
- looks like you're trying to echo received characters (transmit what
you've recieved). The UART ISR calls a routine Put_byte(unsigned
char), which isn't here. Do you mean to call kputchar( char )? Is
there another routine you haven't included?
- Often (on the MSP430 models I've used) the TX and RX ISRs are the
same. Because you don't check which case triggered the interrupt, you
will have (probably) unexpected behavior. You probably don't want to
enable the TX interrupt, since the rest of your code polls to see
whether the TXIFG is set before you write to the TX buffer and you
don't differentiate between RX and TX interrupt handling in your ISR.
It looks like this is the first time you're working using the UART,
and perhaps the MSP430. I'd spend a good amount of time thoroughly
reading and understanding the applicable device's data sheet.
- Bart
On Fri, Aug 7, 2009 at 9:53 PM, rupesh
vishwakarma
wrote:
> HI I need to get some characters from uart through hyperterminal and prin=
t
> them=A0 I tried with the given examples but it is not working can anyone =
give
> me method how to get characters from hyperterminal here is my code
> void main(void) {
> =A0=A0=A0 unsigned char=A0command[10];
> =A0=A0=A0 // initialize peripherals
> =A0=A0=A0 WDTCTL =3D WDTPW + WDTHOLD;=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
// Stop WDT
> =A0=A0=A0 //PARset();=A0=A0=A0=A0 //Set Port Functions for Parallel Mode
> =A0=A0=A0 LEDallOFF;=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0 //all LED are OFF
> =A0=A0=A0 //LEDallON;
> =A0=A0=A0 LEDportSET;
> =A0=A0=A0 //LEDpowerON;
> =A0=A0=A0 UARTset();
> =A0//=A0 EnableInterrupts;
> =A0=A0kputchar('A');
>
> =A0while(1)
> =A0{
> =A0}
> }
> void UARTset(void) //Uses USCI_A0
> {
> =A0 P3SEL |=3D BIT4 + BIT5;=A0/* P3.4, P3.5 UART mode */
> =A0 P3DIR |=3D BIT4;=A0=A0=A0/* P3.4 - output */
> =A0 UCA0CTL1 |=3D UCSWRST;=A0=A0=A0/* disable UART */ //Universal serial =
communication
> interface reset)
> =A0 UCA0CTL0 =3D 0x00;
> =A0 UCA0CTL1 |=3D UCSSEL_2;=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0 // SMCLK
> =A0 UCA0BR0 =3D 0xA;=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 // 115200//1.1MHZ
> =A0 UCA0BR1 =3D BAUD1;
> =A0 UCA0MCTL =3D 0;=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0 // Modulation UCBRSx =3D 5
> =A0 UCA0CTL1 &=3D ~UCSWRST;=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0 // **Initialize USCI state
> machine**
> =A0 IE2 |=3D UCA0RXIE;=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0 // Enable USCI_A0 RX interrupt
> =A0=A0IE2|=3DUCA0TXIE;
> =A0}
>
> #pragma vector=3DUSCIAB0RX_VECTOR
> __interrupt void USCI0RX_ISR(void)
> {
> =A0 LEDtypeBON;
> =A0 unsigned char ch;
> =A0 while (!(IFG2&UCA0TXIFG));=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0 // USCI_A0 TX buffer ready?
> =A0 ch =3D UCA0RXBUF;=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0 // TX -> RXed character
> =A0 Put_byte(ch);
>
> }
>
> void kputchar(char TXchar)
> {
> =A0 while(!(IFG2 & UCA0TXIFG))
> =A0=A0=A0=A0=A0=A0 {
>
> =A0=A0=A0=A0=A0=A0=A0 }
>
> =A0// wait for TX register to be empty //
> =A0=A0=A0=A0=A0=A0=A0 UCA0TXBUF =3D TXchar;=A0// this prints on terminal
>
> }
> Looking for local information? Find it on Yahoo! Local
> http://in.local.yahoo.com/
>
> [Non-text portions of this message have been removed]
>
>=20
------------------------------------
______________________________
Stellaris® MCU Family: New Parts, New Package, New Price.

(You need to be a member of msp430 -- send a blank email to msp430-subscribe@yahoogroups.com )