NanoBoard 3000 - Firmware Updates

Frozen Content

Main article: NanoBoard 3000 Series

Each 3000-series NanoBoard uses an FPGA device as the controller for the board. Referred to as the Host FPGA, or NanoTalk Controller, this device (designated U30) communicates with the host PC using Altium's NanoTalk communications protocol. It is the NanoTalk Controller into which the intelligence for the system – the NanoBoard firmware – is programmed. The actual FPGA device used as the NanoTalk Controller depends on the variant of 3000-series NanoBoard being used:

  • NanoBoard 3000XN – Xilinx variant: A Xilinx Spartan-3AN device (XC3S400AN-4FGG400C) is used.
  • NanoBoard 3000AL – Altera variant: An Altera Cyclone III device (EP3C10F256C8N) is used.
  • NanoBoard 3000LC – Lattice variant: A LatticeECP2 device (LFE2-12E-5FN256C) is used.

The NanoBoard 3000 is shipped with the firmware already pre-installed, but future revisions can be installed at any time. The NanoBoard 3000 has been designed so that the firmware can be updated in the field, over the standard PC-NanoBoard USB connection, without the need for a parallel port or Altium's USB JTAG Adapter (DT01). To accomplish this, the NanoBoard 3000 employs a dual boot system for configuring the board's Host FPGA (NanoTalk Controller). Either the normal operating firmware can be loaded, or a version of firmware that enables the normal operating firmware to be upgraded. These two versions of the firmware are referred to as the 'Primary' and 'Golden' boot images respectively. The version of firmware loaded into the Host FPGA is controlled by placement of a jumper on header J24, labeled 'PLATFORM UPGRADE ENABLE'.

Identifying Current Firmware Version

The version and type of firmware currently loaded into the Host FPGA can be identified underneath the icon for the NanoBoard in the NanoBoard chain of the Devices view (View»Devices View). The special version of the firmware (Golden boot image) is distinguished from the normal operating firmware (Primary boot image) through the use of the suffix -Update.

When loaded, the special version of the firmware is distinguished by the suffix "-Update".

Firmware Storage

The normal operating firmware – the 'Primary' boot image – is stored in an M25P80 8-Mbit serial Flash memory device (U51). The firmware consists of the FPGA programming file, as well as the embedded application code (Hex file), combined together into a .bin file.
 

The Spartan-3AN device used as the Host Controller on the Xilinx variant (NanoBoard 3000XN) has a built-in Flash memory. This is used to store the 'Primary' boot image for the board and, as such, the M25P80 device (U51) is not used.

 
Upon power-up, the firmware is automatically loaded into the Host FPGA (NanoTalk Controller). The embedded application code will be loaded into the independent SRAM (U47) accessible by the Host Controller.

Automatic Firmware Updates

To ensure your 3000-series NanoBoard has the latest version of the operating firmware (Primary boot image) installed, Altium Designer provides an Automatic Firmware Update feature. This feature enables you to check for new versions of firmware and update your NanoBoard with the latest firmware in a more streamlined, automated fashion.

Using the Automatic Firmware Update feature takes the hassle out of keeping your NanoBoard 3000 in-sync with the latest firmware releases from Altium. With an automated 'watchdog' keeping a periodic, watchful eye on future firmware updates as they become available, you can rest assured that you will always have the latest 'smarts' loaded into your NanoBoard as you continue to explore and discover the world of soft design!
 

The Automatic Firmware Update feature is only available when using SP1 of the Summer 09 release of Altium Designer (or later). You are not required to be signed in to your Altium account in order to use this feature, though you will need to be connected to Altium's on-demand services. For more information concerning the latter, see Connecting with Altium.

 
The following sections look at the use of the Automatic Firmware Update feature for updating the normal operating firmware (Primary boot image).

Checking for Updates

With the Automatic Firmware Update feature enabled, the software will check for updates as soon as the following conditions are initially met and then every 24 hours thereafter (providing the conditions continue to be met):

  • Altium Designer is running, with the Devices view (View»Devices View) open and the Live option enabled.
  • A NanoBoard 3000 is connected to the computer running Altium Designer and is powered on.

Essentially, the software compares the version of firmware currently installed in your NanoBoard 3000 against an index of currently released versions of the firmware. If a later version is available, a wizard will pop-up automatically – offering the ability to update your firmware at that time.
 

Automatic checking for firmware updates is enabled by default, provided you are connected to Altium's on-demand services. For information on how to manually disable this automated checking, see Manually Disabling Automatic Firmware Updates.

 

