Wiki

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
resources:eval:user-guides:inertial-mems:evaluation-systems:eval-adis-fx3-developer-resources [07 Dec 2020 22:14] – Moved table Juan Chongresources:eval:user-guides:inertial-mems:evaluation-systems:eval-adis-fx3-developer-resources [04 Mar 2021 17:42] (current) – Fixed links Juan Chong
Line 1: Line 1:
-===== Breakout Board Selection =====+====== EVAL-ADIS-FX3 and FX3Api Developer Resources ======
  
-Expand the table below to find the breakout board for your specific IMU.+  
 + 
  
-<hidden> +===== EVAL-ADIS-FX3 Hardware Documentation =====
-^ MODEL NUMBER ^ BREAKOUT BOARD ^ +
-| [[adi>ADIS16201CCCZ]] | [[adi>EVAL-ADIS16201|ADIS16201/PCBZ]] | +
-| [[adi>ADIS16203CCCZ]] | [[adi>EVAL-ADIS16203|ADIS16203/PCBZ]] | +
-| [[adi>ADIS16209CCCZ]] | [[adi>EVAL-ADIS16209|ADIS16209/PCBZ]] | +
-| [[adi>ADIS16210BMLZ]] | [[adi>EVAL-ADIS16ACL1|ADIS16ACL1/PCBZ]] | +
-| [[adi>ADIS16223CMLZ]] | [[adi>EVAL-ADIS16ACL2|ADIS16ACL2/PCBZ]] | +
-| [[adi>ADIS16227CMLZ]] | [[adi>EVAL-ADIS16ACL2|ADIS16ACL2/PCBZ]] | +
-| [[adi>ADIS16228BMLZ]] | [[adi>EVAL-ADIS16ACL1|ADIS16ACL1/PCBZ]] | +
-| [[adi>ADIS16375BMLZ]] | [[adi>EVAL-ADIS16IMU1|ADIS16IMU1/PCBZ]] | +
-| [[adi>ADIS16445BMLZ]] | [[adi>EVAL-ADIS16IMU2|ADIS16IMU2/PCBZ]] | +
-| [[adi>ADIS16446BMLZ]] | [[adi>EVAL-ADIS16IMU2|ADIS16IMU2/PCBZ]] | +
-| [[adi>ADIS16448BMLZ]] | [[adi>EVAL-ADIS16IMU2|ADIS16IMU2/PCBZ]] | +
-| [[adi>ADIS16460AMLZ]] | [[adi>EVAL-ADIS16IMU4|ADIS16IMU4/PCBZ]] | +
-| [[adi>ADIS16465-1BMLZ]] | [[adi>EVAL-ADIS16IMU4|ADIS16IMU4/PCBZ]] | +
-| [[adi>ADIS16465-2BMLZ]] | [[adi>EVAL-ADIS16IMU4|ADIS16IMU4/PCBZ]] | +
-| [[adi>ADIS16465-3BMLZ]] | [[adi>EVAL-ADIS16IMU4|ADIS16IMU4/PCBZ]] | +
-| [[adi>ADIS16467-1BMLZ]] | [[adi>EVAL-ADIS16IMU4|ADIS16IMU4/PCBZ]] | +
-| [[adi>ADIS16467-2BMLZ]] | [[adi>EVAL-ADIS16IMU4|ADIS16IMU4/PCBZ]] | +
-| [[adi>ADIS16467-3BMLZ]] | [[adi>EVAL-ADIS16IMU4|ADIS16IMU4/PCBZ]] | +
-| [[adi>ADIS16470AMLZ]] | [[adi>EVAL-ADIS16470|ADIS16470/PCBZ]] | +
-| [[adi>ADIS16475-1BMLZ]] | [[adi>EVAL-ADIS16475|ADIS16475-x/PCBZ]] | +
-| [[adi>ADIS16475-2BMLZ]] | [[adi>EVAL-ADIS16475|ADIS16475-x/PCBZ]] | +
-| [[adi>ADIS16475-3BMLZ]] | [[adi>EVAL-ADIS16475|ADIS16475-x/PCBZ]] | +
-| [[adi>ADIS16477-1BMLZ]] | [[adi>EVAL-ADIS16477|ADIS16477-x/PCBZ]] | +
-| [[adi>ADIS16477-2BMLZ]] | [[adi>EVAL-ADIS16477|ADIS16477-x/PCBZ]] | +
-| [[adi>ADIS16477-3BMLZ]] | [[adi>EVAL-ADIS16477|ADIS16477-x/PCBZ]] | +
-| [[adi>ADIS16480BMLZ]] | [[adi>EVAL-ADIS16IMU1|ADIS16IMU1/PCBZ]] | +
-| [[adi>ADIS16485BMLZ]] | [[adi>EVAL-ADIS16IMU1|ADIS16IMU1/PCBZ]] | +
-| [[adi>ADIS16488BMLZ]] | [[adi>EVAL-ADIS16IMU1|ADIS16IMU1/PCBZ]] | +
-| [[adi>ADIS16488CMLZ]] | [[adi>EVAL-ADIS16IMU1|ADIS16IMU1/PCBZ]] | +
-| [[adi>ADIS16490BMLZ]] | [[adi>EVAL-ADIS16IMU1|ADIS16IMU1/PCBZ]] | +
-| [[adi>ADIS16495-1BMLZ]] | [[adi>EVAL-ADIS16IMU1|ADIS16IMU1/PCBZ]] | +
-| [[adi>ADIS16495-2BMLZ]] | [[adi>EVAL-ADIS16IMU1|ADIS16IMU1/PCBZ]] | +
-| [[adi>ADIS16495-3BMLZ]] | [[adi>EVAL-ADIS16IMU1|ADIS16IMU1/PCBZ]] | +
-| [[adi>ADIS16497-1BMLZ]] | [[adi>EVAL-ADIS16IMU1|ADIS16IMU1/PCBZ]] | +
-| [[adi>ADIS16497-2BMLZ]] | [[adi>EVAL-ADIS16IMU1|ADIS16IMU1/PCBZ]] | +
-| [[adi>ADIS16497-3BMLZ]] | [[adi>EVAL-ADIS16IMU1|ADIS16IMU1/PCBZ]] | +
-| [[adi>ADIS16500AMLZ]] | [[adi>EVAL-ADIS16500|ADIS16500/PCBZ]] |  +
-| [[adi>ADIS16505-1AMLZ]] | [[adi>EVAL-ADIS16505|ADIS16505-x/PCBZ]] | +
-| [[adi>ADIS16505-2AMLZ]] | [[adi>EVAL-ADIS16505|ADIS16505-x/PCBZ]] | +
-| [[adi>ADIS16505-3AMLZ]] | [[adi>EVAL-ADIS16505|ADIS16505-x/PCBZ]] | +
-| [[adi>ADIS16507-1AMLZ]] | [[adi>EVAL-ADIS16507|ADIS16507-x/PCBZ]] | +
-| [[adi>ADIS16507-2AMLZ]] | [[adi>EVAL-ADIS16507|ADIS16507-x/PCBZ]] | +
-| [[adi>ADIS16507-3AMLZ]] | [[adi>EVAL-ADIS16507|ADIS16507-x/PCBZ]] | +
-</hidden> +
- +
-===== Hardware =====+
  
 {{ :resources:eval:user-guides:inertial-mems:evaluation-systems:fx3:43893_50034.jpg?600 |}} {{ :resources:eval:user-guides:inertial-mems:evaluation-systems:fx3:43893_50034.jpg?600 |}}
  
-The EVAL-ADIS-FX3 hardware includes many improvements learned from the previous generations of evaluation systems and is designed to be small, flexible, and reliable. Some of the board’s features include:+The EVAL-ADIS-FX3 hardware is completely open-source and MIT licensed. It includes many improvements learned from the previous generations of evaluation systems and is designed to be small, flexible, reliable, and low-cost. Some of the board’s features include:
  
   * A dedicated, onboard 3.3V, 2A linear regulator designed for high-transient applications   * A dedicated, onboard 3.3V, 2A linear regulator designed for high-transient applications
-  * A USB-C connector (USB 2.0 compatible only)+  * A USB-C connector (USB 2.0 compliant only)
   * An onboard, field-upgradable EEPROM with USB bootloader fallback   * An onboard, field-upgradable EEPROM with USB bootloader fallback
-  * A software-selectable OFF / 3.3V / 5V IMU supply output with overcurrent and short protection+  * A software-selectable OFF / 3.3V / 5V IMU supply output with overcurrent and short-circuit protection
   * A JST-XH-2 external supply connector   * A JST-XH-2 external supply connector
-  * Selectable USB and external supply selection +  * USB and external supply selection jumper 
-  * Onboard status LEDs for each IMU GPIO pin+  * Onboard status LEDs for indicating the active supply voltage, data transmission, and the IMU GPIO state
   * An iSensor standard, 16-pin, 2mm connector for compatibility with existing iSensor breakout boards and adapters   * An iSensor standard, 16-pin, 2mm connector for compatibility with existing iSensor breakout boards and adapters
