The emtrion SBC-SAMA5D36
I may be a microcontroller guy myself, but there are times where you need the power of a microprocessor. Having an operating system handle the memory, peripherals and events just saves time, and some applications really do need the power a microprocessor provides.
Atmel’s SAMA5D3 family has some impressive devices. Based on ARM’s A5 architecture, they has an impressive amount of peripherals and I/O lines. To name just a few, the SAMA5D36 has 3 I2C ports, 6 SPI ports, 12 12-bit ADC channels, and something you don’t see every day, 7 UART ports. This is impressive enough, but to add to that, the SAMA5D3 also has up to 160 I/O pins, each with its own interrupt. The SAMA5 series is geared towards industrial environments, automotive devices, and with Atmel’s implementation of capacitive touch peripherals, it can be used on just about any application where a user must input data.
With all that power, it isn’t surprising that the German manufacturer emtrion used this processor for one of their development boards, the SBC-SAMA5D36. They not only went with the SAMA5D36 device for its power and reliability, but also for Atmel’s reactivity when it comes to support. Atmel has worked hard on Linux implementation, and so the Linux kernel has everything you need to access every part of the processor, but I’ll get into that later on.
With the amount of peripherals on the SAMA5D3, Emtrion spent a lot of time thinking about what to place on their board. Their approach is an industrial system that can be used on a wide range of applications. It has 2 CAN ports, 3 I2C ports, one SPI and 5 UARTs. It also has 2 Ethernet connectors (one 100Base-TX and one 1000BaseT), 2 USB host ports, and one USB device port. It also has 5 PWM outputs, and 52 digital GPIO lines.
To access the serial port, an FDTI connector is available, placed just outside the expansion board location. Basic debugging won’t be a problem, but for more advanced debugging, a debug port is also present on the board. Video output is also available in the form of an HDMI connector, and a separate TFT connector is also present beneath the board.
Unfortunately, the LCD screens I had weren’t compatible, since they are all fairly specific designs, but it isn’t hard to find a screen for the SBC-SAMA5D36, it uses the EDT specification. Currently, there are no EDT displays with a resolution higher than 800x480.
One very nice addition is the LiPo charger. It is possible to power the entire board from a LiPo battery, and to charge it when main power is present.
I received a parcel, and I was excited, because I knew what was in it. Slight irony of this story, the parcel actually arrived damaged; the transporter had “technical difficulties” (nothing to do with emtrion). Since the parcel was waterlogged, I was considering refusing delivery and requesting a new sample to try out; after all, I wanted to be able to test this beast under the best conditions possible. Still, I was too excited, so I decided to try it out anyway. I wasn’t disappointed.
The board itself is professionally built. It is solid, it feels great in your hand, and doesn’t have any rough edges. The board is neatly cut, not snapped off a larger structure. That might sound strange, but embedded engineers know all too well the joys of snapped boards creating short circuits and strange behaviour when placed in a metal box. That won’t happen. The components are very well soldered, and everything just feels robust. This is a board I wouldn’t hesitate to put in an industrial environment.
Two connectors are available on the board, placed in parallel. Using standard 2.54mm spacing, it is easy to create your own extension board, or to place ribbon cables to another board. The layout is well thought, and offers quite a few possibilities. Emtrion have just released their first expansion board, the SBC-EXT1, offering a way to access the impressive amount of serial I/O.
The board itself booted up perfectly, despite rough handling. It took just a few seconds to get a Linux console, and full access to the system. The Debian based system that came pre-installed isn’t the fastest system available, but is an excellent way to familiarize yourself with the system. It was very complete, not just a barebones system that offers little in the way of debugging and profiling. Need a new package? Just install it.
Since the board also comes with a micro-SD slot underneath, it seems logical that you can also place a Linux distribution on an SD card. On the Emtrion download page, another Linux distribution is available, and this one is much faster, and boots in a fraction of the time. When you need the support of a full Linux distribution, you have it, and when the time has come to test your code in a more embedded-based distribution, it takes minutes to set up. Both environments come with a fully populated /dev folder, you don’t need to spend time developing drivers for the on-board hardware; everything is included. Everything seems to have been designed around ease of use and fast development time.
Based on Atmel’s SAMA5D3 range of Cortex-A5 processors, the ARM architecture means that this device is very energy efficient. According to emtrion, the maximum current usage is 160mA with no LCD screen, and when the Ethernet ports are disconnected. While running very inefficient code, I got typical readings of anywhere between 120 and 140mA. It shouldn’t be too hard to make a very efficient device.
When using an LCD screen and Ethernet ports, the maximum consumption is estimated at 300mA, but I was unable to test this.
The processor integrates a Power Management Controller, allowing the programmer to modify or stop clocks to various peripherals, saving energy. The processor can also be put to sleep, and can wake up on an external interrupt, or an RTC alarm.
One aspect of embedded systems that is often neglected is security. If your project requires months (or years) of R&D, then you must protect that somehow. The SBC-SAMA5D36 can boot from a large amount of peripherals, starting from on-board NOR, then from a micro-SD slot, then NAND. If this isn’t sufficient, it can also boot from SPI, or an I2C EEPROM. While nice to have, this is typically a problem when attempting to secure designs. Fortunately, emtrion have also thought about this, and have clearly documented the way to accomplish this by writing data to a CPU register.
The processor also includes three peripherals for boot security. On-board AES and Triple DES allow for fast encrypting and decrypting of data, and a True Random Number Generator allows random number generation that does not depend on any algorithm, enhancing security.
Finally, the SBC-SAMA5D36 also has a fuse box, 192 of which are available to developers.
emtrion, the designers and makers of the board, have done an excellent job with the hardware, but that is only part of the project. They work hard to create an entire Linux based system, and offer a complete development environment already installed, not a set of tools that takes hours to configure correctly because of system dependencies. Your development team will be up and running in no time, using a virtual machine image available for developers. They also provide a complete set of documents for the board itself, from electrical characteristics to marketing support.
emtrion goes a step further with the SBC-SAMA5D36. Looking on their website, some details were slightly vague; the SDRAM is listed as 256-512MB, and the NAND chip even more so, 512-2048MB. I soon understood why. emtrion’s question to its clients is simple: what do you need? We can help. If you need more NAND, we can do that. It isn’t just a simple option, but a dialogue. They even go beyond that – do you need more I/O? Need a change to the board? Let’s talk, we can find a solution together.
I’ve had this board for a few weeks now, and I’ve had a lot of fun with it. The SBC-SAMA5D36 is just begging to be used. The robust build, the excellent component layout, and the impressive I/O that the board offers makes it an ideal system for industrial systems.
The build is robust, and I wouldn’t hesitate a second before putting it into an industrial environment.The standard version of this board can operate in temperatures from 0 to 70°C, but an even more robust version is available, without HDMI, and able to operate at -20 to 85°C.That’s nice to have; I’ve worked on embedded systems that were to be deployed in rough terrain, one of the missions was in Alaska. This board can handle that without any problem. In fact, apart from one mission where a quad-core processor was required, I don’t think I’ve worked on a project that this board couldn’t have handled.
The choice of processor is an excellent one. The SAMA5D3 has an impressive amount of peripherals, and has a good balance between peripherals and energy efficiency. The Cortex-A5 is a great processor for industrial systems, and while it isn’t the fastest ARM design available, that isn’t what is required here; it is the smallest ARMv7 chip. It is still fast though, supporting ARM NEON and including an FPU.
The emtrion SBC-SAMA5D36 has an impressive amount of communication channels, and I’ve worked on some industrial systems where we were limited by the amount of serial input and output, and I would have loved to have this board to help out. No more switching between SPI and UART just to be able to communicate with the devices, this board can handle just about anything. And once again, if you do need more I/O, emtrion is always ready to talk to see how they can help out.
About the author
James A. Langbridge is an R&D Engineering consultant. In his role as an embedded systems consultant, he helps people and companies develop ARM-based systems and optimize code. He has been working in embedded systems for over 10 years in the aviation, defence, industry, and telecom sectors. His expertise includes bootloader coding, system initialization, and code optimization. When not on contract, he can be found creating new gizmos, much to the dismay of his partner, and scribbling notes for a new book project. He is the author of Professional Embedded ARM Development, and Arduino Sketches: Tools and Techniques for Programming Wizardry.