Indicating Outdated Firmware

If you are currently using a version of the firmware that is not detected to be the latest version, this is indicated within the Devices view by displaying the currently installed firmware in red text, underneath the icon for the NanoBoard.

Red text beneath a NanoBoard icon provides instant feedback that outdated firmware
is currently being used on that board.

Performing an Update

Main article: Automatic Firmware Update Wizard

Firmware updates are carried out using the Automatic Firmware Update wizard. As mentioned previously, if automatic checking for firmware updates is enabled, and you are connected to Altium's on-demand services, this wizard will appear automatically when an update is available. It can also be accessed at any time, should you wish to manually update firmware – to the latest or a previous version (as available to you).

The Automatic Firmware Update wizard.

The wizard makes updating your NanoBoard's firmware a breeze with its intuitive pages – pages that indicate very clearly what you need to do at each step of the update process, and even highlighting the on-board location of resources used during the process, such as power switch and platform jumper!

Defining Auto-Update Preferences

Options for the Automatic Firmware Update feature are defined on the FPGA – NanoBoard Firmware Updates page of the Preferences dialog (DXP»Preferences).

Determine where, and with what frequency, automatic checking for firmware updates is performed.

The Automatic Firmware Update feature is disabled when you elect to disconnect from Altium's on-demand services. In this case, all options on the page will be disabled. For more information, see Automatically Disabling Automatic Firmware Updates.


Firmware Location

Use the Firmware Index Locations region of the page to define where the software is to 'look' for firmware updates. By default, this is set to a dedicated external web page – http://firmware.altium.com – maintained by Altium. Should you wish, you can point to a different web address, a folder on your local hard drive (typically the \System folder of the Altium Designer installation), or even a shared location on a network.

To add a new location, simply click on the Add button. The Enter Provider URL dialog will appear, from where you can enter the required location. If you have multiple locations defined, the Updater will search locations in a top-down fashion. Use the Move Up and Move Down buttons to change the search order as required.

You have full control over where to check for firmware updates - ideal
for companies with strict policies on external internet connections\!

Whatever the destination folder/address, you need to have a resident file at that location – named index.xml – which is used to describe the available updates. The following is example content of such an indexing file:

     <?xml version="1.0" encoding="UTF-8" ?>
- <releases>
     - <class id="NB3000XN.04">
          - <firmware>
                    <version>1.0.14</version>
                    <url>http://firmware.altium.com/Firmware_NB3000XN_4_V1_0_14.bin</url>
               </firmware>
          - <firmware>
                    <version>1.0.15</version>
                    <url>http://firmware.altium.com/Firmware_NB3000XN_4_V1_0_15.bin</url>
               </firmware>
          </class>
     </releases>

In this case, the two firmware update files reside at the same web address as the index file. The Class entry is used to 'confine' these updates to a particular class of NanoBoard – the Xilinx variant in this case; NB3000XN.04.
 

The index.xml file is simply a redirection point – the actual firmware updates (*.bin files) can be located independently of it. This allows you full control over when (and how) updates to your hardware are applied.

 
Update Frequency

The Automatic Firmware Update feature checks for updates at the defined location in accordance with the setting defined in the Check for updates field, at the top of the FPGA – NanoBoard Firmware Updates page:

  • Once a day – check for updates at 24hr intervals. This is the default setting.

 

With a 3000-series NanoBoard connected and powered on, the software will check for firmware updates upon accessing the Devices view (View»Devices View) for the first time, and enabling the Live option.

 

Manually Disabling Automatic Firmware Updates

Automatic checking for firmware updates can be disabled in the following ways:

  • By setting the Check for updates option to Never on the FPGA – NanoBoard Firmware Updates page of the Preferences dialog.
  • By removing all location entries in the Firmware Index Locations region, on the FPGA – NanoBoard Firmware Updates page of the Preferences dialog.
  • By checking the Disable auto updates for this NanoBoard option that appears in the Automatic Firmware Update wizard.
  • By right-clicking on the associated icon for the NanoBoard in the Devices view and toggling the Check for Firmware Updates command to be disabled (no tick to the left) from the context menu that appears.

 

The first two options are global – applying to all NanoBoards. The last two options operate at the individual NanoBoard level, as determined by the Serial Number for each board.

Automatically Disabling Automatic Firmware Updates

Related articles: Connecting with Altium, Disconnecting from Altium's On-Demand Services