-  * An additional 10-pin, 2mm connector for feature expansion. As of writing, the firmware and API include support for:+  * An additional 10-pin, 2mm connector for feature expansion.  
 +  *  
 + 
 +The EVAL-ADIS-FX3 firmware was also redesigned to offer developers the flexibility to interface with as many external devices as possible. The firmware includes support for:
   * FX3 UART debugging   * FX3 UART debugging
-  * Four additional GPIO pins for external test equipment triggering and sensing (separate from the IMU GPIOs+  * Four additional GPIO pins, separate from the four IMU GPIO pins), for external test equipment triggering and sensing (such as with a vibration stage or motors
-  * Separate 3.3V and 5V supplies from the DUT supply meant to power external level shifters, drivers, interface ICs, etc. +  * A separate 3.3V supply that powers the FX3 core and other, external level shifters, line drivers, etc. 
-  * An extra, “bit-banged” SPI port to allow for “non-standard” SPI configurations and communication with external hardware (ADCs, DACs, protocol interface ICs, etc.)+  * An extra, highly-configurable, “bit-banged” SPI interface that allows for communication with external hardware (ADCs, DACs, protocol interface ICs, etc.) and enables “non-standard” SPI configurations.
   * An I2C port meant for interfacing with I2C-compatible inertial sensors   * An I2C port meant for interfacing with I2C-compatible inertial sensors
   * Concurrent, multi-board data capture capability. Multiple EVAL-ADIS-FX3 boards can be connected to the same PC and can concurrently capture data independently of each other   * Concurrent, multi-board data capture capability. Multiple EVAL-ADIS-FX3 boards can be connected to the same PC and can concurrently capture data independently of each other
Line 75: Line 32:
   * 1.5" x 1.75" PCB footprint   * 1.5" x 1.75" PCB footprint
  
-<note warning>The EVAL-ADIS-FX3 is designed to only support 3.3V logic and may be permanently damaged if subjected to signals > 3.6V!</note>+<note warning>The EVAL-ADIS-FX3 does not include any onboard GPIO logic level shifters and is designed to only support 3.3V logic! The EVAL-ADIS-FX3 and may be permanently damaged if subjected to signals > 3.6V!</note>
  
-The EVAL-ADIS-FX3 [[https://github.com/juchong/iSensor-FX3-Firmware/tree/master/hardware|schematics, layout, and manufacturing files]] are open-source and freely available on GitHub+The open-source, MIT-licensed design files and resources are located in the iSensor FX3 API repository on GitHub ([[https://github.com/analogdevicesinc/iSensor-FX3-API/tree/master/hardware|link]]). An EVAL-ADIS-FX3 may also be purchased [[adi>en/design-center/evaluation-hardware-and-software/evaluation-boards-kits/eval-adis-fx3.html|here]]
  
 The image below outlines the various indicators and connectors available on the EVAL-ADIS-FX3. The image below outlines the various indicators and connectors available on the EVAL-ADIS-FX3.
Line 83: Line 40:
 {{ :resources:eval:user-guides:inertial-mems:evaluation-systems:fx3_board_layout.png?600 |}} {{ :resources:eval:user-guides:inertial-mems:evaluation-systems:fx3_board_layout.png?600 |}}
  
-The EVAL-ADIS-FX3 interface pinouts are listed below.+The EVAL-ADIS-FX3 interface pinouts are also listed below.
  
 {{ :resources:eval:user-guides:inertial-mems:evaluation-systems:fx3_board_pinout.png?1100 |}} {{ :resources:eval:user-guides:inertial-mems:evaluation-systems:fx3_board_pinout.png?1100 |}}
  
-The recommended mating connectors are listed below. +The recommended mating connectors are listed in the image shown below. 
  
 {{ :resources:eval:user-guides:inertial-mems:evaluation-systems:fx3_mating_connectors.png?600 |}} {{ :resources:eval:user-guides:inertial-mems:evaluation-systems:fx3_mating_connectors.png?600 |}}
Line 99: Line 56:
  - [[https://github.com/analogdevicesinc/iSensor-FX3-Eval|FX3 Evaluation GUI]]  - [[https://github.com/analogdevicesinc/iSensor-FX3-Eval|FX3 Evaluation GUI]]
  
-The [[https://github.com/juchong/iSensor-FX3-API|FX3 API]] manages all the complex USB transactions and implements all the necessary tools to begin capturing high-speed, high-performance data in custom applications. This .NET-compatible API, written in VB.NET and C#, includes data streaming features tailored to reliably capturing inertial sensor data at the maximum data rate. The API is also fully [[https://juchong.github.io/iSensor-FX3-API/|documented (Sandcastle)]], open-source, and is licensed under the MIT license. The API also includes a [[https://github.com/juchong/iSensor-FX3-Wrapper|wrapper library]], allowing users to use the same API in any development environment with support for .NET (MATLAB, LabVIEW, Python, etc.) +The [[https://github.com/analogdevicesinc/iSensor-FX3-API|FX3 API]] manages all the complex USB transactions and implements all the necessary tools to begin capturing high-speed, high-performance data in custom applications. This .NET-compatible API, written in VB.NET and C#, includes data streaming features tailored to reliably capturing inertial sensor data at the maximum data rate. The API is also fully [[https://analogdevicesinc.github.io/iSensor-FX3-API/|documented (Sandcastle)]], open-source, and is licensed under the MIT license. The API also includes a [[https://github.com/analogdevicesinc/iSensor-FX3-API/tree/master/src_wrapper|wrapper library]], allowing users to use the same API in any development environment with support for .NET (MATLAB, LabVIEW, Python, etc.)
- +
-The [[https://github.com/juchong/iSensor-FX3-API/tree/master/firmware|FX3 Firmware]] was designed with compatibility and flexibility in mind. The firmware attempts to follow the Cypress program workflow and relies on FX3 system threading, execution priority, and event flags to execute firmware subroutines and transmit sensor data. Custom vendor commands trigger subroutines embedded in the firmware that read and write SPI data, measure external pulses, generate clock signals, and manage board configuration. Several SPI streaming modes are implemented, which allow applications to communicate with nearly every device in the iSensor portfolio. The firmware is fully [[https://juchong.github.io/iSensor-FX3-API/|documented (Doxygen)]] and was developed using the open-source [[https://www.cypress.com/documentation/software-and-drivers/ez-usb-fx3-software-development-kit|development tools]] and API offered by Cypress. +
- +
-The [[https://github.com/juchong/iSensor-FX3-Eval|FX3 Evaluation GUI]] provides a boilerplate for developing custom test software in a .NET environment. The evaluation GUI also includes helpful data capture and display forms to help test and evaluate sensor performance. +
- +
-===== Getting Started ===== +
- +
-==== Downloading and Installing the Drivers and Software ==== +
- +
-The EVAL-ADIS-FX3 includes a laundry list of hardware and software features designed to enable in-depth test and characterization of iSensor IMUs. In order to get started, we suggest you first download the [[https://github.com/juchong/iSensor-FX3-Eval/releases|latest Evaluation GUI]] and FX3 [[https://github.com/juchong/iSensor-FX3-API/blob/master/drivers/FX3DriverSetup.exe?raw=true|device drivers]] from GitHub. +
- +
-Once downloaded, double click on ''%%FX3DriverSetup.exe%%'' and follow the install prompts. Once complete, the signed Analog Devices driver should be installed on your PC. +
- +
-{{:resources:eval:user-guides:inertial-mems:evaluation-systems:driver1.png?nolink&420|}} +
- +
-{{:resources:eval:user-guides:inertial-mems:evaluation-systems:driver2.png?nolink&420|}} +
- +
-Every FX3 Evaluation GUI release is packaged inside of a .zip archive. We recommend extracting the archive somewhere on your PC (like your desktop), where it can easily be accessed. +
- +
-{{:resources:eval:user-guides:inertial-mems:evaluation-systems:files.png?180|}} +
- +
-==== Connecting to the FX3 Board ==== +
- +
-Once extracted, double click on ''%%iSensorFX3Eval.exe%%'' to launch the GUI. Before the main GUI launches, the software will ask you to select a device configuration to load.  +
- +
-{{:resources:eval:user-guides:inertial-mems:evaluation-systems:select_dut.png?250|}} +
- +
-Select the product ID/model number of the sensor you're connecting to and click on "Apply Device Settings." +
- +
-{{:resources:eval:user-guides:inertial-mems:evaluation-systems:select_dut_dropdown.png?250|}} +
- +
-If you have several FX3 boards connected to the same PC, another dialog box asking you to select a target FX3 board should pop up. Click on the drop-down menu and select each of the unique serial numbers until you identify the board you’re trying to talk to. The "activity" LED on the target board should blink. Once you’ve made a selection, click OK. +
- +
-{{:resources:eval:user-guides:inertial-mems:evaluation-systems:select_fx3.png|}} +
- +
-Once you've selected the correct FX3 board, the main screen should like the image below.  +
- +
-{{:resources:eval:user-guides:inertial-mems:evaluation-systems:main_screen_disconnected.jpg}} +
- +
-Once at the main window, click on “Connect to FX3” to enable all of the GUI features. If the connection to the EVAL-ADIS-FX3 was successful, all of the Evaluation GUI utilities will become active. The iSensor FX3 Eval software attempts to assess DUT Status by writing a randomly-generated number to the sensor module and reading it back.  +
- +
-{{:resources:eval:user-guides:inertial-mems:evaluation-systems:main_screen_connected.jpg}} +
- +
-<note warning>The EVAL-ADIS-FX3 supplies a 3.3V supply by default when connecting to an IMU, but can also be configured to supply 5V by selecting a device profile for a sensor that requires it. This setting can be overwritten in the "FX3 Configuration" menu by selecting "On_5Volts" in the "DUT Voltage" drop-down and clicking on "Set Config." The changes will take effect immediately. **This setting will revert to 3.3V if a device profile for a sensor that only supports a 3.3V supply is chosen. Note that supplying 5V to an IMU only designed for 3.3V will permanently damage the device!** +
- +
-{{:resources:eval:user-guides:inertial-mems:evaluation-systems:5v_fx3.jpg?nolink&400 |}} +
- +
-</note> +
- +
-<note tip>You can find the onboard sensor supply voltage and status on the main window here. +
-{{:resources:eval:user-guides:inertial-mems:evaluation-systems:supply_status.png?500|}} +
-</note> +
- +
-==== Troubleshooting Connection Errors ==== +
- +
-The FX3 Evaluation GUI attempts to read and write a random number to a scratch register upon startup or when the user clicks on "Check DUT Connection." This read and write operation does **not** commit any changes to the sensor's onboard flash memory and will not overwrite the register's contents. The FX3 Evaluation software will display an error if the verification operation fails. We've included several debugging steps to try if you encounter any errors while using the software.  +
- +
-==== "ERROR: FX3 Connection Lost" or "ERROR: No FX3 Board Connected" ==== +
-These errors occur when the FX3 Evaluation GUI cannot detect or lose connection with an active EVAL-ADIS-FX3 board. +
- +
-{{:resources:eval:user-guides:inertial-mems:evaluation-systems:connection_lost.png}} +
- +
-=== Is the ribbon cable orientation correct? Are the ribbon cable or sensor connections shifted or offset? === +
-The EVAL-ADIS-FX3 includes short-circuit protection on the sensor supply pins when using the onboard (USB) supply. Even so, it is still possible to overwhelm the USB power supply and force the EVAL-ADIS-FX3 to power off. A connection issue like this can be harmful to both the EVAL-ADIS-FX3 and may permanently damage either if not corrected immediately.  +
- +
-=== Is the USB cable plugged in? === +
-The EVAL-ADIS-FX3 must be plugged into a USB Type-A port capable of at least USB 2.0 speeds. USB hubs should be avoided since the USB protocol imposes artificial power limits when connecting through one.  +
- +
-=== Is the USB cable capable of transmitting data? === +
-Many USB cables that ship with mobile phones are **not** capable of transferring USB data and are designed for high-speed charging. We suggest using a high-quality USB C cable (like the one included with the EVAL-ADIS-FX3) to ensure reliable, robust communication.  +
- +
-=== Was the EVAL-ADIS-FX3 exposed to extreme environments? === +
-The EVAL-ADIS-FX3 was designed for bench evaluation, data capture, and characterization. Even though most iSensor portfolio devices are designed and validated to operate in extreme environments, the EVAL-ADIS-FX3 was not. Exposing the EVAL-ADIS-FX3 to environments outside of typical lab use may cause it to behave unreliably.  +
- +
-==== "ERROR: DUT Read/Write Failed" ==== +
-This error occurs when the register read-back operation fails to return the number that should've been written to the first scratch register listed in the selected register map.  +
- +
-{{:resources:eval:user-guides:inertial-mems:evaluation-systems:read-write_failed.png}} +
- +
-=== Is the power selection jumper correctly set? === +
-The EVAL-ADIS-FX3 can either supply power to the sensor using an onboard linear regulator or bypass the onboard regulator and use an external power source. The jumper must be set to "USB" when using the onboard regulator, as shown below. +
- +
-{{ :resources:eval:user-guides:inertial-mems:evaluation-systems:image_from_ios_11_.jpg?nolink&450 |}} +
- +
-=== Is the ribbon cable orientation correct? === +
-It's common to invert (flip) the ribbon cable orientation when connecting the EVAL-ADIS-FX3 to a sensor coupon or breakout board. The correct cable orientation is shown below.  +
- +
-{{ :resources:eval:user-guides:inertial-mems:evaluation-systems:image_from_ios_9_.jpg?nolink&450 |}} +
- +
-=== Is the sensor or ribbon cable connection shifted or offset? === +
-It's possible to shift the sensor or ribbon cable connection by one position or row. An example of a shifted connection is shown below.  +
- +
-{{ :resources:eval:user-guides:inertial-mems:evaluation-systems:image_from_ios_10_.jpg?nolink&450 |}} +
- +
-=== Was the correct profile for the sensor connected to the EVAL-ADIS-FX3 loaded? Was the correct register map loaded? === +
-The name of the active profile and register map can always be found on the main form, as shown below. +
- +
-{{:resources:eval:user-guides:inertial-mems:evaluation-systems:profile_regmap.png}} +
- +
-If the incorrect profile was accidentally loaded, a new one can be selected by connecting to the FX3 and clicking on the "Select DUT Type" button on the main window.   +
- +
-=== Is the active SPI configuration valid for the sensor connected to the EVAL-ADIS-FX3? === +
-It's possible to change the EVAL-ADIS-FX3 configuration such that it exceeds the SPI specifications listed on the sensor's datasheet. Reloading the device configuration by clicking "Select DUT Type" in the main window will always restore the SPI settings to a known-good configuration.  +
- +
-=== Are the SPI pins on the EVAL-ADIS-FX3 forced high/low? === +
-Some logic analyzers and in-circuit debuggers will hold GPIO lines at specific states such that either the EVAL-ADIS-FX3 or the sensor cannot source/sink enough current to force a transition.  +
- +
-=== Is the ribbon cable connected to the FX3 too long? === +
-The EVAL-ADIS-FX3 was not designed to drive long cable lengths without adding additional driver circuitry. As cable length increases, the SPI signal integrity will quickly deteriorate. Variables such as SPI SCLK rate and stall time will also influence the overall cable length. A long cable will usually result in zeros intermittently inserted in random registers, and incomplete register writes.  +
- +
-==== Configuring the IMU and Logging Sensor Data ==== +
- +
-The FX3 Evaluation GUI provides several ways to read and write the IMU’s onboard registers. The “Register Access” tab provides a quick way to modify IMU registers, allowing for manual configuration of the IMU without developing any embedded software. Hex to decimal conversion is also available by checking the “Scale Data” checkbox in the upper-right corner of the screen. The "Continuous Read" checkbox will automatically trigger an asynchronous read of the entire page.  +
- +
-{{:resources:eval:user-guides:inertial-mems:evaluation-systems:scale_data.png|}} +
- +
-{{:resources:eval:user-guides:inertial-mems:evaluation-systems:continuous_read_dec_hex.gif|}} +
- +
-Individual registers can be read by clicking on the corresponding register’s cell in the table. The entire page may also be read by clicking the “Read Page” button in the upper-right part of the screen. +
- +
-{{:resources:eval:user-guides:inertial-mems:evaluation-systems:read_registers.png}} +
- +
-The active register page can be changed by clicking the drop-down shown below. Only valid pages for that particular sensor will be shown. Sensors that do not have register page capabilities will show registers on page zero.  +
- +
-{{:resources:eval:user-guides:inertial-mems:evaluation-systems:register_pages.png}} +
- +
-{{:resources:eval:user-guides:inertial-mems:evaluation-systems:change_page_read_registers.gif|}} +
- +
-Registers can be written to in either hexadecimal or decimal format by selecting the target register, typing the new value in the "New Value" text box, and clicking on "Write." Registers that do not support being read back will show as "Write Only" in the status box above the "New Value" text box.  +
- +
-{{:resources:eval:user-guides:inertial-mems:evaluation-systems:write_only.png}} +
- +
-The "Register Access" tab can also measure the data ready output rate dynamically by clicking on the "Measure Data Ready" checkbox.  +
- +
-{{:resources:eval:user-guides:inertial-mems:evaluation-systems:decimate_measure_dr_1.gif|}} +
- +
-The “Register Logging” tab provides a means of continuously streaming IMU registers to the PC and recording them in .csv format. The register list is entirely customizable and can be saved in a file for future use. Register reads can either be synchronized to each data ready strobe or read asynchronously. +
- +
-{{:resources:eval:user-guides:inertial-mems:evaluation-systems:register_logging.png?nolink&450|}} +
- +
-The “Data Plotting” form allows you to quickly visualize sensor data and optionally record it to a file. Several registers can be plotted concurrently. +
- +
-{{:resources:eval:user-guides:inertial-mems:evaluation-systems:data_plotting.png?nolink&800|}} +
- +
-The “FFT Data Plotting” form allows you to visualize the FFT sensor outputs in near-real-time. Markers and -3dB lines can also be added to the plots to aid in evaluating the frequency response of our high-performance IMUs. +
- +
-{{:resources:eval:user-guides:inertial-mems:evaluation-systems:frequency_plotting.png?nolink&800|}} +
- +
-===== Troubleshooting ===== +
- +
-==== Issues installing FX3 Driver ==== +
- +
-If you encounter issues installing the FX3 driver, try running the installer with Administrator privileges. +
- +
-==== Issues with connecting to FX3 ==== +
- +
-If you’re having issues connecting to the FX3 initially (first-time setup), the best place to start is by checking whether the Analog Devices FX3 bootloader was correctly loaded into the onboard EEPROM. The Cypress SuperSpeed Explorer Kit ships with a default EEPROM image, which does not include bootloader capabilities. The easiest way to check this is by looking for a device named “Analog Devices FX3 Bootloader” in the Windows Device Manager. +
- +
-{{https://raw.githubusercontent.com/juchong/iSensor-FX3-Eval/master/Documentation/device_manager.JPG| Board Info}} +
- +
-If you’re unable to find the device, try resetting the FX3 by either unplugging the USB cable or pressing the reset button on the EVAL-ADIS-FX3. If this still doesn’t solve the issue, try pressing and holding the “BOOTLOADER” button while plugging the board into your PC. This will force the board to connect in recovery mode and should force the FX3 Evaluation GUI to detect it. +
- +
-==== Issues with communicating with the FX3 during long operations ==== +
- +
-Certain FX3 API functions can take a very long time to execute. Depending on how the function was called, it may even be possible to force the FX3 to become unresponsive. +
- +
-If the board becomes unresponsive, pressing the reset button on the FX3 or unplugging/plugging the USB cable should return the FX3 into bootloader mode. +
- +
-==== Debug Error Logging ==== +
- +
-=== Firmware error logging === +
- +
-The EVAL-ADIS-FX3 firmware includes an error logging feature that stores any exceptions generated during operation. When reaching out to support, it’s helpful to provide this file since it will help diagnose the root cause of the issue. Additional documentation as to how the error logging feature works and what data it records is available in the GitHub repository and code comments. +
- +
-In order to extract the firmware error log, click on the “Other Applications” button on the bottom right of the Evaluation GUI main menu. +
- +
-{{:resources:eval:user-guides:inertial-mems:evaluation-systems:other_apps.png?nolink&400|}}+
  
-Next, click on “Check Error Log.” This window will allow you to dump the error log from the FX3 hardware’s onboard EEPROM and save it to .csv file. This file contains the exact line in the code where the error was generated and will help point us to the root cause of the error.+The [[https://github.com/analogdevicesinc/iSensor-FX3-API/tree/master/firmware|FX3 Firmware]] was designed with compatibility and flexibility in mind. The firmware attempts to follow the Cypress program workflow and relies on FX3 system threading, execution priority, and event flags to execute firmware subroutines and transmit sensor dataCustom vendor commands trigger subroutines embedded in the firmware that read and write SPI data, measure external pulses, generate clock signals, and manage board configuration. Several SPI streaming modes are implemented, which allow applications to communicate with nearly every device in the iSensor portfolio. The firmware is fully [[https://github.com/analogdevicesinc/iSensor-FX3-API|documented (Doxygen)]] and was developed using the open-source [[https://www.cypress.com/documentation/software-and-drivers/ez-usb-fx3-software-development-kit|development tools]] and API offered by Cypress.
  
-{{:resources:eval:user-guides:inertial-mems:evaluation-systems:error_log.png?nolink&250|}}+The [[https://github.com/analogdevicesinc/iSensor-FX3-Eval|FX3 Evaluation GUI]] provides a boilerplate for developing custom test software in a .NET environment. The evaluation GUI also includes helpful data capture and display forms to help test and evaluate sensor performance.
  
-=== Software error logging === 
  
-If the Evaluation GUI ever throws an exception, an error log will be generated and stored in: ''%%C:\ProgramData\Analog Devices\FX3ExampleGUI\ERROR_LOG.csv%%'' When reporting an issue on GitHub, please be sure to attach this error log to help us further understand the root cause of the exception. 
resources/eval/user-guides/inertial-mems/evaluation-systems/eval-adis-fx3-developer-resources.1607375664.txt.gz · Last modified: 07 Dec 2020 22:14 by Juan Chong