background image

ZWP500

 

Z-Wave Production Programmer & Tester  

www.ExpressControls.com 

 

 

February 2018

 

Bringing 

the Internet of Things (IoT) to Life

 

18 

of the programming cable are dedicated to the SPI bus used for programming the DUT and accessing the external NVM. 
Pins 2, 5, 11 and 12 however are generally available for use and can be used to sense or drive test points on the DUT. If 
more than 4 pins are needed, an I2C bus GPIO expander can be placed on the DUT test board. Digital to analog 
converters, ADCs, temperature sensors and any I2C device can be placed on the DUT test board and pins 2 and 5 can be 
used to communicate with those devices. See the I2CSend and I2CGet commands for more details. Be aware that the 
DUT has to be powered for the GPIO pins to be driven to the proper voltage. The programming cable pins are powered 
with the VIO power supply. Use the GPIOGet command to verify the pin is set to the desired level. 
 
Example: Set pin 2 to tristate 
GPIOSet 2Z<cr> 
Returns: 
*<cr> 
?<cr>   is returned if an invalid pin number or value is sent 

Help 

The Help command returns a brief description of the most commonly used commands. The firmware version is returned 
as part of the data. A ? will also return the list of commands. 

I2CGet AA LL 

Send an I2C read command to I2C slave address AA (bits [7:1]) and read LL bytes of data. LL must be greater than 0. If 
the command completes properly, the data is returned as !<cr>I2CGet= 01 02 03 …<cr>. If the address or length fields 
are not hexadecimal then a ? is returned. If the slave NAKs the 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 of the Z-Wave programming cable for I2C and then tests all 127 I2C addresses [1-127] and 
returns the address of any I2C devices that acknowledge the address byte. This command is used to find the I2C 
addresses of devices on the DUT test board. The address returned are bits [7:1] of the I2C address byte. If no I2C 
devices acknowledge, then a NAK (!) is returned. If one of the I2C pins is stuck either high or low a NAK is returned along 
with a message indicating which pin is stuck. 
 
Example: 
I2CProbe<cr> 
Returns: 
*<cr> 
ACK@ 21 22<cr> 

If there is an I2C device at 0x21 (0100_001Rb) and 0x22 (0100_010Rb). 

Address 0x21 maps to a slave address write byte of 0x42. The address is in bits [7:1] and bit 0 is the READ/WRITE bit. 
 

I2CSend 

AA DD…[p] 

Send an I2C write command to I2C slave address AA (bits [7:1]) with the data DD and optionally NOT send an I2C STOP 
if the character ‘p’ is at the end of the command. All values are in hexadecimal. The data is optional and may contain up to 
32 bytes of data. If the I2C bus is in the idle state, then the command is initiated with an I2C START. If the previous 
command was not completed with an I2C STOP, then an I2C ReSTART initiates this co

mmand. The character ‘p’ at the 

end of the command allows commands to be linked together. Typically this is used to set the address pointer within the 

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: