background image

ZWP500

 

Z-Wave Production Programmer & Tester  

www.ExpressControls.com 

 

 

February 2018

 

Bringing 

the Internet of Things (IoT) to Life

 

21 

NVRSet 12=04<cr> 

 

Set PINS to P04 

NVRSet 18=02<cr> 

 

Set NVMT to 0x02 which is the serial FLASH value 

NVRSet 19=01<cr> 

 

Set NVMS=0x0100 for a 2Mb serial flash 

NVRSet 1A=00<cr> 
Returns: 
*<cr> 

 

 

 

For each command that was executed 

?<cr>   

 

 

If the command was not properly formatted 

ResetDUT [0] 

Pulse the RESET_N signal to the DUT to exit programming mode and leave the RESET_N signal at the desired state. If 
the optional parameter 0 is appended to the end of the command then the RESET_N signal is left at 0 (reset asserted), 
otherwise RESET_N is asserted high and then tristated. RESET_N is driven low, then high, then low then optionally 
driven high and then tristated to ensure programming mode has been exited. If reset is stuck either high or low an ! is 
returned with a message indicating the stuck condition. 
 
Example: 
ResetDUT0 

 

Pulse reset low, then high then low again and leave the chip in reset with RESET_N driven low 

Returns: 
*<cr> 

 

 

 

If reset has tracks the desired levels 

!RST_N Stuck HIGH<cr> 

if reset is stuck high (or low) 

RFAttenuatorSet DD 

Set the RF attenuation to the hexadecimal value DD in the range from 0x00 (minimum) to 0x7F (maximum attenuation). 
The ZWP500 contains a pair of Digital Step Attenuators (DSA) on the RF path from the Z-Wave chip to the antenna SMA 
connector. The RF signal can be to be attenuated by up to 60db. Attenuating the RF signal enables the RF signal quality 
to be measured without needing to physically move the DUT a long distance from the ZWP500.  
 
Example: 
RFAttenuatorSet 3F 

Set the RF attenuation to be approximately 30db 

Returns: 
*<cr> 

 

if the command executed properly 

?<cr>   

If the values DD is invalid or not a hexadecimal number 

UARTGet 

Return any characters received from the DUT UART pins. The Z-Wave programming cable contains two pins which are 
typically connected to the UART of the DUT Z-Wave chip. The UART pins can be used to send debug or telemetry data to 
aid in production testing. The pins are optional and can be used as generic GPIOs instead. The UART buffer is 64 bytes 
so messages must fit within the buffer between UARTGet commands. Typically the command is a short response to a 
UARTSend command. The baud rate is 115200, 8 data bits, 1 stop bit, no parity. 
 
Example: 
UARTGet<cr> 
Returns: 
*<cr>  56 33 2E 30 31<cr> 

 

The DUT UART send the ASCII characters “V3.01” 

UARTInit BB 

Initialize the DUT UART interface to BB baud rate. Valid values are 09(9.6K), 14(14.4K), 19(19.2K), 38(38.4K), 57(57.6K), 
11(115.2K). A value of 0 disables the UART and returns the UART pins to general purpose IOs. The UART always 
operates with 8 data bits and 1 stop bit.  
 
Example: 
UARTInit 11<cr> 

Sets the UART to 115.2K baud, 8 data bits, 1 stop bit. 

Summary of Contents for ZWP500

Page 1: ...other custom fields Set the LOCK bits to prevent unauthorized access to the firmware Have your team develop the test code or let the experts at Express Controls do it for you Features Sigma Designs 500 Series FLASH Programmer Standard Sigma 12 pin programming header o SPI interface for programming o UART interface for debug NVR and external NVM programming test 1ppm Crystal RF Calibration SmartSta...

Page 2: ... 10 Serial Port 10 USB Ports 10 HDMI Port 10 Ethernet Port 10 WiFi Access 10 Desktop Sharing with VNC 10 Source Code Control of Scripts 10 Sigma 500 Series RF Calibration 11 Tx Calibration 11 Crystal Calibration 11 Programming 11 Non Volatile Register NVR Fields 11 Override Value 12 Incrementing Value 12 Check Value 12 Random Value 12 Scanner Value 12 Sigma Security S2 DSK 12 Lock Bits 13 Example ...

Page 3: ... Calibrate 15 FirmwareUpdate 15 FlashDownload 16 FlashErase 16 FlashWrite 16 FlashRead 0xxxxx 0yyyyy 17 FlashVerify 17 FlashCRC 17 GPIOGet 17 GPIOSet PS 17 Help 18 I2CGet AA LL 18 I2CProbe 18 I2CSend AA DD p 18 LEDSet RGB 19 NVMGet SSSSSS EEEEEE 19 NVMSet AAAAAA DD 19 NVRGet 20 NVRSet AA DD 20 ResetDUT 0 21 RFAttenuatorSet DD 21 UARTGet 21 UARTInit BB 21 UARTSend DD 22 VIOSet 22 VIOGet 22 ZWaveGet...

Page 4: ...ZWP500 Z Wave Production Programmer Tester www ExpressControls com February 2018 Bringing the Internet of Things IoT to Life 4 References 24 Warrantee Copyright 24 Document History 25 ...

Page 5: ...r you or your team can develop it using the sample code provided with the ZWP500 as a guide The ZWP500 is can be used for software validation to verify there are no bugs in each release of firmware The full power of high level programming languages like Python or C can be used to test every button press and Z Wave command class with each firmware revision Push buttons can be activated with millise...

Page 6: ...hical user interface Thus a keyboard mouse and monitor are needed The RPi3 has an HDMI connector which is typically connected to an inexpensive HDMI capable monitor with at least 1280x800 resolution 1910x1080p resolution is recommended Any generic keyboard and mouse will typically work They can be either wired for maximum reliability or wireless for maximum flexibility A custom designed test jig i...

Page 7: ...h to ensure reliable signal quality Z Wave Programming Cable Z Wave Programming Cable TOP view VIO 1 2 I2C_SCL NVM_CS_N 3 4 MOSI I2C_SDA 5 6 MISO GND 7 8 SCK GND 9 10 RESET_N RXD 11 12 TXD Pin Signal Name Description 1 VIO Power for the DUT programmable voltage from 2 0 to 4 5V at up to 300mA 2 I2C_SCL Optional I2C SCL signal for controlling GPIO expanders ADC DACs on DUT test board 3 NVM_CS_N Opt...

Page 8: ...so be used as an example of how to program and test a Z Wave 500 series product using the ZWP500 The SensorPIR project from the Sigma SDK is pre loaded on the ZWP500 and an icon to program and test it is on the Desktop Double click on the SensorPIR icon and a terminal window comes up Press enter to get a list of commands available by the programming and test program The program is written in Pytho...

Page 9: ...read See the PCAL9535A data sheet for more details Command Byte definition 0x00 read port 0 0x01 read port 1 0x02 set the output value for port 0 0x03 set the output value for port 1 0x06 set the configuration for port 0 a 1 sets the pin to an input 0 is an output 0x07 set the configuration for port 1 a 1 sets the pin to an input 0 is an output Raspberry Pi The brains of the ZWP500 are provided us...

Page 10: ...and memory sticks The bar code scanner and the label printer can be connected directly to these USB ports HDMI Port An HDMI port on the ZWP500 should be connected to a monitor to enable the user to interface with the software on the ZWP500 The recommended resolution is 1280x1024 which is the default setting The RPi supports many other resolutions and most monitors will work See the Raspberrypi org...

Page 11: ...ate 1MHz 256 clock onto the MISO pin The calibration process takes 1 2 seconds plus the time to program the DUT with the calibration program Total time is about 3 seconds Note that if performing crystal calibration it is strongly recommended that the ZWP500 operate in a temperature and humidity controlled environment with an ambient temperature of approximately 72F Tx Calibration There are two TX ...

Page 12: ...the next value If the NVR already has a value for this field other than 0xFF the value is not altered The ini file is updated with the final valued used when the program is exited This is most commonly used for UUID to program a serial number for the unit The value to be incremented is a 32 bit integer Check Value If a question mark is appended to the value then the NVR value is checked that it is...

Page 13: ...age for the Z Wave network routing tables The ZWP500 is able to inspect erase and set values in the NVM using the NVMSet Get commands VIO Voltage Current The DUT is typically powered from the VIO pin of the ZWP500 cable The voltage of VIO is programmable from 2 0V to 4 5V using the VIOSet command The VIOGet command returns the instantaneous voltage at the VIO pin of the cable The current is also m...

