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.

Help needed in choosing microcontroller

Other Parts Discussed in Thread: TRF7970A, MSP430F2370, MSP430F2618

Dear TI Team,

I need some help in choosing microcontroller for our design.

As of now we have a stable design using MSP430F2370. The device is basically a NFC reader (TRF7970A, parallel mode). There is a requirement to add a keypad (25 keys), LCD and a couple of other peripherals. I am basically running out of GPIO pins and my design requires close to 32 GPIO pins. Can you please suggest a microcontroller that i could use to replace MSP430F2370. A couple of pointers to narrow down the choice are:

1. The device Has to be field upgradable

2. Porting the code should be simple. This is my biggest concern as i am not an expert in coding.

3. Should have minimum 2 UARTs, 3 would be ideal.

Thanks,

vinay

  • Hi Vinay,

    If possible you can use two controller and make it to communicate with spi. 

  • Two controllers are twice as much as you need ;-)

    Could you provide a little bit more info? Are your portpins all used now or will they be if you will add your extra hardware? Moving code from one MSP430 to another isn't really a big deal, as long as you have your I/Os defined in a header file and not addressing them in your whole code with expressions like P1OUT |= 0x40 or anything like that, instead of LCD_CS_DISABLE, for example. The peripherals are almost identical. Of course you will have to change some things, but I have moved projects from one MSP to another for several times now. This often happens during development, starting with a bigger processor and if oversized at the end of the project, moving the program to a smaller and cheaper one. Of course only, if the project is fixed to that function without keeping in mind to add some more functionality later.


    What is your requirement concerning flash/fram size? How many GPIOs do you need more? And which additional peripherals do you need?

    Maybe your existing processor has enough resources if you connect the additional stuff properly. For example: An EEPROM, a LCD, an ADC and an DAC can easily share an USCI-module, depending on the refresh rate they have to be written to or read from.

    For inputs you can use serial multiplexers.

    Maybe you tell a little bit more about your project.

    Btw.: I'm not a TI-team member, just a simple hardware-developer.

    Dennis

  • Here are some details of the project:

    Present Design (Based on TRF7970AEVM):

    Connected to MSP430F2370 is TRF7970A in parallel mode (P4.0 to P4.7) and bluetooth module (UART). 

    New Project: 

    In addition to the above two components, we will need:

    1. Keypad (20 keys) : Hence will need 9 GPIOs

    2. 2 x 16 LCD Display: Thinking of going with HD44780 based lcd, hence will need 6 GPIOs

    3. GPRS Module: UART + 3 GPIOs (indicating status and enable pins). I am thinking of multiplexing this with bluetooth device.

    4. SAM Module: will need another UART 

    5. BSL implementation.. 2 GPIOs (P1.0 and P1.1). yet to get started on this...

    6. 3 additional GPIOs : LEDs and one buzzer.

     

    Thanks,

    Vinay

  • You can use the product selector tool to find a suitable part: http://www.ti.com/lsds/ti/microcontrollers_16-bit_32-bit/msp/ultra-low_power/products.page

    You can choose what peripherals and number of GPIOs and narrow down the possibilities. If you stay with the 2xx/4xx family code porting will be easiest. But it shouldn't be too difficult to port to 5xx either.

    Have you looked at the MSP430F2618?

  • Hi Vinay!


    After reading your additional requirements I must agree, switching over to a bigger controller seems to be the better idea. Not because of your missing GPIOs, but UART-modules are not easy to share between different peripherals. It depends on whether your connected devices are respond-only, or if they can send data at any time to your MCU. If they would be respond-only you could route the UART-signals using analog-switches, but if as mentioned last, there is no way - take a controller having more USCI-modules. But have a closer look at those modules - the F2618 mentioned by Brian has four, but only two of them can do UART.

    The problem of missing I/Os could easily be solved by shift-registers like the HC595 for outputs or the HC165 for inputs. A HD44780, for example, could be connected to a 595 shift-register and then use full 8-bit-mode. R/W is normally not needed (if connected to a shift-register you won't be able to use it). If you now put some shift-registers in serial, you can add a lot of GPIOs. Of course you have to refresh all of those "virtual" GPIOs everytime you want to change any bit if having all latch-pins of the shift-registers connected together.

    But your problem is still the UART, so take a bigger controller that has enough free GPIOs for all of the required connections. Unfortunately there is no F2xxx/F4xxx device that has more than two UARTs. You could only have 4 SPIs, but that is not what you need. But nothing is easier than emulate a SPI module by bitbanging data out of some GPIOs, if the data size is small and not continously transmitted - then you should use interrupt-driven transmissions via an USCI.

    If you want to use 3+ UARTs you should switch over to another device family (F5xxx/F6xxx). Even the new FRAM types have no more than 2 UARTs.

    I think you should go for the F5xxx series. Depending on your actual code size and the functionality you plan to add you could use the F5255 - this part has 32k of flash, too. If your memory is almost full you should go for a bigger version like the F5419 (128k). Both have 8 USCIs with 4 UARTs included. And both are BSL via UART. When choosing a new MCU, always have a look if you can buy it somewhere like DigiKey - not all listed parts at TI are available at the distributor yet.

    Just an info: Your F2370 seem to have the BSL pins at P1.1 for TxD and P2.2 for RxD.

    Dennis

  • Thank you very much for your advice and remarks. I shall give it a shot.

    Thanks,

    vinay

**Attention** This is a public forum