I'm evaluating Keil as a possible replacement for my existing IDE for embedded ARM applications. As a test case, I'd like to see how quickly I can get a simple app running with at least 6 serial ports and a file system. My question is whether anyone can point me at any ARM (Cortex M3, M4, ARM9, etc.) evaluation or development board with at least 6 serial ports and some kind of mass storage (SD or USB Flash), interrupt driven serial port drivers and file system support. Most importantly, example code to help me get up and running quickly. Thanks.
Christopher
I'm aware or a couple of evaluation boards that have the potential for 6 or more UARTs. The TI TM4C1294 Connected LaunchPad has a TM4C1294NCPDT processor that according to the data sheet has 8 UARTs. ST Micro has a 32F429IDiscoery evaluation board with a STM32F429ZI processor that according to the data sheet has 4 USARTs and 4 UARTs. The question I don't seem to be able to answer without investing a lot of time is given the way pins are multiplexed, can I really have 6 (or more) UARTs available to my application along with I2C and some kind of SD or flash memory. Just as importantly, how much effort will be required to learn how to use the CMSIS (or whatever is available) drivers and will the drivers from whatever peripheral library makes sense support all the UARTs available on the processor.The cost of the evaluation board isn't an issue, it is just the amount of time I will have to invest to get up to speed with even a brutally simple multi-UART controller with the ability to log 100s of MBytes of data. The data doesn't come in very fast but my app logs a lot of internal engineering data and the whole thing has to run for years on an autonomous oceanographic platform. If I can get those 2 functions working, plumbing in all the rest of my app which is basically a classic state machine with a FIFO queue to handle asynchronous data from the UARTs is relatively straight forward.
Unfortunately the whole field of oceanographic instrumentation is pretty much stuck several decades behind current technology and almost everything is RS232 based. Hence my need for lots of UARTs. I can and do use I2C UARTs but having some native UARTs with effective and easy to use interrupt driven drivers is really helpful.
Thanks for the help
Gene
Hello Gene,
sorry, I thought you were looking for a board that has 6 RS232 connectors. If you are fine with just the pins to connect to, then you really could use the STM32F429I-Discovery board which brings out all the pins on a standard header.
All USARTs can be configure in MDK using the Device Family Pack for the STM32F4 series. Download MDK here: https://www.keil.com/demo/eval/arm.htm. Then, download the Keil::STM32F4_DFP. You can quickly create a project and use the RTE_Device.h file to configure the available USARTs:
For getting started, please check our Getting Started Book for MDK Version 5.
Kind regards,
Hi Gene,
here is an additional idea to speed up your investigation: ST offers a tool called STM32CubeMX which is a graphical user interface to configure pinouts for STM32 devices and generate the resulting startup code.
With that tool, you should be quickly able to tell whether you can configure the chip to have a large number of serial ports + I2C and storage interface, as it will tell you if there are any pin conflicts.
Other vendors have similar tools, STCubeMX is just an example.
Johannes
Christopher and Johannes
Great, that is just what I was looking for. Now that you know I just need the UART pins are there any other boards you'd recommend?
Thanks