I have problem with flashing D2000 unit please support me if any of you have some idea. I made custom board for IoT by my selfs of course it is first version and till end of curent year I want to produce next version. Third version after tests it should go to our clients (about end of February).
I paste into the custom board parts responsible for power and reset of the mcu. In next step I connect the JTAG from original D2000 board and reset line. As next step I connect board int ISSM environment and set up conection via JTAG as on screen below. I was verry happy that it is working properly. In next step I want to flash ROM in my new MCU but during ROM flashing process (about 50%) I recived the error as on second screen below. In case of any problem I can attacht my schematic or board layout. Does anyone have some idea what can be wrong or maybe some of you had similary problem?
sorry for my delay in topic. Couple days ago I recieved the corrected PCB's based on two layers (picture below ) and.... it looks like everything works fine :-). Comunication between the board and its envionment is stable, debuging works ok (APP and ROM loading is working properly) and the reset also seems to work properly - Today I'll set it up and let it for long term test.
What was the problem:
In my opinion I made couple mistakes: first there was a badly designed power regulator. Second mistake: power filtering of MCU. Third mistake: the width of the power lines.
Anyway - now it looks like the board works fine. If anyone had similary problems I'm willing to share my project experience etc.
Thank you all for support !
The JTAG seems to work: it properly detects the quark tap/device.
I've seen similar error messages before on my custom boards. The JTAG on the Intel Quark D2000 board implements an additional signal to reset the D2000 MCU using RST_N signal. And apparently the "Update target ROM" resets the D2000 and expects to find the Quark in a reset state.
My workaround is to run OpenOCD manually from command line (instructions below are for Linux):
bin/openocd -f scripts/interface/ftdi/flyswatter2.cfg -f scripts/board/quark_d2000.cfg -c "set QUARK_D2000_OTPC_DATA_WRITE_ENABLED 1" -c "flash_rom $ISSM_BSP_ROOT/soc/quark_d2000/rom/quark_d2000_rom.bin" -c exit
Sometimes I need to push the reset button on my Quark board for this procedure to work.
I am talking about the MCU reset, not the JTAG TRST signal. That is pin 30, RST_N or RESET_N. If you look at the Intel Quark D2000 board schematic, it is connected through Q3 to FT232HL. This allows ISSM to reset the MCU.
If I understand correctly, you're using the Intel Quark D2000 board as the JTAG interface, when perhaps you can connect RST_N on your board to Intel's board reset switch SW1 pin 1.
On my own Quark D2000 projects I have a 10 pin JTAG connector, and I was using a Flyswatter2 USB to JTAG adapter. The 10-pin JTAG connector does not provide system reset signal, and I had similar errors (target is running) when trying to update ROM from ISSM. But it did work properly from the command line, I think I had to reset the board manually before running the openocd command.
"If I understand correctly, you're using the Intel Quark D2000 board as the JTAG interface, when perhaps you can connect RST_N on your board to Intel's board reset switch SW1 pin 1."
Yes I'm using D2000 dev kit as programmer and I took RST signal from jumper J22 pin 3 (RESET) and I connect it to my board to reset button - it is correct as I think yes ?
I'm wondering because now when I'm trying to flash ROM I can do this correctly but I need press RESET button on my board (even when J22_3 is connected to my board reset) on the begin of ROM flashing process.