The purpose of this page is to inform you of the design choices that went into Eridani. They maybe useful reading, they may not be. By knowing what the priorities were for the design it may be easier to see what the best uses for Eridani are.

Eridani is based on a Cortex M3 ARM processor at 50 MHz. This is a reasonable amount of processing power. It has over 30 GPIOs and USB for both host and device applications.

USB device ports are becoming common place even on low cost 8-bit microcontrollers but low cost easy to use USB host even with a 12 Mbit link speed are not yet as common for low cost embedded system designs. Designs that incorporate this level of functionality tend to use OSes (things like Chumby or Beagleboard). We find this level of overhead and complexity unnecessary.

There are many reasons why you might want to host a specific part. For instance you might want to use a USB hard drive or memory stick in place of SD. USB thumb drives are one of the most common methods of data transfer, perhaps making a host interface more convenient than SD. A simple to use embedded Bluetooth module may cost 20 dollars. On eBay you can get a USB bluetooth mass produced dongle for 1.50 shipped… This requires a bluetooth stack/driver of course but hopefully the point is made. A low cost USB host development board is a very useful thing, but it should be easy to use…

That is why Luminary Parts were selected. The StellarisWare libraries are quite nice. So are the embedded ROM functions. It is well written and well documented. The documentation makes sense and the manuals aren't split up into many parts (cough STM32 cough).

The driver library isn't all perfect of course. The license isn't totally open. Basically it isn't GPL compatible, but is open source compatible (BSD etc). The point of the license seems to be to prevent all the hard work they did from simply being ported to a competitor's chips. This makes sense, though I am sure it won't please everyone.

While bit banging chips like the FT2232 are very useful it can be desirable to have more of the software in the embedded system than the FT chips allow, or simply to have more GPIOs available for use.

Given the I2C and SPI interfaces as well as the large number of GPIOs and the ADC the LM3S3651 is a good general purpose chip, the 32 KB SRAM is 16 or 32 times larger than typical 8-bit chips and it is very likely several times the speed of these at computing.

The chip's USB device abilities lets it easily be a serial port without any extra chips like an Aridunio. It is almost ironic that the more advanced microcontroller is used as the interface for a USB serial port on the newest Aridunio.

While we are now seeing easy to use ARM platforms like Netdunio and FEZ for .net these platforms have a lot of overhead. These approaches are useful but the do not minimize cost. For a handful of deployments the: through more hardware at it style solution is okay but not for real product design. The Eridani is easy enough to use but when you finish your design the cost of making more will be low.

On Eridani we decided to include as many programming interfaces as thought could be useful. Because of the wide spread use of Aridunio and similar/compatible boards we included a pinout for the FTDI Basic type virtual COM port. This interface alone can be used to program the Eridani along with printf style debugging. For those who want more control for debugging there are JTAG interfaces. Because this is a development board for Stellaris chips we included the ICDI interface the Luminary/Ti boards use. This interface is quite convenient for debugging. In addition we included a standard 20-pin JTAG that should work with most (if not all) ARM JTAGs. We hope this covers what people need and want but if it does not be sure to let us know.

The bootloader included on the Eridani is a UART based one. We considered using the USB flavor, however, this is more complex driver wise and we presume almost everyone who would want to use a board this powerful would have one or more TTL serial ports. A MAX232 could even be used. The other main reason to not use a more complex bootloader is the overhead. Using UART alone keeps the flash space requirement to a minimum, there is no RAM overhead to using the bootloader.

The last main thing you may notice on the Eridani schematic is that nearly every pin is available to you. In fact if you do not mind using the 20 pin JTAG connector as a header all the GPIO pins are pinned out. The caveat with the 4 JTAG pins are that they are pulled up via 10K resistors. This is why they are not pinned out on the main I/O header. We presume nearly everyone will want to use JTAG eventually, but perhaps this is not the case.

The jumper block allows the other pins needed for USB OTG/Host functions to be freed. It is common on boards from Olimex, Ti, and well everyone actually to decide what to do with pins and basically not let you have access to them. This can be very frustrating when you don't need a function and useful pins are not available.

Like Luminary Micro we want to provide really good documentation, because documentation matters. Luminary did a great job with the chips, and if you are used to setting up an open and free toolchain then it is no problem using one of the development boards from Ti, but for the most part they presume you will be using Keil or IAR. We know the hobbyist and the cost conscious company isn't going to want to pay for those tools so everything is documented for generic and free tools!

In summary we put a lot of thought into the Eridani even though it is a simple board, we hope it will be useful and fun to use and design with.

eridani/design.txt · Last modified: 2011/01/24 16:09 by teholabswikimaster
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki