In a production line setup we are trying to use SmartSnippets command line interface to burn the OTP header and OTP custom code. Both work from Windows GUI, but fail from command line.
Downloading the programmer works:
C:\Program Files\SmartSnippets\bin>smartsnippets.exe -type booter -chip DA14580-
01 -jtag 518110536 -file "C:\Users\a1t4czz\SmartSnippets\resources\jtag_programm
er.bin"
Could not measure total IR len. TDO is constant high.
Could not measure total IR len. TDO is constant high.
Found SWD-DP with ID 0x0BB11477
Found Cortex-M0 r0p0, Little endian.
FPUnit: 4 code (BP) slots and 0 literal slots
BTLE device selected.
Using default GPIO pin Id: P1_2.
T-bit of XPSR is 0 but should be 1. Changed to 1.
Firmware File c:\users\a1t4czz\smartsnippets\resources\jtag_programmer.bin has b
een selected for downloading.
Cortex-M: Debugger tries to set PC to odd value. Corrected register value from 0
x000800B5 to 0x000800B4
Successfully downloaded firmware file to the board.
But trying to burn anything fails:
C:\Program Files\SmartSnippets\bin>smartsnippets.exe -type otp -chip DA14580-01
-jtag 518110536 -cmd write_field -offset 0x7F00 -data 1234A5A5
Could not measure total IR len. TDO is constant high.
Could not measure total IR len. TDO is constant high.
Found SWD-DP with ID 0x0BB11477
Found Cortex-M0 r0p0, Little endian.
FPUnit: 4 code (BP) slots and 0 literal slots
BTLE device selected.
Using default baudrate: 57600 Bd.
Failed burning OTP field at address 0x47F00.
C:\Program Files\SmartSnippets\bin>smartsnippets.exe -type otp -chip DA14580-01
jtag 518110536 - cmd write_custom_code-file "C:\svn\BLEtooth\FW\DA14580_DSPS_3.
150.2 device\dk_apps\keil_projects\sps\sps_device\out\sps_device.hex" -offset 0x
0
Could not measure total IR len. TDO is constant high.
Could not measure total IR len. TDO is constant high.
Found SWD-DP with ID 0x0BB11477
Found Cortex-M0 r0p0, Little endian.
FPUnit: 4 code (BP) slots and 0 literal slots
BTLE device selected.
Using default baudrate: 57600 Bd.
Read 14208 bytes from file c:\svn\bletooth\fw\da14580_dsps_3.150.2 device\dk_app
s\keil_projects\sps\sps_device\out\sps_device.hex.
Reading OTP memory contents. Needed to check addresses that have already been bu
rned.
Started burning memory with 14520 bytes of data at address 0x40000.
Failed writing bytes at address 20000000.
OTP Memory burning failed.
Note that I do only have the SWD interface connected to a JTAG programmer. I do NOT have a UART connection. But since the SmartSnippets GUI works I am thinking that the hardware connections are ok. I have also checked the supply voltage and the programming voltage, both look ok.
Am I missing some step?
Hi rkpu,
Please try to use the below snippet, use the -firmware parameter, this should work, also there is a commad that you can write the OTP header area using a .hex file -cmd write_header
C:\Program Files (x86)\SmartSnippets\bin>SmartSnippets.exe -type otp -chip da14580-01 -jtag 480064923 -firmware jtag_programmer.bin -cmd write_field -offset 0x7F54 -data 12345678
Also please have a look at the smart snippets help pdf for more info on the CLI commands (in smart snippets go to option -> help -> User guide .pdf) at the bottom of the document you will find the available commands and parameters of the CLI.
Thanks MT_dialog