Simplecortex - Arduino compatible ARM Cortex development board. Part 1 - Hardware
BRC Electronics » SimpleCortex
Originally developed for the do-it-yourself (DIY) and hobbyist communities, the Arduino open-source electronics prototyping platform is based on flexible, easy-to-use hardware and software. While still wildly popular among artists, tinkerers, and other creative types, its low cost of entry, and a rapidly-growing ecosystem of royalty-free crowd-sourced IP are winning the loyalty of many commercial developers. In this brief survey, we will review the hardware and software behind Arduino, and some of the applications it is powering.
Original Arduino boards are based on Atmel AVR 8-bit microcontrollers that are limited in processing power and even more in Flash and SRAM . Additionally Arduino libraries are written to be easy usable with sacrifice of performance. If you tried to develop more time critical apps then you know that Arduino’s don’t shine in this position. You can work around by writing your own libraries or simply go non Arduino way – writing your own C code. But why loose ability to use libraries and rich community resoures only because hardware can’t ensure desired performance.
This is where chipKIT comes in. Thanks to Newark we are able to take a closer look at chipKIT Uno32 which promises Arduino like experience with higher performance.
ChipKIT is developed by Digilent which offers two types of boards – Uno32 and Max32. So lets see whats inside Uno32 board. It is based on Microchip PIC32MX320F128 microcontroller featuring 128K flash and 16K SRAM memory. It can be clocked at 80MHz giving up to 32-bit MIPS performance.
The Simplecortex is a microcontroller development board that is shield compatible with the Arduino (Figure 1). The Simplecortex has a fast microcontroller, the LPC1769 from NXP. This is a ARM Cortex M3 microcontroller with 512KB flash, 64KB RAM and it runs at 120Mhz. To make sure that the Simplecortex is easy to use we made tutorials for almost every peripheral on the chip and examples to get you started. There are tutorials for simple stuff like IO control up to more advanced tutorials for MicroSD cards. If you have ideas for a new tutorial or made a tutorial yourself, feel free to drop an email or post it in the forum. The Simplecortex also has an onboard debugger. It can also be used to program external devices like a self made PCB for your own project. No more microcontrollers with pre-programmed bootloader needed.
We made the Simplecortex as a final year school project. At school we had to work with the Arduino, there was no debugger functionality. For bigger projects or when working with unknown sensors or devices a debugger is a very handy tool. Also a good programming environment can help a lot too, stuff like code-completion is very nice. The Simplecortex uses a Eclipse based IDE that has more options and functions but still is easy to use. The IDE is made by CooCox and is a free to use IDE. A part of their tools is also open source. The IDE is easy to install and use and is available for Windows XP, Windows 7 (x86 and x64).
The specifications of the Simplecortex versus Arduino:
The microcontroller on the Simplecortex is a LPC1769 of NXP. In the datasheet you can find all the information about the hardware of the LPC1769; things like available packages, power consumption, pin-layouts. In the user-manual you can find all software related information like memory mappings, register addresses etc.
The NXP LPC1769 is an ARM 32-bit Cortex-M3 Microcontroller with MPU.
The Simplecortex board consists of a couple of parts:
The schematic and PCB are made in EAGLE from Cadsoft.
To keep the powersupply low-cost, NX1117 voltage regulators are used. The 3.3v supply is secured with a PTC (resettable fuse) of 500mA (Figure 2). The upper connector is the JTAG connector. It´s important to keep the pin-layout the same. This pin-layout is use by a lot of debuggers, for excample: J-link, U-link. Connectors JP1 – JP4 are exactly the same connected as the Simplecortex.
Programming external devices
Before you can program an external device the microcontroller on the Simplecortex needs to switched off.On the Simplecortex there's the dip-switch B4 alias DB-EX (that is how it is called in the I/O list). Switch DB-EX (Debugger Extern) has a simple function, it only interrupts the supply of the microcontroller.
For this example we used a cheaper model of the LPC1769 (Figure 5). This microcontroller is also from the LPC17xx family but it has some limitations. To make your own project only the microcontroller, power supply and programming header are needed. All the unconnected I/O can be used although it is wise to check the datasheet first. Every pin with the discription Px[x] can be used as I/O. Most of the pins are internally connected to a periphcerals like I2C, SPE, etc. There are also 4 led’s and two buttons connected to the microcontroller. Obviously they can be removed but they are very handy for experimentation.
I/O List (Figure 6)
The header JP2 is placed below the reset button and has an important function when using the USB-host port. If the USB port is used for serial communications, the USB will power the Simplecortex. If the USB port is used to read a USB which has no powersupply, place a jumper on JP2.
The Simplecortex has a diode for each USB ports to protect the pc from high voltages.
This is the debugger error led (red color) .
Debugger works correct and is connected with the pc.
This blue led will shine when the debugger is busy.
Debugging external devices. When the switch is turned off, the onboard microcontroller will not work. With this function it’s possible to program external devices via the JTAG header.
Schematic Diagram and PCB Design of SimpleCortex - download
Part 2 - Getting Started
News on theme: