How to get device ID and write program once field without programming application to the S12Z device in the CodeWarrior (Eclipse).
Even the datasheet does not present the device ID it can be read at address 0x1FC000. The device ID is size of 8 bytes from 1F_C000 to 1F_C007. The meaning of the field is confidential information. Of course, other "reserved" fields on higher addresses can also be read but their meaning is also confidential.
The ID is not presented in the documentation because it has reason for company only. However, some users require unique identification of the device. It is possible to use this number.
In order to read the ID, it is enough to create simple project in the CodeWarrior and connect to the device without programming it and run “mem” command in the debug shell window. If you do not want to remember address ranges, then it is better to prepare command file and execute it.
Of course, we can also simply use memory window.
It is a different story if we want also to see program once field. In this case we have to execute a set of commands to get it.
As an example of command file which can be executed to get device ID and program the program once field I present two command files. They can be executed in the debugger window – see and test attached project.
They are AAA_Read_Device_ID_And_OTPROM.cmd and AAA_ProgramOnceField.cmd.
The project which also presents reading and writing program once field is not relevant but should be created for the device we want to play with. It is not required to be code (simple code, enough to use what is generated by wizard) loaded into the MCU’s memory. However, necessary is the debugger is connected to a memory. Because of this it is enough to set:
…. And press debug
In the debug enable “Debugger Shell”:
Before continuing please modify flash clock setup in both files to value suitable for programming on the basis of the oscclk you use. In the files search for lines
Write into debugger shell command which runs the AAA_Read_Device_ID_And_OTPROM.cmd:
source "c:\D\CODING & SW\ECLIPSE\S12ZVMC-FLASH-WRITEONCEFIELD-CW106\AAA_Read_Device_ID_And_OTPROM.cmd"
(it is possible you have different path to the file…please change it)
The command will execute and shows:
Device ID
And Program field phrase 0. If you want to see another phrase you should modify AAA_Read_Device_ID_And_OTPROM.cmd line set PHRASE 1.
Change 1 to the phrase you want to see and run the command presented above “source …..” again. It is enough to press arrow up on the keyboard to see and use previous commands.
In order to program selected field use and run command “source” with the file:
AAA_ProgramOnceField.cmd
source "c:\D\CODING & SW\ECLIPSE\S12ZVMC-FLASH-WRITEONCEFIELD-CW106\AAA_ProgramOnceField.cmd"
The same note as previosly, the path you have could be different so adjust it.
The same line as in previous file should be changed to select the phrase you want to program.
As a result, you will see programming algorithm and also read back of the field, example of output:
%>source "c:\D\CODING &
SW\ECLIPSE\S12ZVMC-FLASH-WRITEONC
EFIELD-CW106\AAA_ProgramOnceField
.cmd"
############################
Programming Field =
2
############################
cmdwin::mem 0x0386 %x = 0x30
cmdwin::wait 1000
cmdwin::mem 0x0382 %x = 0x05
cmdwin::mem 0x038C %x = 0x07
cmdwin::mem 0x038D %x = 0x00
cmdwin::mem 0x038E %x = 0x00
cmdwin::mem 0x038F %x = 2
cmdwin::mem 0x0390 %x = 0xA2
cmdwin::mem 0x0391 %x = 0xB2
cmdwin::mem 0x0392 %x = 0xC2
cmdwin::mem 0x0393 %x = 0xD2
cmdwin::mem 0x0394 %x = 0xE2
cmdwin::mem 0x0395 %x = 0xF2
cmdwin::mem 0x0396 %x = 0xA3
cmdwin::mem 0x0397 %x = 0xB3
cmdwin::mem 0x0386 %x = 0x80
cmdwin::wait 1000
############################
Read back Programmed Field =
2
############################
cmdwin::mem 0x0386 %x = 0x30
cmdwin::wait 1000
cmdwin::mem 0x0382 %x = 0x01
cmdwin::mem 0x038C %x = 0x04
cmdwin::mem 0x038D %x = 0x00
cmdwin::mem 0x038E %x = 0x00
cmdwin::mem 0x038F %x = 2
cmdwin::mem 0x0386 %x = 0x80
cmdwin::wait 1000
cmdwin::mem 0x0390 8
390 $a2 $b2 $c2 $d2 $e2 $f2
$a3 $b3 . . . . . . . .
Now the question, where to find commands to be able to prepare such a command files, can be asked.
1) The first information source is the CodeWarrior help. For example, search for keyword DW and it could find a command list.
Finally, in the attached project can be seen also approach how to write program once field by SW. Of course, mentioned cmd files are also part of the project.
Hi,
it looks like database access bug.
I have asked IT department to fix it.
I believe it will be fixed soon. (Guys are in Mexico so probably tomorrow)
Best regards,
Ladislav