Page 14: ...orPIR example also logs a number of metrics into a comma separated value csv file Each DUT tested is recorded in the file for later analysis and identification of areas of yield improvement ZWP500 Interface The RPi communicates to the ZWP500 PSoC5 board via a UART which runs at 921600 baud The following sections detail the commands that can be sent to the PSoC5 and their responses It is recommende...

Page 15: ...e 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 a...

Page 16: ...ne of HEX file 10 Wait up to 10s final check sum calculation 11 cr ACK download is complete and CRC is good cr indicates a failure 12 Typically send a FlashCRC at this point to read the calculated CRC value of the HEX file FlashErase Erase the DUT FLASH The NVR settings are retained but the rest of the DUT FLASH is reset to all ones This command is not normally needed as the FLASH is automatically...

Page 17: ...RC Returns the four byte CRC in the downloaded hex file the computed CRC and the DUT CRC if the DUT is acquired Typically this command is used to ensure the proper hex file is downloaded into the ZWP500 Example FlashCRC cr Returns cr FlashCRC xxxxxxxx CalcCRC yyyyyyyy DUTCRC zzzzzzzz cr Where xxxxxxxx is the CRC in the downloaded hex file if one has been downloaded yyyyyyyy is the calculated CRC b...

Page 18: ...e address byte then a is returned An I2C STOP condition is always performed at the end of the command Example I2CGet 21 03 Returns cr I2CGet 01 02 03 This example sends an I2C read command to slave address 0x21 the first byte of the command is 0x43 If the slave ACKs the write then the three data bytes are read from the device and returned All values are hexadecimal I2CProbe Configures pins 2 and 5...

Page 19: ...DSet 100 Turns on only the RED LED Returns cr NVMGet SSSSSS EEEEEE Most Z Wave devices utilize an external Non Volatile Memory to store the Z Wave routing tables application specific variables and an Over The Air firmware image The NVM is most often an Adesto AT25PExx which is fully supported by the ZWP500 The NVM chip select signal must be connected to the Z Wave programming cable pin 3 to enable...

Page 20: ...AcquireDUT before sending the NVRGet Example NVRGet cr Returns cr 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 10 01 09 01 FF 0D E8 8C 1B 00 FF FF FF FF FF FF FF 20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 60 FF FF FF FF FF FF FF FF F...

Page 21: ...contains a pair of Digital Step Attenuators DSA on the RF path from the Z Wave chip to the antenna SMA connector The RF signal can be to be attenuated by up to 60db Attenuating the RF signal enables the RF signal quality to be measured without needing to physically move the DUT a long distance from the ZWP500 Example RFAttenuatorSet 3F Set the RF attenuation to be approximately 30db Returns cr if ...

Page 22: ...tion is to immediately follow a ZWaveSend with at least one ZWaveGet and typically several An unsolicited frame may also arrive which may also have multiple retries in it which is why the receive buffer is purged when a ZWaveSend command is sent During production testing the optional parameter TT is typically set to 01 or even 00 to shorten the timeout because there should be no routing or other d...

Page 23: ...nds are listed in the table below Complete details are found in the Sigma documentation for the SerialAPI and the command class documents Name Hex Description FUNC_ID_SENDDATA 0x13 Send a command over the Z Wave radio FUNC_ID_SETDEFAULT 0x42 Reset to factory new FUNC_ID_ADD_NODE_TO_NETWORK 0x4A Enter Inclusion mode FUNC_ID_REMOVE_NODE_FROM_NETWORK 0x4B Enter Exclusion mode FUNC_ID_SET_LEARN_MODE 0...

Page 24: ... repair opened or otherwise modified c units not used in accordance with instructions d damages exceeding the cost of the product e the finish on any portion of the product such as surface and or weathering as this is considered normal wear and tear f transit damage initial installation costs removal costs or reinstallation costs EXPRESS CONTROLS LLC WILL NOT BE LIABLE FOR INCIDENTAL OR CONSEQUENT...

Page 25: ...500 Z Wave Production Programmer Tester www ExpressControls com February 2018 Bringing the Internet of Things IoT to Life 25 Document History Revision Date Description 1 1 00 2 18 2018 Initial Beta Version ...

Reviews: