The Beagle Bone Black featured on the previous post, utilises a AM3359 ARM Cortex A8 Processor running at up to 1GHz rated at 1600 MIPS. More than enough power to operate and control the proposed force test and measurement system, including support for Ethernet, Profinet, Profibus, as well as multiple CAN, USB, UART ports. It has several embedded subsystems (coprocessors) which can run without requiring MPU cycles. Notably a Graphics accelerator for 3D display and gaming effects, a programmable Real Time Unit and Industrial Communications Subsystem. There is on-chip memory and two cache memories plus support for external general purpose memory and DRAM. Then we come to the usual on-board functional peripherals, ADC 8Ch 12bit, PWM 3ch for motor control, eQEP 3ch for position / speed feedback, along with I2C x3, SPI x2, McASP x2 all for inter-chip communications and not forgetting enhanced capture timers, Real Time Clock and DMA. What else could you ever need?
With support for the Linux and Android operating systems and the availability of add on CAPE extension boards, particularly one with a 7″ touch screen graphics panel. You have your own low cost tablet PC open development platform for less than £150 quite impressive. However there are major downsides when considered for the proposed test system. The first, this being a low volume product sitting in the 10 to 100 units per year bracket, the projected cost of the AM3359ZCZD72 in 1K+ quantities is $22.05 probably making it’s 1 off price similar to the £30 price of the Beagle Bone Black PCA. Well use the PCA with it’s memory, power management and comms connectors! Not possible for a production unit, the PCA is not supported and would be discouraged. It is for evaluation and the hobbyist only. The next drawback is the available packaging, 324 pin ball grid array only, requiring some very hi tek assembly facilities and consequent cost which cannot be absorbed by a low volume project. Still I wasn’t looking to develop 3D images on a tablet, my main interface was to be WiFi with perhaps a local graphics display for information and secondary manual operation. Let’s look at the other contenders.
The Stellaris LM3S9B96 ARM Cortex-M3 based microcontroller.
This processor from TI (acquired Stellaris several years ago) caught my attention some years ago when evaluating solutions for HMI and communications project. It has similar peripherals to the AM3359 but in less quantity and sophistication. The ADC, PWM and QEP are available for motor control and feedback measurement. USB, CAN, UARTS and Ethernet provide multiple comms options. The LCD is driven through a serial (SPI) or parallel interface, 256KB Flash, 96KB SRAM are on-board along with a software library pre programmed into ROM. The latter is particularly interesting as it contains driver support for all the peripherals including USB OTG and CAN as well as an RTOS, Encryption and a Graphics library with widgets. All linked as required at compilation using a table of pointers and supplied templates in header files.
This solution has the advantage of a 1K+ price of $9.76 and a 100pin LQFP package facilitating easy layout on a double sided PCB. Downside, is not being currently promoted for new designs as TI absorb the Stellaris brand into its new Tiva brand featuring the ARM Cortex M4F Processor with its associated Tivaware software libraries.
So tet’s introduce the third contender. The Tiva TM4C123 Microcontroller (identical to the Stellaris LM4F232 hence can leverage some interesting development kit for InstaSpin, the MDL-LM4F211CNCD plugged into DK-LM4F-DRV8312 3-Phase Brushless DC Motor Control Kit). This device has pretty much the same, but more of, the peripheral set in the LM3S9B96 above, dropping the Ethernet MAC but adding some EEPROM for non-volatile parameter storage and importantly maintaining the ROM based libraries now called TivaWare. The LQFP package option is still available and the 1K+ price is $4.23 making it very attractive indeed. We will consider the options for progressing the design around the TM4C123GE6PZ processor in the next blog.