Q: How do I load a *.hex file to the ADuCM350?
A: When code is compiled and built, EWARM will produce an output file. This output file can be a number of types (e.g. *.out, *.hex, *.bin; the desired type is specified in the project options). The Serial Downloader tool (CM3WSD) can be used to load a *.hex file to the ADuCM350 flash. The serial downloader tool can be found in the tools directory of the SDK (…Analog Devices\ADuCM350BBCZ \Eval-ADUCM350EBZ\tools\SerialDownloader).
Q: How do I load a *.out file to the ADuCM350?
A: When code is compiled and built, EWARM will produce an output file. This output file can be a number of types (e.g. *.out, *.hex, *.bin; the desired type is specified in the project options). The EWARM IDE can download a *.out file to the ADuCM350 flash.
Q: The part is locked, attempting to communicate through Serial Wire produces an error (see figure below). What do I do?
A: A typical scenario that causes such error is Page0 Checksum calculated incorrectly. Before proceeding further, ensure that the IAR EWARM project settings are correct, as detailed in "ADuCM350BBCZ Software Users Guide.pdf", section "Boot-Time CRC Validation".
To unlock the part, use the CM3WSD tool to perform a mass erase. The CM3WSD tool is part of the SDK, installed in <ADuCM350BBCZ_root>\tools\SerialDownloader.
By default <ADuCM350BBCZ_root> is "C:\Analog Devices\ADuCM350BBCZ\Eval-ADUCM350EBZ".
Q: Serial Downloader tool (CM3WSD) prints "Waiting for correct ID string" in the Monitor Status box (see figure below), how can I stop it?
A: Most likely this is caused by the current code running on the ADuCM350 transmitting data through the UART. Pulse RESET while SERIAL DOWNLOADER is pressed, as explained in the Serial Downloader Application Note (AN-1262). The CM3WSD tool should now behave as expected.
Q: How do I view output/results from Software Development Kit (SDK) examples?
A: All of the examples in the SDK return some results, data or information to the user (at a minimum PASS or FAIL). The test_common.c file defines a number of functions for returning data. There are 2 methods for viewing this data; using semi-hosting or via the UART interface. Which method is used depends on whether the TEST_COMMON_USES_UART conditional compilation macro is defined or not.
To use semi-hosting, an emulator must be connected to the EVAL-ADUCM350EBZ board. For Rev.0 boards, the emulator is connected to the JTAG or Trace connectors. For Rev.B boards, the emulator is on the USB-SWD/UART-EMUZ board, which connects to J14. In the IAR EWARM environment, click the Download and Debug button. This will download the firmware to the ADuCM350 and enter debug mode. Once the code has downloaded and the debug session has started, click View from the menu bar. Select the Terminal I/O option. This will open a terminal window within the EWARM environment and any results or other data to be returned to the user will be displayed here. Continue with debugging as normal.
To use the UART interface, the TEST_COMMON_USES_UART macro must be defined in the project file. This can be done by selecting Project from the menu bar and then selecting Options. Note that Options is not available during an active debug session. In the Options window that opens, select the C/C++ Compiler category on the left-hand side. Then select the Preprocessor tab. Within this tab there is a text box for Defined Symbols. On a new line in this text box add TEST_COMMON_USES_UART and click OK. See the image below. The project will need a full rebuild. Select Project from the menu bar and click Rebuild All. The firmware can now be downloaded to the ADuCM350. As the results and/or data will now be returned via the UART interface, it will be necessary to use a terminal application to listen to the COM port which is connected to the UART interface. It is not necessary to use EWARM or debug mode when using the UART to return the results.
Semi-hosting is the default option for all examples in the SDK.
Q: How do I use a Trace debugger with the Eval-ADUCM350EBZ Rev.B motherboard?
A: When attempting to use a trace debugger with the Eval-ADUCM350EBZ Rev.B motherboard, you may encounter the error message below when attempting to flash your code to the ADuCM350.
The Eval-ADUCM350EBZ Rev.B motherboard is supplied (by default) by the USB-SWD/UART-EMUZ emulator board. The 5V USB supply comes in through J14 on the motherboard and is regulated to 3.3V by U6 (ADP3333). This 3.3V supply is seen by the trace connector as the target power. The emulator board also uses SWDIO and SWCLK to allow serial wire debug. When attempting to use a trace debugger, these pins are also required and there is contention. The connection of the SWDIO and SWCLK pins to the emulator board can be easily broken by removing LK2 and LK4 on the USB-SWD/UART-EMUZ emulator board. This will allow the trace debugger to use the SWDIO and SWCLK pins and download to the part.