Difference between revisions of "AN1003 - Upgrading your SIM's SHIPEngine Firmware"

From Serious Documentation
Jump to: navigation, search
(Using the Serious SHIPTide GUI Development Tool)
(Upgrading your SIM's SHIPEngine Firmware)
Line 3: Line 3:
 
Installed from the factory on every Serious Integrated Module (SIM) is a version of [[SHIPEngine]], the runtime GUI engine of the Serious Human Interface™ Platform ([[SHIP]]).
 
Installed from the factory on every Serious Integrated Module (SIM) is a version of [[SHIPEngine]], the runtime GUI engine of the Serious Human Interface™ Platform ([[SHIP]]).
  
Occasionally, you may want to upgrade the SHIPEngine firmware on your SIM to get the latest features of the engine.  Sometimes, upgrading to a new major version of the [[SHIPTide]] will require you to update your corresponding [[SHIPEngine]] on your SIM.
+
Occasionally, you may want to upgrade the [[SHIPEngine]]firmware on your SIM to get the latest features of the engine.  Sometimes, upgrading to a new major version of the [[SHIPTide]] will require you to update your corresponding [[SHIPEngine]] on your SIM.
  
There are several ways to upgrade the SHIPEngine on your SIM:
+
There are several ways to upgrade the [[SHIPEngine]]on your SIM:
 
* (hardest) Using the MCU manufacturer's programming/debugging tools
 
* (hardest) Using the MCU manufacturer's programming/debugging tools
 
* (easier) Using a simple Serious command-line tool, the Serious Flash Programmer (SFP)
 
* (easier) Using a simple Serious command-line tool, the Serious Flash Programmer (SFP)
* (easiest, coming soon) From within SHIPTide over the USB connection
+
* (easiest, coming soon) From within [[SHIPTide]] over the USB connection
 
* (easiest for production, coming soon) Using the Serious SHIPCrane OEM Programming Tool
 
* (easiest for production, coming soon) Using the Serious SHIPCrane OEM Programming Tool
  

Revision as of 06:21, 1 May 2013

Upgrading your SIM's SHIPEngine Firmware

Installed from the factory on every Serious Integrated Module (SIM) is a version of SHIPEngine, the runtime GUI engine of the Serious Human Interface™ Platform (SHIP).

Occasionally, you may want to upgrade the SHIPEnginefirmware on your SIM to get the latest features of the engine. Sometimes, upgrading to a new major version of the SHIPTide will require you to update your corresponding SHIPEngine on your SIM.

There are several ways to upgrade the SHIPEngineon your SIM:

  • (hardest) Using the MCU manufacturer's programming/debugging tools
  • (easier) Using a simple Serious command-line tool, the Serious Flash Programmer (SFP)
  • (easiest, coming soon) From within SHIPTide over the USB connection
  • (easiest for production, coming soon) Using the Serious SHIPCrane OEM Programming Tool

Getting the latest SHIPEngine

To get the latest SHIPEngine binary, go to the specific SIM documentation area and download it to your PC. For example, the SIM110 SHIPEngine can be found in the SIM110 area.

Using the MCU Manufacturer's Tools

Installing and using the MCU Manufacturer's tool suite for programming/debugging is a fairly complex process. Even our team at Serious sometimes struggles for several days when trying to get a new MCU's toolsuite functioning correctly, so you may want to skip this method and use one of the other methods below if possible!

Every SIM has a microcontroller (MCU) on it and some non-volatile memory. For many SIMs, the MCU is FLASH memory based for program storage, and uploading the SHIPEngine involves "reburning" the MCU's FLASH memory. For example, on the SIM225-A01, the MCU is a Renesas RX63N MCU with 768KB of 100MHz zero-wait-state program FLASH.

On these SIMs, the MCU manufacturer will publish the names of various IDEs that can be used to reprogram the FLASH on their devices. Renesas, for instance, has the HEW IDE as well as e2Studio -- both full featured C development and debug IDEs that support device reprogramming. Microchip has MPLAB for their IDE.

For the IDE-based reprogramming method, you'll need a JTAG or other MCU-specific hardware debugger/programmer unit. For Renesas RX devices, for example, the Renesas E1 or Segger J-Link devices. For Microchip PIC32, the ICD3, PICKit3, or RealICE will work. For the Renesas SH7279 on the SIM535, you'll need an E10A debugger.

Setting up an MCU development toolchain is a pretty complex process -- consult the MCU manufacturer's website. For the Renesas RX, we've documented the process here.

Each SIM has a way of accessing the JTAG or MCU programming port of the MCU. Some SIMs, like the SIM102-A00, SIM205-A00, SIM225-A00/A01/A02 have native connectors designed to directly connect to standard programmers. However, these connectors are often expensive and bulky, and many SIMs employ a PCB edge connector with an adapter. You only need one adapter for a given family of SIMs (plus your JTAG debugger and IDE).

For example, the SIM110 does not have a standard Renesas 14 pin 0.1" header. Instead, it has a simple 20 position (2x10) gold finger edge connector. The SPA100-A00 programming adapter adapts this edge connector to the standard Renesas 14-pin header. The SPA100-A00 can be purchased inexpensively, or it comes with some SIM110 development bundles, such as the SIM110-A00-SJL-01.

Similarly, programming the SIM535, based on the Renesas SH7269 MCU, requires an E10A JTAG programmer/debugger along with a SPA150-A00 programming adapter from Serious. In this case, the SH7269 MCU does not have on-board FLASH memory, but the SIM535 has on-board FLASH memory (both Serial FLASH for booting and eMMC FLASH for executing) and both of these can be uploaded using Renesas tools.

Using the SHIP FLASH Programmer (SFP) for Renesas RX-based SIMs

Renesas RX62x and RX63x MCUs have a special "USB Boot Mode" that, when invoked, runs some built-in ROM code in the MCU to allow uploading the FLASH firmware over the USB port from a Windows-based PC. There is no JTAG debugger or C-development IDE involved in this process. Rather, Serious has developed a simple command-line-based program called the SHIP FlASH Programmer, or "SFP", and a .inf driver that allows you to upload the latest SHIPEngine to the SIM in seconds.

Using the USB Boot Mode and SFP requires these elements:

  • A SIM powered by a Renesas RX-based MCU, including the SIM110, SIM205, and SIM225 families
  • A USB cable
  • A Windows-based PC
  • The SHIP FLASH Programmer program installed, with .inf USB driver
  • The latest SHIPEngine for your SIM
  • The ability to connect to your specific SIM and put it into "USB Boot Mode"

Some SIMs have the USB device port mini-B connector installed as well as a small 'piano DIP switch' that enables the SIM to boot into this special USB boot mode. The SIM110-A00 and SIM225-A00 both, for example, have the USB device connector as well as this DIP switch. However, for example, the SIM110-A01 and -A02 variants have the USB device connector but no DIP switch, and the SIM110-A03 and -A04 variants have neither. On devices without both features, you can use the inexpensive SPA100 Serious Programming Adapter which has both the USB device connector and the DIP switch made available. This helps keep the price of these SIMs down as these features are generally development and manufacturing features and not required when the SIM is placed into your system in production.

For complete instructions on this process, as well as the SFP download, see the SFP Documentation/Download Area.

Using the Serious SHIPTide GUI Development Tool

This feature is currently in development and expected to be released in Q2'2013. When complete, and with the associated SHIPEngine and SIM firmware, both the SHIPEngine and the GUI cargo will be upgradable from directly within SHIPTide.

Using the Serious SHIPCrane OEM Programming Tool

This application, currently in development and set for release in Q2'2013, is the subset of SHIPTide used to reprogram the SHIPEngine and GUI cargo. It will support multiple devices in parallel, so you can insert as many SIMs as you have USB ports on a PC and install on the your desired SHIPEngine and GUI cargo combination for your production needs.