The Automatic Firmware Update feature is automatically disabled whenever you elect not to allow connections with Altium. Disconnection from Altium can be made at any time from the System – Account Management page of the Preferences dialog. When in a disconnected state, indication will be displayed at the top of the FPGA – NanoBoard Firmware Updates page of the Preferences dialog, and all controls on that page will be disabled. To take advantage of the Automatic Firmware Update feature, you will need to allow connections to Altium.

Disconnecting from Altium's on-demand services will disable the Automatic Firmware Update feature.

Although disconnection from Altium's on-demand services disables Automatic Firmware Updates, you can still manually update your firmware by choosing a firmware file from a local hard disk or network location (see next section).

Manual Firmware Updates

With the Automatic Firmware Update feature, you can always keep up to date with the latest firmware available from Altium. However, there may be occasion where the version of firmware installed requires to be changed immediately, and in a more manual fashion. For example, you may have decided to disable automatic checking for firmware updates for a specific board and now want to change the version for it. Or perhaps you have a need to regress to a previous version of the firmware.

The firmware can be changed at any time for a specific NanoBoard. Simply right-click on its icon in the Devices view and choose the Update NanoBoard Firmware command from the context menu that appears. The command provides access to the Automatic Firmware Update wizard. The wizard will guide you through the update process, allowing you to select which version of firmware you want to install.

Change firmware version at any time using the same Automatic Firmware Update wizard.

When manually updating the firmware, the Automatic Firmware Update wizard will, by default, select the latest version of firmware it can find, ready for update. It will search for this using the defined index location(s) on the FPGA – NanoBoard Firmware Updates page of the Preferences dialog (provided checking for updates is enabled and you are connected to Altium's on-demand services). In addition, the wizard provides the ability to select a firmware file from a hard disk or network location – you are always in full control over which version of firmware is installed to your board.

Testing the NanoBoard 3000

Once the NanoBoard 3000's firmware has been updated to the required version, the new firmware can be tested as follows:

  1. Ensure the NanoBoard 3000 is powered-up.
     
  2. Ensure that the Live option (in the Devices view) is enabled, to activate the auto-board-recognition system. The NanoTalk Controller for the connected 3000-series NanoBoard should automatically be detected and an icon for the board appear in the NanoBoard chain (the top chain in the Devices view).
     
    The on-board User FPGA device should be automatically detected and appear in the Hard Devices chain (the middle chain in the Devices view).
     
    The following illustrates detection of a Xilinx-variant NanoBoard 3000 (NB3000XN) which has a Xilinx Spartan-3AN device as its User FPGA. Note that when the latest release of firmware is installed, the text underneath the NanoBoard icon will have changed from red to black. If you have purposefully loaded a previous version of the firmware it will, of course, remain red.
     

    Successful detection of NanoBoard 3000 and User FPGA device.


     

  3. Open an FPGA project that includes one or more Nexus-enabled devices (e.g. processors, counters, logic analyzers) and that is appropriately configured to target the User FPGA device on the NanoBoard 3000. Go ahead and program the User FPGA. This will test that the Soft Devices JTAG chain is functioning correctly (presented as the bottom chain in the Devices view, once the design is downloaded into the target physical device).
     

    Successful communications with a Nexus-enabled device in the Soft Devices JTAG chain.

    Each 3000-series NanoBoard is shipped with an example Slide-Show design pre-loaded into User Flash memory. The User FPGA on the NanoBoard 3000 is preset to boot with this design on power-up. If you have not removed this example, and/or changed the source for auto-booting of the User FPGA, the Devices view will show the physical device as being Programmed and the Soft Devices chain will show a TSK3000A processor as Running. Although, in this case, there is no need to program the FPGA using another design project, doing so is a good test that you can program the device from within Altium Designer.

  4. With the chosen design running in the FPGA, double-click on the icon for the NanoBoard (in the NanoBoard chain of the Devices view). The Instrument Rack – NanoBoard Controllers panel will appear. Use the instrument panel to change the system clock frequency. This will write the new clock frequency to the system clock, which, being an SPI device, will test that communication to SPI devices is working correctly.
     

    Reprogramming the SPI-based programmable system clock.


     
    As well as writing the new frequency to the clock, the value will also be stored in the common-bus Flash memory and read back by the NanoTalk Controller to verify the change. As the new frequency is stored in the Flash memory, it is persistent across both design sessions and hardware sessions. Therefore, closing Altium Designer, relaunching and opening an FPGA project (or cycling the NanoBoard 3000's power) will result in the last clock frequency entered being used.

See Also

You are reporting an issue with the following selected text and/or image within the active document: