I have wrote a simple test app that outputs a character using serial (using generic uart) every second. I then connect the tx_pin to my usb_to_serial converter and monitor the character using a serial terminal on my laptop. When I press compile and run it works normally. Simple.
I then use XFLASH to load the code into the board permanently, it goes through its operation of verifying the writes and then displays that the transaction was successful. I am using the standard Slicekit USB JTAG converter. Everything seems to be fine:
Code: Select all
Warning: F03098 Factory image and boot loader cannot be write-protected on flash device on node "0".
Site 0 has started.
Site 0 has type 015.
Site 0 write 0x00000000.
Site 0 verified 0x00000000.
...
...
Site 0 write 0x00007400.
Site 0 verified 0x00007400.
Site 0 has finished.
xflash succeeded
If I leave the USB JTAG converter connected, ensure that no program is running in xTIMEcomposer (by quiting xTIMEcomposer) and then power cycle the slicekit, the app works. I can repeatably power cycle the Slicekit (whilst the JTAG is still connected) and the app works fine everytime. BUT if I remove the usb cable from JTAG, or remove the JTAG, when power cycled the Slicekit, it doesn't work (the pin can toggles randomly and outputs masses of jibberish)... Boot from flash only works with the JTAG connected to the laptop (and not even with a JTAG connected to usb charger to provide 5V). What is going on?!
e.g.
First XFLASH is called from xTIMEcomposer, and then I close xTIMEcomposer, then...
1. If JTAG + cable all left in place (and slicekit power cycled) = works
2. If cable removed (and slicekit power cycled) = doesn't work
3. If cable reconnected (and slicekit power cycle) = works
I'm about to buy another Slicekit to make sure, as this seems wrong?! Just wondering if there was anything I have missed. I have heard of pin compatibility issues (on core 0 with the SPI?), but I have tried different pins on both TILE_0 and TILE_1, which all reproduce this behaviour. I am currently using:
Code: Select all
on stdcore[TILE_1] : out port p_tx = XS1_PORT_1A; // X1D0 CIRCLE P1A0
???
Chendy