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.

CC3200: CC3200 with external USB support and NAND Flash

Part Number: CC3200
Other Parts Discussed in Thread: MSP-EXP432E401Y, CC3120BOOST, MSP432E401Y

Good morning everyone.  I am a student at Embry-Riddle and am designing a Flight Data Recorder for my senior design project.  The system we have designed consists of a Microcontroller, Accelerometer, Gyroscope and a battery management subsystem, and (ideally) NAND Flash memory.  

My original choice for a Micro-controller was the ATmel 328P (Arduino Nano in laymens terms) which is just fine for sampling the sensor data but from what I have researched when it comes to writing to external memory, those external writes result in a loss of data.  Since data integrity per unit of time is a primary concern I began looking for alternatives.  

I have a decent level experience with TI products (TM4C, MSP430/432, and Hercules) and looking around it appears that the CC3200 has a built in SPI interface for flash memory.  I have ZERO experience with communicating with off chip memory except for a small experiment with an off-chip EEPROM.  

My design requires between 2 and 8 GB of memory and for the first version of this system I am considering this device:  MT29F2G01ABBGDWB-IT:G TRSo my first question is if I have properly understood the datasheet with regards to it's ability to communicate with flash memory and the specifically the memory I have selected.

For development we are planning on using the CC3200 launch pad but after development is complete, as if this were to go into production, the design requires that the system be able to communicate with an external system via a USB interface.  At this point the CC3200 processor will be directly incorporated in the design, not the launchpad.  So my 2nd and final question is that I am wondering if I have to purchase an external USB interface / controller to in order to make this possible, can I use the JTAG interface for this maybe?  I did not see a USB Host in the datasheet for the CC3200 but I have found a Cypress device built off TI technology that does have one, but sadly no dev / eval board to make development easy. 

Below is a high level diagram of the system

  • Hi,

    CC32xx devices are SoC for a Wifi applications. In case you don't need use Wifi, using CC32xx devices does not make sense.

    • Maximum size of supported sFlash (external SPI flash) is a 16MB at CC32xx. If you need to write many data, you can use SD card with CC32xx.
    • CC32xx devices does not support USB interface (you need to use external device to enable this feature)

    My recommendation for your application is to use MSP432 which you already used. From provided information is not clear if you need USB host or USB device is enough. If you need USB interface MSP432E401 could be right chip for you. Also is LaunchPad for this chip available (MSP-EXP432E401Y). Communication with external SPI flash is not a big deal. You need to properly read datasheet for flash chip only...

    Jan

  • Jan, 

    Thank you for the reply.  Originally we had a data link requirement which has now been de-scoped due to the COVID-19 issue.  There is a low probability that we may bring that requirement back into the project.  

    I have an MSP432 (red) launch pad already so that might work out.  To answer your question regarding USB the goal is to, after the product is an assembly, be able to connect a USB cable to a windows machine which is running an application that can command the system to self test the sensors, perform read operations to retrieve the data and command an erase of all data in the NAND flash.  

    My programmatic experience with USB has been on the software side in python and C# so i'm not sure if I have answered your question thoroughly. 

  • Hi,

    I think MSP432E401Y is perfect for your use case. It have enough memory and enough peripherals. It have USB and if later will be needed you can use integrated Ethernet controller. If Wifi will be needed later, you can easily connect CC3120BOOST to provide Wifi feature.

    If you need to connect computer to your board via USB, usage MCU which supports USB device is enough. You don't need MCU with USB host support. This will be required if you will need to connect additional USB device to your board (USB mouse, flash drive, etc.). At the market is many MCUs with USB device support. For example you can use:

    • MSP432E401Y
    • MSP430F55xx, MSP430F66xx
    • use any kind of MCU (8/16/32bit) with external UART to USB converter (e.g. FT232RL). This will be probably easier way than usage integrated USB peripheral inside MCU. In this case you don't need to study how USB stack inside your MCU works.

    Jan

  • Jan,

    Thanks again for the reply.  I think we have it nailed down now.  Looking at the datasheet for the MSP432E401Y I can see that it differs from the MSP432P4111 that I have used before in that USB is listed under connectivity.  Before your reply I was looking into adding a FT200XD to the design but now I do not think I need this, correct?  Table 4.3 of the MSP432E401Y datasheet looks as if I can bring the USB signals from the USB connector directly to the chip.  

  • Hi,

    MSP432P4111 MCU does not support USB. For this MCU you will need to use external USB interface like a FT232RL or your FT200XD. With MSP432E401Y device you don't need this USB interface chip. But if you select MSP432E401Y you will need to learn how to use USB interface inside MSP432 device. Choice is up to you.

    Questions related to MSP432 is better to ask at MCU forum.

    Jan