DLP-RF1 & DLP-RF1-Z USB / RF OEM Transceiver Module The DLP-RF1-Z combines a USB interface, Freescale™ MC13193 2.4GHz Direct-Sequence Spread Spectrum RF Transceiver IC and Freescale MC9S08GT60 microcontroller to form an IEEE 802.15.4 compliant, ZigBee™ ready, short-range transceiver module. The MC9S08GT60 microcontroller is preprogrammed with DLP Design’s Serial Interface Packet Processor (SIPP™ firmware) for accessing the transceiver functions via simple serial calls. The application programming required for accessing the module via USB is functionally identical to that used to access the RS232C ports on a standard Windows/Linux/Mac PC via the use of royalty-free Virtual COM Port (VCP) drivers. (No USB driver development is required for most applications.) The SIPP firmware in the DLP-RF1 resides at the application layer and is based on Freescale’s SMAC. The SIPP firmware provides basic access to DLP-RF1 functionality: packet receive and transmit, transceiver settings, EEPROM access, etc. The MC9S08GT60 can be reprogrammed (if desired) with user-supplied firmware via a 6-pin BDM header that is compatible with the P&E USB-ML-12 and other device programmers (purchased separately). Application Areas: • Remote control and wire replacement in industrial systems • Wireless sensor networks • Home automation and control • Remote entertainment control • Factory automation • Heating and cooling systems • Inventory management and RFID tagging • Human interface devices • Wireless toys Features: • All operational power taken from the host PC • Microcontroller pre-programmed with SIPP firmware • Carrier-sense, multiple-access technology • USB interface programming as easy as RS232C Rev 1.5 (November 2005) • Range: >500 feet (outdoor line of sight) • Default reset via shorting two jumpers at power-up • Royalty-free USB drivers • Agency approvals for immediate deployment in the US, Canada, & Europe • Modular approval – no additional agency testing required under certain conditions 1 DLP-RF1/Z DLP Design, Inc. 1.0 System Overview Using the pre-programmed SIPP firmware, the DLP-RF1 can be used in conjunction with other DLP-RF1 and/or DLP-RF2 modules to form simple point-to-point and star configuration systems. Both the DLP-RF1 and the DLP-RF2 can serve as host/system controllers. In the case of the DLP-RF1, the host is a user-supplied Windows, Linux, or Mac PC that is accessed via a USB interface and user-supplied, 6-foot USB cable. In the case of the DLP-RF2, the host is a user-supplied microcontroller/ DSP/FPGA/etc. that is accessed via a 2-wire serial interface–TX, RX, and ground. A host processor is not necessarily required by the DLP-RF2. The SIPP firmware within the DLP-RF2 can be used to both gain access to the MC9S08GT60’s port pins for basic digital I/O as well as offer a few hardware-specific functions. The DLP-RF1 can be used in conjunction with other DLP-RF1/DLP-RF2 transceivers as well as other MC13193-based transceivers to form complex point-to-point and star networks. In a system using the preprogrammed SIPP firmware, each transceiver has a unique 16-bit ID yielding a theoretical maximum of 65,535 transceivers. Every data packet handled by the SIPP firmware must contain, at minimum, the number of bytes in the packet, the destination transceiver ID (packet destination), the source transceiver ID (packet origin), and a command byte. As shipped from DLP Design, the DLP-RF1 has an ID of 1. If more than one DLP-RF1 is to be used in a system, then this ID must be changed to a value higher than 2 (the DLP-RF2 has a default ID value of 2). Upon reset or power up, the ID is read from non-volatile (EEPROM) memory. If JP1 is shorted at power up (or before a reset), the default ID for the DLP-RF1 is set to 1, and other transceiver settings are also returned to a default state in the EEPROM. (Refer to Section 2.2 for additional details.) 2.0 Preprogrammed Serial Interface Packet Processor (SIPP) Firmware The source code for Freescale’s SMAC is available as a free download from www.freescale.com. The SIPP firmware is based on the SMAC. A test program (DLP-RFTestAp.exe) is available as a free download from www.dlpdesign.com that makes easy work of setting up the DLP-RF1 transceiver and testing its basic functionality. Use of the DLP-RFTestAp.exe requires a USB interface between a host Windows PC and the DLP-RF1 as well as a user-supplied 6-foot USB cable. **Under this communication protocol, it is the responsibility of the host application to “Retry” transmissions that do not produce the anticipated reply.** Rev 1.5 (November 2005) 2 DLP-RF1/Z DLP Design, Inc. 2.1 Packet Structure Each SIPP firmware packet is comprised of 6 or more bytes. The following table outlines the packet structure: PACKET STRUCTURE Byte 0 Description Number of bytes in the packet following byte 0: 5-124 1 Destination ID MSByte ID Range: 1-65535* 2 3 4 5 6 Destination ID LSByte Source ID MSByte Range: 1-65535 Source ID LSByte Command Byte Command Range: 0xA0-0xDF Data Byte(s) Comments Each packet must contain (as a minimum) the number of bytes, a destination ID, Source ID and a command byte ID:1 default for new DLP-RF1 transceivers ID:2 default for new DLP-RF2 transceivers ID:0 reserved for broadcast to all transceivers Both Command Packets and Reply Packets. Every packet must have a command byte. 0-119 bytes of data are allowed in the packet *Note: Each transceiver in the system must have a unique ID. ID:0 is reserved for broadcast packets sent by DLP-RF2 transceivers coming out of Sleep Mode. 2.2 Reserved EEPROM Locations The EEPROM memory is a feature of the preprogrammed SIPP firmware and, as such, is only available when using the DLP-RF1 with its firmware as shipped from DLP Design. The EEPROM memory used by the SIPP firmware consists of a block of 32 bytes that reside within the Flash program memory of the MC9S08GT60. The first 10 bytes (0-9) and the last byte (31) are reserved for storing transceiver settings and checksum. Bytes 10 through 30 (user area) are available for use by the user’s host software. Whenever the data in any EEPROM location is changed, the checksum location (EEPROM Location 31) is automatically updated. At power up or reset, if ever the calculated checksum for the first 31 bytes does not match the value at EEPROM Location 31, the Default Reset values for the transceiver settings are restored, and the checksum is recalculated and rewritten. The values in the user area are preserved. Additionally, if JP1 is shorted at power up (or reset), the default values for the transceiver settings are restored, and the checksum is recalculated and rewritten. Again, values in the user area are preserved. The following table outlines usage of the reserved EEPROM locations. These values are read at power up, reset, or via SIPP firmware: Rev 1.5 (November 2005) 3 DLP-RF1/Z DLP Design, Inc. EEPROM CONTENTS Byte 0 1 2 3 4 5 6 7 8 Description My ID MSB My ID LSB Options Range: 1-65,535 Transceiver Channel RF Transmit Power 0-15 (2.405GHz to 2.480GHz) Sleep Time Length MSB (DLP-RF2 Low-Power Mode Only) Range: 1-65,535: 5-second increments, 3.8 days max. Sleep Time Length LSB Wake from Sleep, Host Command Timeout after Check-in (DLP-RF2 in Low-Power Mode Only) Baud rate for RF1-Z and RF2 Host Controller Port Pin Bit Field (DLP-RF2 Only) DLP-RF2 Available Features (DLP-RF2 Only) 9 31 Checksum 0-15 (-16.6 to +3.5dBm into the balun) Default Reset 1 for RF1; 2 for RF2 0 reserved for broadcast commands 7 (2.440 GHz) 15 (+3.5dBm - Max Power) 5 seconds For Example: 1=5 seconds, 12=1 minute, 120=10 minutes, 720=1 hour, 17,280=1day 1-128 half-seconds 2 (4 half-second intervals) 0-2400; 1-4800; 2-9600; 3-14400; 4-19200; 5-38400; 6-128000; 7-250000 0x00-0xFF (A6B6B5B4 B3B2B1B0) 2 (9600 baud) Bit 7 – Measures battery voltage Bit 6 – Temperature sensor Bit 5 – Relays Bit 4 – Reserved Bit 3 – Reserved Bit 2 – Reserved Bit 1 – Reserved Bit 0 – Reserved EX-OR of bytes 0-30 All bits cleared; no features available 0x80; A6 monitored Calculated 2.3 Command Set This Command Set is a feature of the preprogrammed SIPP firmware and, as such, is only available if using the DLP-RF1 with its firmware as shipped from DLP Design. Packets are broken down into two primary types: Command Packets and Reply Packets. The host controller/PC originates all Command Packets. In the case of the DLP-RF1, the host is the user-supplied host PC and associated application program. If a Command Packet is received by the DLP-RF1 via USB with a destination ID that matches the ID stored in the EEPROM of the DLP-RF1, then the MC9S08GT60 will process the packet and reply to the host PC. If the ID in the packet does not match the ID stored in EEPROM, then the packet is intended for a different destination and is transmitted via the transceiver. Rev 1.5 (November 2005) 4 DLP-RF1/Z DLP Design, Inc. If a packet is received via the RF transceiver with the correct ID, then the packet is either processed by the MC9S08GT60 or forwarded on to the host. Commands between 0xA0 and 0xBF are Command Packets that are to be processed by the MC9S08GT60, while commands between 0xC0 and 0xDF are Reply Packets and are forwarded on to the host. If a packet arrives via the RF transceiver with an ID of 0 (zero), then the packet is a “broadcast” packet intended for the system controller (the RF1/RF2 unit that is designated as system controller). ID:0 packets are always immediately forwarded on to the host. If a packet arrives via the RF transceiver with a non-zero ID that does not match the EEPROM, then the packet is ignored. The only exception to this is if “Return All Packets” Mode is enabled, in which case the DLP-RF1 is monitoring packet traffic, and all unsolicited packets are returned to the serial host. **Under this communication protocol, it is the responsibility of the host application to “Retry” transmissions that do not produce the anticipated reply.** Cmd 0xA0 0xA1 Packet Recipient MC9S08GT60 MC9S08GT60 0xA2 MC9S08GT60 0xA3 0xA4 MC9S08GT60 MC9S08GT60 0xA5 0xA6 MC9S08GT60 MC9S08GT60 0xA7 MC9S08GT60 0xA8 MC9S08GT60 0xA9 MC9S08GT60 0xAA MC9S08GT60 0xAB MC9S08GT60 0xAC MC9S08GT60 0xAD MC9S08GT60 0xAE MC9S08GT60 0xAF 0xB6 MC9S08GT60 MC9S08GT60 0xB7 MC9S08GT60 Rev 1.5 (November 2005) Description Ping (no data) Set Transmit Power Level 1 Data Byte; Range: 0-15 Set Transceiver Channel 1 Data Byte; Range: 0-15 Set RF2 Baud Rate (RF2 Only) Release immediately to Sleep (DLP-RF2 only) (no data) Measure energy on all channels (no data) Return all packets received to host (Packet Watch Mode—no data) Return only packets with correct ID to host (Default mode) (no data) Read EEPROM 1 Data Byte; Address: 0-31 Write EEPROM and update checksum 2 Data Bytes; Address: 0-30; Data: 0-255 Read I/O pin, 1 Data Byte: Port: 0-7 (RF2 Only) Set I/O pin direction, 2 Data Bytes: Port: 07, Direction: 1=Out, 0=In (RF2 only) Set/Clear I/O pin, 2 Data Bytes: Port: 0-7, State: 0/1 (RF2 Only) Setup A/D, 2 Data Bytes: Port: 0-6, Mode: 0=Off, 1=On (RF2 Only) Read A/D, 1 Data Byte: Channel: 0-6 (RF2 Only) Read VBAT (no data) (RF2 Only) Request Board Type (DLP-RF1, RF2), ROM and RFIC versions (no data) Return Board ID (not available through RF transceiver, physical connection only) (destination ID ignored) (no data) 5 Expected Reply Cmd 0xC0 0xC0 0xC0 0xC0 0xC0 0xC3 0xC0 0xC0 0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB 0xCD 0xCF DLP-RF1/Z DLP Design, Inc. 0xB8 MC9S08GT60 0xB9 MC9S08GT60 0xC0 Serial / USB 0xC1 Serial / USB 0xC2 Serial / USB 0xC3 Serial / USB 0xC4 Serial / USB 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA Serial / USB Serial / USB Serial / USB Serial / USB Serial / USB Serial / USB 0xCB Serial / USB 0xCC Serial / USB 0xCD Serial / USB 0xCF Serial / USB 0xD0 0xD1 Serial / USB Serial / USB Pulse high/low with delay while high (For DLP-RF2RELAY Only; additional hardware required) 2 Data Bytes: Relay Number: 1/2, State: 0/1 (RST/SET) (RF2 Only) Read Temperature and Humidity (DLP-RF2 only; additional hardware required) (no data) Refer to RFTestAp source code for data processing details (RF2 Only) Generic Reply or “ACK” for selected non-broadcast commands Check-in from DLP-RF2 due to monitored port pin input change. 2 Data Bytes: Current I/O pin state (A6, B6:0), Bit-field with bits set for the port pins that changed state (A6, B6:0) Check-in from DLP-RF2 due to wake from sleep (no data) Measured energy data, 16 Data Bytes: Channel 0 – channel 15 energy levels, Refer to RFTestAp source code for data processing details EEPROM read reply, 1 Data Byte: EEPROM Read data Write EEPROM reply (no data) Read I/O pin reply, 1 Data Byte: pin state Set direction reply (no data) Set/Clear I/O pin reply (no data) Setup A/D reply (no data) Read A/D reply, 2 Data Bytes: ATD1RH, ATD1RL, voltage result = ((ATD1RH << 8) | ATD1RL) * Vref / 1024 Read VBAT reply, 2 Data Bytes: ATD1RH, ATD1RL, Refer to RFTestAp source code for data processing details Read Temperature & Humidity reply, Refer to RFTestAp source code for data processing details Return board type--uC ROM and RF IC versions, 3 Data Bytes: Module Mode: 100:RF1, 101:RF2, ROM Version: divide by 10 for version, RF IC Version byte Return ID, 2 Data Bytes: Board ID MSByte, LSByte Generic packet send Generic packet reply 0xC0 0xCC Example: Below is a simple C program illustrating the Ping (0xA0) Command. This assumes the presence of a transceiver with an ID of 1 issuing the Ping command and a second transceiver with an ID of 0x13 (19 decimal) to receive and respond to the Ping command: Rev 1.5 (November 2005) 6 DLP-RF1/Z DLP Design, Inc. int m_DestID = 0x13; int m_SourceID = 0x01; unsigned char rx[126], tx[126]; int pos=1;//init packet index tx[pos++] = (unsigned char)((m_DestID&0xff00)>>8); //Destination ID MSB tx[pos++] = (unsigned char)(m_DestID&0x00ff); //Destination ID LSB tx[pos++] = (unsigned char)((m_SourceID&0xff00)>>8); //Source ID MSB tx[pos++] = (unsigned char)(m_SourceID&0x00ff); //Source ID LSB tx[pos++] = 0xA0;//Command byte: Ping tx[0] = pos-1;//assign number of bytes in packet to position zero PutBuffer(tx, pos);//send tx out serial port (actually USB) GetBuffer(rx, 6, TIMEOUTWAIT); //wait up to timeout for 6 bytes to return if(rx[5] != 0xC0)//if Buffer Position 5 is not the expected reply (0XC0) { //No reply to the Ping command //either retry the command or process the error } 2.4 Antenna Switch Control The antenna switch used on the DLP-RF1 is of single-pole, double-throw configuration and is controlled by microcontroller port pins. When Port Pin PTA7 is low, the switch is in Transmit Mode and the RF is passed from the MC13193 PA output to the antenna. When Port Pin PTA7 is high, the switch is in Receive Mode and the antenna is connected to the receiver input. If using the SIPP firmware as shipped from DLP Design, the DLP-RF1 will set the correct mode automatically. This information is only made available in the event that the user wishes to reprogram the microcontroller with custom firmware. Port Pin PTA7 0 1 TX Mode RX Mode 3.0 USB Interface The VCP (Virtual COM Port) USB drivers can be downloaded from the bottom of the page at www.dlpdesign.com. [Windows XP (SP1 or later) and Linux (Kernel 2.4.0 or later) users do not need to download drivers as they are already part of the operating system.] Unzip the drivers into a folder on the PC’s hard drive. The USB driver installation process is initiated by connecting a DLP-RF1 to the host PC. When prompted, point the driver installer to the folder in which the VCP drivers reside. The DLP-RF1 uses a USB interface design similar to that used by the DLP-USB245M USB adapter module in that the connection between the USB IC and MC9S08GT60 consists of 8 data lines and 5 hand-shaking lines. The DLP-RF1 uses a USB interface design similar to that used by the DLPUSB232M USB adapter module in that the connection between the USB IC and MC9S08GT60 consists of the TX, RX, CTS and RTS lines. Once the VCP drivers are installed, the DLP-RF1 appears to the host PC as a COM (RS232C) port. Look in Device Manager to determine the COM port number that is assigned to the DLP-RF1 module. The application program running on the host PC simply has to open what appears to be an RS232C port then build and send a packet to gain access to/control of the DLPRF1. The VCP drivers intercept the data packets on their way to the RS232C COM port and reroute Rev 1.5 (November 2005) 7 DLP-RF1/Z DLP Design, Inc. them to the USB port. All packets returned from the DLP-RF1 simply appear in the receive buffer that was created when the COM port was opened. The host application must set the baud rate to 9600 baud if using the DLP-RF1-Z. This baud rate can be changed by the host application once connection has been made to the RF1-Z. There is no need for the host application to set the baud rate of the opened COM port to the DLP-RF1. Since the host application is responsible for “retrying” any command packet that goes unanswered, the host application must wait an appropriate amount of time for all responses. The amount of time to wait for a reply is dependant upon several factors so it is best for the user to derive empirically (trial and error) the appropriate amount of time to wait. Rev 1.5 (November 2005) 8 DLP-RF1/Z DLP Design, Inc. 4.0 Regulatory Agency Considerations 4.1 Agency Identification Numbers Compliance with the appropriate regulatory agencies is essential in the deployment of all transceiver devices. DLP Design has obtained modular approval for this RF product such that an OEM need only meet a few basic requirements in order to utilize their end product under this approval. Corresponding agency identification numbers are listed here: Part Number DLP RF1 US/FCC SX9000RF1 CAN/IC 5675A-000RF1 4.2 Integral Antenna The DLP-RF1 is approved for use with the integral antenna only. Modifying the DLP-RF1’s PCB antenna or modifying the PCB to use an external antenna will void all agency compliance. 4.3 FCC/IC Requirements for Modular Approval Any changes or modifications to the DLP-RF2’s printed circuit board could void the user’s authority to operate the equipment. 4.3.1 Warnings Operation is subject to the following two conditions: (1) This device may not cause harmful interference, and (2) this device must accept any interference received, including interference that may cause undesirable operation. This device is intended for use under the following conditions: 1. The transmitter module may not be co-located with any other transmitter or antenna. 2. The module is approved using the FCC “unlicensed modular transmitter approval” method. As long as these two conditions are met, further transmitter testing will not be required. However, the OEM integrator is still responsible for testing their end product for any additional compliance measures necessitated by the installation of this module (i.e. digital device emissions, PC peripheral requirements, etc.). Note: In the event that these conditions cannot be met (i.e. co-location with another transmitter), then the FCC authorization is no longer valid and the corresponding FCC ID may not be used on the final product. Under these circumstances, the OEM integrator will be responsible for re-evaluating the end product (including the transmitter) and obtaining a separate FCC authorization. Rev 1.5 (November 2005) 9 DLP-RF1/Z DLP Design, Inc. 4.3.2 OEM Product Labeling The final end product must be labeled in a visible area with the following text: “Contains TX FCC ID: SX9000RF1” 4.3.3 RF Exposure Note: In order to comply with FCC RF exposure compliance requirements, the antenna used for this transmitter must not be co-located or operating in conjunction with any other antenna or transmitter. 4.3.4 Additional Information for OEM Integrators The end user should NOT be provided with any instructions on how to remove or install the DLP-RF1. 5.0 Disclaimer Neither the whole nor any part of the information contained herein nor the product described in this datasheet may be adapted or reproduced in any material or electronic form without the prior written consent of the copyright holder. This product and its documentation are supplied on an as-is basis, and no warranty as to their suitability for any particular purpose is either made or implied. DLP Design will not accept any claim for damages whatsoever arising as a result of use or failure of this product. Your statutory rights are not affected. This product or any variant of it is not intended for use in any medical appliance, device, or system in which the failure of the product might reasonably be expected to result in personal injury. This document provides preliminary information that may be subject to change without notice. 6.0 Contact Information DLP Design, Inc. 1605 Roma Lane Allen, TX 75013 Phone: 469-964-8027 Fax: 415-901-4859 Email: [email protected] Internet: http://www.dlpdesign.com Rev 1.5 (November 2005) 10 DLP-RF1/Z DLP Design, Inc.