ZWP500
™
Z-Wave Production Programmer & Tester
www.ExpressControls.com
February 2018
Bringing
the Internet of Things (IoT) to Life
15
After a command is sent, the program
must wait
for the acknowledge and any expected return data. The PSoC may drop
commands if multiple commands are sent without waiting for the acknowledge.
AcquireDUT
The AcquireDUT command attempts to put the DUT into Z-Wave programming mode. If successful, the last four bytes of
signature of the chip is returned. The DUT must already be powered (VIOSet). The VIO will be measured and will return
an error if the voltage is below 2.0V.
Example: AcquireDUT
Returns:
*<cr>Signature= 7F1F0401<cr>
if successful and the target device is a 500 series
!<cr>FAIL - VIO below 2.0V<cr>
or other message indicating the failure. A signature of all FFs is a failure.
Calibrate
An RF calibration cycle is run on the DUT. This operation takes about 2 seconds to complete as the calibration program
has to be downloaded and then executed. The calibration values are NOT written to the NVR. The assumption is that a
programming cycle will immediately follow the calibration cycle and the new calibration values will be written to the NVR at
that time. The NVR is ERASED during the calibration process. It is REQUIRED to read the NVR prior to running a
calibration and to restore the NVR afterward. Do NOT run a calibration alone. The ZWP500 has a high precision crystal
and is able to accurately measure and set the CCAL value.
Example: Calibrate
Returns:
…..*<cr>CCAL=xx TXCAL1=yy TXCAL2=zz<cr>
Where xx, yy and zz are the hexadecimal values for the respective calibration values. The periods (.) indicate the
calibration program is being downloaded. The acknowledge (*) takes about 2 seconds before it is returned. An ! is
returned if there is a failure.
FirmwareUpdate
Download and update the PSoC firmware with the Intel hex file that is sent immediately after the command. Care must be
taken with this command as it is possible to “brick” the PSoC if there is a power failure during the process or if the data is
corrupted. When the PSoC is ready for each line of the hex file it will
send an ACK (the character ‘$’). If the line of code
fails the checksum, then a NAK (‘~’) is sent and the line must be resent. The program sending the firmware MUST wait for
the ACK before sending the next line as the PSoC only has temporary storage for 1 line at a time. Every few lines there
will be a pause while the PSoC writes the data into FLASH. Note that the data is written directly into FLASH so if a failure
occurs it is likely unrecoverable and the unit will have to be reprogrammed at the factory.
Example:
FirmwareUpdate<cr>
<wait for the $ to arrive>
:400000000080002011000000A5490000A549000080B500AF024A034B1B68136004F0F6FCBC760040FA46004010B50
54C237833B9044B13B10448AFF300800123237010BD45
<wait for the $ to arrive then send each line of the intel hex file>
Repeat the two lines above for each line of the hex file. If a NAK is received, resend the line.
…
:00000001FF
The last line of the hex file is shown above and indicates that the download is complete.
*<cr>
Is the final indicator that the firmware download is complete and the PSoC will complete writing the data to FLASH and
then reboot. The normal boot messages will then be sent if the firmware is good.