Post Go back to editing

How to Flash the EVAL-ADICUP360

I just purchased an EVAL-ADICUP360 eval board for the ADuCM360 and I can't find any documentation on how to flash it. So far I have gotten CrossCore Embedded Studio setup following the instruction here: https://wiki.analog.com/resources/eval/user-guides/eval-adicup360/tools/cces_user_guide. I have been able to compile and run the Blinky and CLI example programs on the board.

Next I am trying to figure out how to program a BIN file to flash memory but have not had any success. I have tried from guides I've found around the AD wikis:

  • Dragging the Blinky.bin file to the MBED drive mounted in Windows 10. fail.txt displays "SWD ERROR"
  • Tried Holding BOOT while pressing resent, then drag file onto MBED. Now MBED does not remount automatically do I can't see the error message.
  • Tried running CM3WSD. It says to "Press Download and pulse Reset" I assume this means to hold BOOT and press RESET. But it still doesn't work.

Overall I have found the documentation for this product very confusing and fragmented. Much of it seems very out of date. I would appreciate any help getting this set up with the current preferred method using the free compiler tool-chain.

  • Hi,

    Dragging and dropping a .BIN file is pretty straight forward.  Could you also tell me which version of CrossCore you are using?

    All you need to do is create the .bin file while you are building your project from CrossCore.  Once created all you need to do is drag it and drop it from the folder it is saved to onto the MBED drive in your directory.  Once that happens you simply need to hit the RESET button on the EVAL-ADICUP360 and you should be good to go.

    Creating a .BIN file from CrossCore is documented here as a series of steps and gifs. (https://wiki.analog.com/resources/eval/user-guides/eval-adicup360/tools/cces_user_guide#how_to_create_a_binary_bin_or_intel_hex_hex_file_for_an_aducm360_application )  It is extremely important that you turn off semihosting for any application before you build you .bin, otherwise your drag and drop won't work.

    Can you please try this again and let me know how it goes?

    Brandon

  • Hi Brandon,

    I have followed the wiki instructions to build the Blinky project and generate a .BIN file. When I run in the debugger the board blinks as expected.

    When I drag the BIN file to the MBED drive the DS4 LED goes from blinking to steady for 2 seconds then returns to blinking. Reset does not start the program and MBED has a fail.txt file with TIMEOUT in it.

    Sometimes when I try DS4 stays on much longer and I get an SWD ERROR in fail.txt

    Does the board need to be in a different mode before programming? I could not find any instructions on your wiki for using this drag-n-drop programming interface and only learned of it from various forum posts.

  • I just tried programming the board from an Ubuntu 18.04 machine and dragging the .BIN file in worked. After pressing RESET the lights started blinking. However, the program did not persist after power cycling the board. Shouldn't this have flashed to non-volatile memory?

    Why can't I program this board over USB from my Windows 10 machine?

  • Hi Mike,

    I just tried this out with CrossCore 2.8.0 and I used both the blink and the CLI demos from Github and everything worked. 

    1. I first made sure that I was pulling in the projects into CrossCore using the Git Clone ability. 
    2. Then when i looked at the properties for each project, i set the semihosting to nosys.specs. hit apply and built the project. 
    3. Then I went back into the properties and selected the Binary artifact , hit apply and built the project again. 
    4. Both binary files went to their respective folders and then I was able to drag and drop both onto my ADICUP360 (MBED) drive with everything working. 

    I just took a screen shot for you on the CLI demo.  I do have a 4 second video of the blinky working, but my computer won't let me upload it right now. 

    So I've verified they work, what I need you to do now is follow the steps i did and try this again.  Make sure you are working from all updated software.  If it still doesn't work, could you take a video of your screen and what you are seeing.  Along with the board?

  • I followed your instructions carefully:

    1. Using CrossCore 2.8.0
    2. Projects cloned from Git
    3. Set semihosting to nosys.specs and select Binary artifact
    4. Build project
    5. Drag ADuCM360_demo_cli.bin to the MBED drive

    As soon as I drag the file onto MBED the disk disappears and then remounts. Inside is fail.txt file with the message "SWD ERROR" each time.

    Note that the MBED drive does not stay mounted continuously on Windows 10. The drive seems to reset every 30 seconds or so, is this normal behavior?

  • I just tried this again from an machine running Linux noticed that the DS4 LED does not blink blink rapidly continuously like it does on Windows 10. It only blinks when I copy data to MBED. I was able to flash the Blink and CLI programs to the board (with persistence) using Linux. I don't understand why I am unable to use the device on my Windows machine, DS4 blinks rapidly whenever it is connected so something must be communicating.

  • Hey Mike,

    So I am using a Windows 7 machine on my side.  I just tried a Windows 10 machine with a colleague this morning and everything was dragging and dropping routinely on their machine.

    So I'm thinking it might have something to do with your machine.  Do you have any encryption or security protocol on your machine?  If its a work machine there could be a real good chance of that, I know I ran into a similar problem with my machine at one point.  The drive should not disconnect on a periodic basis, so that is another reason why I'm thinking its something with your machine.(driver issues?)  The drive will disconnect/reconnect when dropping a file, this is normal behavior.

    The program disappearing after you power cycle is a new one on me, its supposed to stay flashed.  I think we probably want to focus on the first issue, because it might clear up the second issue.

    I would look at the enctypion/security first, can you contact your IS team to see if there is something blocking you from copy/pasting files?  You could try to use a personal computer or even something like a RPI (which I have done in the past) to copy/paste the BIN file onto the ADICUP360 as a test.  if that work then you know its something to do with your current computer.

    Brandon

  • Last night I brought the board home and tried it on my Windows 10 PC without any corporate security software and had exactly the same problem. After some lucky Googling I discovered that the Windows "Storage Service" is to blame.

    If you go into "Computer Management->Services" and stop the "Storage Service" (also need to disable so that it won't restart later) then the MBED device starts behaving correctly and I was able to flash to it without any trouble.

    This post is where I found the answer: https://mcuoneclipse.com/2018/04/10/recovering-opensda-boards-with-windows-10/

    I have now verified that this is a fix on several Windows 10 machines with and without security tools installed. I don't know the full implications of disabling this service as Microsoft has not documented it well but this seems to be the answer for now. 

  • I also discovered that it is possible to flash the EVAL-ADICUP360 over the USER USB port with the CM3WSD tool. You need to connect the CM3WSD tool to the USER COM port rather than the MBED/DEBUG COM port and flash with a .HEX file rather than a .BIN file but it works. I was able to flash the noise.hex file that comes with the ADuCM36x Multi-Function Tool and successfully use the Noise analysis tool.

  • I thought it was also worth mentioning that you can use OpenOCD to flash your program(s).

    ${CCES}/ARM/openocd/bin/openocd -f ${CCES}/ARM/openocd/share/openocd/scripts/interface/cmsis-dap.cfg -f ${CCES}/ARM/packs/AnalogDevices/ADuCM36x_DFP/1.0.3/openocd/scripts/target/aducm36x.cfg -s ${CCES}/ARM/openocd/share/openocd/scripts -s ${CCES}/ARM/packs/AnalogDevices/ADuCM36x_DFP/1.0.3/openocd/scripts -c "program Blinky.bin; shutdown"