# software uart-msp430f2111

**URL:** <https://community.sparkfun.com/t/software-uart-msp430f2111/11211>\
**Category:** MicroMod\
**Tags:** msp\
**Created:** [May 18, 2009, 6:16am UTC](https://community.sparkfun.com/t/software-uart-msp430f2111/11211 "2009-05-18T06:16:08Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![naz](https://avatars.discourse-cdn.com/v4/letter/n/e99b99/32.png) [@naz](https://community.sparkfun.com/u/naz)\
**Post date:** [May 18, 2009, 6:16am UTC](https://community.sparkfun.com/t/software-uart-msp430f2111/11211/1 "2009-05-18T06:16:08Z")

</div>

I’m using msp430f2111. it has one Timer. Already i used one software UART.Shall i add one more Software UART. is it possible?

---

<div class="post-metadata">

**Author:** ![theatrus](https://avatars.discourse-cdn.com/v4/letter/t/a8b319/32.png) [@theatrus](https://community.sparkfun.com/u/theatrus)\
**Post date:** [May 18, 2009, 6:26am UTC](https://community.sparkfun.com/t/software-uart-msp430f2111/11211/2 "2009-05-18T06:26:22Z")

</div>

Software UARTs are entirely code driven. What exactly is your requirement here? If its having two UARTs running concurrently, you’ll want to change processors soon…

---

<div class="post-metadata">

**Author:** ![naz](https://avatars.discourse-cdn.com/v4/letter/n/e99b99/32.png) [@naz](https://community.sparkfun.com/u/naz)\
**Post date:** [May 18, 2009, 7:06am UTC](https://community.sparkfun.com/t/software-uart-msp430f2111/11211/3 "2009-05-18T07:06:02Z")

</div>

Thank you for your’s reply. i need two software uart , one for communication between gps and microcontroller,another for communication between pc and microcontroller. is it possible in msp430f2111.

---

<div class="post-metadata">

**Author:** ![theatrus](https://avatars.discourse-cdn.com/v4/letter/t/a8b319/32.png) [@theatrus](https://community.sparkfun.com/u/theatrus)\
**Post date:** [May 18, 2009, 7:43am UTC](https://community.sparkfun.com/t/software-uart-msp430f2111/11211/4 "2009-05-18T07:43:13Z")

</div>

You are the only one who can answer that question. I can’t see your software.

---

<div class="post-metadata">

**Author:** ![leon\_heller](https://yyz1.discourse-cdn.com/sparkfun/user_avatar/community.sparkfun.com/leon_heller/32/7602_2.png) [@leon\_heller](https://community.sparkfun.com/u/leon_heller)\
**Post date:** [May 18, 2009, 9:08am UTC](https://community.sparkfun.com/t/software-uart-msp430f2111/11211/5 "2009-05-18T09:08:27Z")

</div>

I’d use a chip with a hardware UART, and do the other one in software.

Leon

---

<div class="post-metadata">

**Author:** ![naz](https://avatars.discourse-cdn.com/v4/letter/n/e99b99/32.png) [@naz](https://community.sparkfun.com/u/naz)\
**Post date:** [May 18, 2009, 10:20am UTC](https://community.sparkfun.com/t/software-uart-msp430f2111/11211/6 "2009-05-18T10:20:47Z")

</div>

so i couldn’t use two software uart.is it?

---

<div class="post-metadata">

**Author:** ![leon\_heller](https://yyz1.discourse-cdn.com/sparkfun/user_avatar/community.sparkfun.com/leon_heller/32/7602_2.png) [@leon\_heller](https://community.sparkfun.com/u/leon_heller)\
**Post date:** [May 18, 2009, 10:42am UTC](https://community.sparkfun.com/t/software-uart-msp430f2111/11211/7 "2009-05-18T10:42:38Z")

</div>

If you want, but why not make things easy for yourself?

Leon

---

<div class="post-metadata">

**Author:** ![naz](https://avatars.discourse-cdn.com/v4/letter/n/e99b99/32.png) [@naz](https://community.sparkfun.com/u/naz)\
**Post date:** [May 18, 2009, 10:57am UTC](https://community.sparkfun.com/t/software-uart-msp430f2111/11211/8 "2009-05-18T10:57:36Z")

</div>

That’s what i’m telling to my boss.we have msp430f2111.it doesn’t have hardware uart.ok tellme shall i use two software uart.please guide me.

---

<div class="post-metadata">

**Author:** ![leon\_heller](https://yyz1.discourse-cdn.com/sparkfun/user_avatar/community.sparkfun.com/leon_heller/32/7602_2.png) [@leon\_heller](https://community.sparkfun.com/u/leon_heller)\
**Post date:** [May 18, 2009, 11:52am UTC](https://community.sparkfun.com/t/software-uart-msp430f2111/11211/9 "2009-05-18T11:52:34Z")

</div>

Why do you have to use that chip?

Leon

---

<div class="post-metadata">

**Author:** ![OldCow](https://avatars.discourse-cdn.com/v4/letter/o/e274bd/32.png) [@OldCow](https://community.sparkfun.com/u/OldCow)\
**Post date:** [May 18, 2009, 1:34pm UTC](https://community.sparkfun.com/t/software-uart-msp430f2111/11211/10 "2009-05-18T13:34:13Z")

</div>

F2111 has a Timer\_A3 module. Running at 16MHz, one probably could implement three half-duplex software ARTs for up to 9600b/s operation. But that takes skills and dedication.

If you need to ask, you probably cannot do it. Use a different approach. If your boss insists, you need a new boss.

---

<div class="post-metadata">

**Author:** ![naz](https://avatars.discourse-cdn.com/v4/letter/n/e99b99/32.png) [@naz](https://community.sparkfun.com/u/naz)\
**Post date:** [May 19, 2009, 4:00am UTC](https://community.sparkfun.com/t/software-uart-msp430f2111/11211/11 "2009-05-19T04:00:30Z")

</div>

leon They have two chip one is msp430f2111 and another one is msp430f2101.And i couldn’t change my boss,i should do the task.Old cow i know this is very very difficult to me.give me a good guidance we can finish it.

---

<div class="post-metadata">

**Author:** ![theatrus](https://avatars.discourse-cdn.com/v4/letter/t/a8b319/32.png) [@theatrus](https://community.sparkfun.com/u/theatrus)\
**Post date:** [May 19, 2009, 4:23am UTC](https://community.sparkfun.com/t/software-uart-msp430f2111/11211/12 "2009-05-19T04:23:54Z")

</div>

naz, it all depends on your software UART implementation. There is no clear cut answer here, except that on each timer interval you do an action on all UARTs.

---

<div class="post-metadata">

**Author:** ![naz](https://avatars.discourse-cdn.com/v4/letter/n/e99b99/32.png) [@naz](https://community.sparkfun.com/u/naz)\
**Post date:** [May 19, 2009, 6:06am UTC](https://community.sparkfun.com/t/software-uart-msp430f2111/11211/13 "2009-05-19T06:06:43Z")

</div>

Thank you theatrus.i’m beginner to this field.give me some idea next what i have to do.

---

<div class="post-metadata">

**Author:** ![leon\_heller](https://yyz1.discourse-cdn.com/sparkfun/user_avatar/community.sparkfun.com/leon_heller/32/7602_2.png) [@leon\_heller](https://community.sparkfun.com/u/leon_heller)\
**Post date:** [May 19, 2009, 8:36am UTC](https://community.sparkfun.com/t/software-uart-msp430f2111/11211/14 "2009-05-19T08:36:19Z")

</div>

Look at the examples on the TI web site; there is some software UART code using TIMER\_A.

Leon

---

<div class="post-metadata">

**Author:** ![naz](https://avatars.discourse-cdn.com/v4/letter/n/e99b99/32.png) [@naz](https://community.sparkfun.com/u/naz)\
**Post date:** [May 19, 2009, 9:01am UTC](https://community.sparkfun.com/t/software-uart-msp430f2111/11211/15 "2009-05-19T09:01:27Z")

</div>

i tried it leon.but they are one only one software uart.our objective is,we have to use two software uart.

---

<div class="post-metadata">

**Author:** ![leon\_heller](https://yyz1.discourse-cdn.com/sparkfun/user_avatar/community.sparkfun.com/leon_heller/32/7602_2.png) [@leon\_heller](https://community.sparkfun.com/u/leon_heller)\
**Post date:** [May 19, 2009, 9:35am UTC](https://community.sparkfun.com/t/software-uart-msp430f2111/11211/16 "2009-05-19T09:35:53Z")

</div>

You have to write another one.

Leon

---

<div class="post-metadata">

**Author:** ![naz](https://avatars.discourse-cdn.com/v4/letter/n/e99b99/32.png) [@naz](https://community.sparkfun.com/u/naz)\
**Post date:** [May 19, 2009, 11:47am UTC](https://community.sparkfun.com/t/software-uart-msp430f2111/11211/17 "2009-05-19T11:47:45Z")

</div>

leon give me some idea i’ll do it and finish it.

---

<div class="post-metadata">

**Author:** ![Roko](https://avatars.discourse-cdn.com/v4/letter/r/3d9bf3/32.png) [@Roko](https://community.sparkfun.com/u/Roko)\
**Post date:** [May 19, 2009, 4:29pm UTC](https://community.sparkfun.com/t/software-uart-msp430f2111/11211/18 "2009-05-19T16:29:05Z")

</div>

Naz;

I suggest you read through the MSP430 User guide, specifically the see the section on the Timer\_A module. Go through your current software UART code, and make sure you understand how it works.

What you’ll want to do, in a nutshell, is copy your current code, except change all the control and capture/compare registers… (I.e. if you’re using, say CCR0 now, you’ll have to switch to use CCR1 and it’s associated control registers and interrupt vector… So for two uarts, you’ll have two chunks of software, one using CCR0 and another CCR1)… Just remember that you have to change a bunch of registers for each CCR.

---

<div class="post-metadata">

**Author:** ![naz](https://avatars.discourse-cdn.com/v4/letter/n/e99b99/32.png) [@naz](https://community.sparkfun.com/u/naz)\
**Post date:** [May 20, 2009, 4:02am UTC](https://community.sparkfun.com/t/software-uart-msp430f2111/11211/19 "2009-05-20T04:02:11Z")

</div>

i’ll try and i’ll let u know

---

<div class="post-metadata">

**Author:** ![naz](https://avatars.discourse-cdn.com/v4/letter/n/e99b99/32.png) [@naz](https://community.sparkfun.com/u/naz)\
**Post date:** [May 21, 2009, 6:20am UTC](https://community.sparkfun.com/t/software-uart-msp430f2111/11211/20 "2009-05-21T06:20:54Z")

</div>

Any one have two software uart example program in msp430

[Next page](https://community.sparkfun.com/t/software-uart-msp430f2111/11211.md?page=2)
