SMK900 Integration Guide Revision 4 SMK-900 SERIES INTEGRATION GUIDE PORTIA Module Revision 4 1
SMK900 Integration Guide Revision 4 CONTENTS Introduction 5 System 5 SMK900 System Overview 5 Mesh Network Systems 5 Frequency Hopping implications 6 Specifications 6 Broadcast Frame 7 Dynamic parameters 7 Broadcast Frame Structure 8 SMK900 Addressing and Network Segregation 8 Transparent and Protocol-formatted Mode 9 Transparent 9 Protocol-formatted 9 Virtual machine 9 Description 9 Virtual Machine Triggers 9 Mesh operation process triggers 10 External process triggers 1
SMK900 Integration Guide Revision 4 TxLongData 24 TxReduxData 25 RxDataPacket 25 RxReduxDataPacket 25 RXBcastInSniffedDataPacket 25 BcastUART2TrxBufferDone 26 RXBcastInSnifferAirDataPacket 26 RXBcastOutSnifferAirCmd 26 DynConfig 27 DynConfigReply 27 GetRegister 28 GetRegisterReply 28 SetRegister 28 SetRegisterReply 29 TransferConfig 29 TransferConfigReply 29 TXAirCmdWrapper 29 RXAirCmdWrapper 31 Configuration Registers 31 Register table 32 Registers Description 33 a
SMK900 Integration Guide Revision 4 United State (FCC) 39 ISED (Innovation, Science and Economic Development Canada) 40 Labeling requirements 40 ANNEXE 41 Virtual Machine IDE 41 4
SMK900 Integration Guide Revision 4 Introduction SMK900 transceivers provide for highly-reliable, long-range, and low power mesh networking radio applications. They use frequency hopping spread spectrum (FHSS) technology to ensure resistance to multipath fading and robustness, as well as for compliance with 900 MHz unlicensed band regulations in Canada and the US. The SMK900 supports a CTS-enabled serial port interface with data rates ranging from 1.2 to 230.
SMK900 Integration Guide Revision 4 mesh networks have to be controlled by its own gateway. The bridging between gateways is handled by the integrator. Frequency Hopping implications The SMK900 uses the FHSS approach in order to ensure that co-located networks using different FHSS hopping tables (a.k.a channels) can coexist with graceful degradation of network performance as the number of conflicting networks overlapping increases.
SMK900 Integration Guide Revision 4 Broadcast Frame In order to ensure synchronization of every nodes within a given network, the gateway always initiates a broadcast beacon periodically, which encompasses a broadcast parameters. This is the primary construct within which all nodes communicate.
SMK900 Integration Guide Revision 4 the integrator. The easiest way to do so, say for a mesh network with standard round-robin sensor polling, is simply to detect reply failure at the host side connected to the gateway, and retry polling for a number of times, before flagging a failure to user in the case a maximum number of retries has been hit.
SMK900 Integration Guide Revision 4 The primary means for network segregation is of course the selection of the FHSS channel via a configuration variable named HOPTABLEID. The current implementation allows for values between 0 and 5 (i.e. 6 different hop tables). Transparent and Protocol-formatted Mode A SMK900 based network can be configured to use either the transparent or the protocol-formatted mode for the serial port interface.
SMK900 Integration Guide Revision 4 Trigger Description Bootup Bootup system initialization Enter Seek Mode The transceiver is attempting communication with the gateway over the mesh network. Leave Seek Mode The transceiver has established a link to the mesh network. Enter Broadcast The transceiver wakes up to enter the broadcasting cycle Leave Broadcast Broadcasting cycle has ended and the transceiver is ready to enter sleep mode.
SMK900 Integration Guide Revision 4 Hardware The SMK900 module provides multiple application interfaces: a primary communication serial port (CTS enabled), a dedicated I2C port (Master mode only), and 13 generic digital I/O. The latter can be reconfigured to ADC (2x), to DAC (2x) or to PWM hardware signalling or clock generation (2x). The SMK900 transceiver can also use advanced peripherals such as hardware timers and event capture/compare within custom bytecode executed by its VM engine.
SMK900 Integration Guide Revision 4 Module Pin Out Electrical connections to the SMK900 are made through the I/O pads and through the I/O pins (depending on whether it is the SMT castellated or the through-hole version).
SMK900 Integration Guide Revision 4 20 4 21 22 17 23 18 24 1, 13 7 IO_9 MISO I (O) Generic I/O. Alternately, hardware SPI Master In Slave Out pin, or OC1A Timer C wave out Channel A. 14 IO_8 MOSI I (O) Generic I/O. Alternately, hardware SPI Master Out Slave In pin, or OC1B Timer C wave out Channel B. 20 IO_7 /SS I (O) Generic I/O. Alternately, hardware SPI enable pin. IO_10 SCK, I MIRROR (O) Stable, low-power 3.3V output.
SMK900 Integration Guide Revision 4 Through holes pinout 14
SMK900 Integration Guide Revision 4 Through Holes Mounting 15
SMK900 Integration Guide Revision 4 Surface mount pinout 16
SMK900 Integration Guide Revision 4 17
SMK900 Integration Guide Revision 4 Power Supply and Input Voltages SMK900 radio modules can operate from an unregulated DC input in the range of 3.3 to 5.5 V with a maximum ripple of 5% over the temperature range of -40 to 85 °C. Applying AC, reverse DC, or a DC voltage outside the range given above can cause damage and/or create a fire and safety hazard. Further, care must be taken so logic inputs applied to the radio stay within the voltage range of 0 to 3.3 V.
SMK900 Integration Guide Revision 4 Change I2C address Writ e Write a new I2C address to the external sleep controller. Note that changes are effective without having to reboot the external sleep controller chip, less than 100 msec after the I2C command is sent on the I2C bus. [ADDR * 2, 0x28, new I2C ADDR] N/A Change reference voltage Writ e Change the reference voltage used for calibrating the voltage measurements. Change is valid and enforced < 100 msec. after end of I2C command.
SMK900 Integration Guide Revision 4 Example VM User Script using I2C Functions Here is a VM example for a simple node that (1) at boot-up, queries the external sleep controller for the RF channel variable, and configures the transceiver NwkId and HopTable configuration registers accordingly (see section 7.
SMK900 Integration Guide Revision 4 Send(2); } //Common entry point for all VM executions: the subfunction to b executed is selected according to trigger //type via GetExecType().
SMK900 Integration Guide Revision 4 Protocol-formatted Messages Protocol Formats SMK900 module can work in one of two serial data modes - transparent or protocol. Transparent mode requires no data formatting, but cannot leverage the embedded node addressing schemes, nor can access configuration and VM upload/erase/check/execute functions. Thus, transparent mode is adapted mainly for simple drop-in serial wire replacement for point-to-multipoint applications.
SMK900 Integration Guide Revision 4 command set (encapsulated within those meta-messages, called air command wrappers) to change the configuration and act on remote nodes in a straightforward manner. It is also possible to send air command wrapped messages to multiple MAC addresses (up to 4), if multi-phase mode is used (only possible when the number of b roadcast in phases B I > 1). Message Format Details Summary of message types Direction AirCmd. Wrapped, no MAC AirCmd.
SMK900 Integration Guide Revision 4 EnterProtocolModeReply This reply is the expected reply from transceiver module to the corresponding command EnterProtocolMode.
SMK900 Integration Guide Revision 4 0x05 - … Payload Up to 20*B bytes of data at 50kbit/sec, 72*B bytes of data at 100kbit/sec, where B is the number of Broadcast Out Phases if sender is a gateway, or the number of Broadcast In Phases if sender is a n ode TxReduxData Special data send using the broadcast cycle redux phase.
SMK900 Integration Guide Revision 4 message is only sent to transceiver host if the proper transceiver configuration register flag is set (RAM bank register s niffFlagsMask, flag BROADCASTIN_bm, see section 7.3).
SMK900 Integration Guide Revision 4 are in said air command, which directly correlates with the current number of Broadcast In Phases of the network (parameter BI, see section 2.2). Note that although is in effect theoretically possible for a node to extrapolate this information by retrieving the network dynamic configuration parameters, in order to get parameter BI instead on relying on the Phase In Count parameter of this event message, it is not a recommended practice.
SMK900 Integration Guide Revision 4 0x00 Start-of-Packet 0x01 - 0x02 Length 0x03 Packet Type 0xFB = Indicates start of protocol formatted message 0x01 0x00 = Number of bytes in message following this byte (Little-Endian) 0x1A = DynConfigReply GetRegister This is a configuration parameter register read command, in a certain register bank, and with a given offset (see section 7.3 for specific configuration register details).
SMK900 Integration Guide Revision 4 0x03 Packet Type 0x04 = SetRegister 0x04 Register Type 0x00=RAMBUF (direct register writes disallowed for RAM and EEPROM banks) 0x05 Register Offset 0x00-0x14 = Configuration register offset in register bank 0x06 Register Size 0x07 - … Register content 0x01-0x08 = Configuration register size (N) of register to be written From 1 to 8 bytes of data (byte count is N): this is the content of register being modified, with variables or structures being stored in a
SMK900 Integration Guide Revision 4 command to a node, without local access to its serial communication bus, in which case the command can be packaged within a TXAirCmdWrapper command, then sent via serial communication bus to a gateway transceiver controlling the network which is connected to the node in question. Said gateway then reroutes that command to the desired destination node(s) via the mesh network.
SMK900 Integration Guide Revision 4 RXAirCmdWrapper This event message is a wrapper message for any replies from a node transmitted back to the gateway of a given mesh network (instead of being transmitted to a host locally connected to that node via serial communication bus), and thus is the corresponding message to TXAirCmdWrapper (see section 7.2.22 for details). This reply message is only applicable for transceivers configured as gateways.
SMK900 Integration Guide Revision 4 Register table Regi ster offs et S i z e ( b y t e s ) 0x00 R ea dO nl y Fl ag Register name Sub-register name Sub-regis ter location (bit offset) 8 addressBuf - - N/ A 0x01 1 addressBufLen - - 3 MAC address buffer length 0x02 6 dyn BO 0 1..4 1 Dynamic configuration, Broadcast Out Phase Count BI 8 1..4 1 Dynamic configuration, Broadcast In Phase Count NH 16 2..
SMK900 Integration Guide Revision 4 0x0F meshExecActiv eFlag 1 powerBus_powerUp Delay_msec 40 0..6553 5 0 SERIAL_bm 0 0..1 1 AIRCMD_bm 1 0..1 1 VM Execution Trigger Enable Flag On Air-Cmd Receive Event BOOTUP_bm 2 0..1 1 VM Execution Trigger Enable Flag On Boot-Up Event 3 0..1 0 VM Execution Trigger Enable Flag On Enter Seek Mode Event 4 0..1 0 VM Execution Trigger Enable Flag On Leave Seek Mode Event 5 0..1 0 VM Execution Trigger Enable Flag On Enter Broadcast Event 6 0..
SMK900 Integration Guide Revision 4 hopTable holds the current hop sequence of the network intended to be connected to the transceiver. This variable ranges from 0 to 5 (i.e. 6 different possible values). Combined with nwkID, cryptoData_qWord0 and cryptoData_qWord1, this defines a unique network access key. Note that if one discounts the use of encryption keys, then it would be possible to combine hopTable and nwkID in such a way that the combined number becomes an extended "channel number".
SMK900 Integration Guide Revision 4 extSlpCorrectionFactor this is a read-only register indicating the current correction factor compensating for the external sleep controller crystal drift (see section 6.3 for more details). presetRF this is the current RF parameter preset for the transceiver (default value is presetRF = 0) and corresponds to a RF bitrate of 50 kbit/sec. Currently, it is the only suggested preset, and for this preset, the data payload of every packet is limited to 20 bytes.
SMK900 Integration Guide Revision 4 Constant name Bit positio n Bit-mask value SERIAL_bm 0 0x01 AIRCMD_bm 1 0x02 BOOTUP_bm 2 0x04 ENTERSEEKMODE_bm 3 0x08 LEAVESEEKMODE_bm 4 0x10 ENTERBROADCAST_bm 5 0x20 LEAVEBROADCAST_bm 6 0x40 ENABLEVMFLASHOP_bm 7 0x80 Description Activate virtual machine when a serial command for VM Exec has been received locally (see section 5 for details) via the UART communication bus.
SMK900 Integration Guide Revision 4 enableNotificationFlagsMask flags enabling special notification UART messages for some useful events. Here is a description table of the relevant flags: Constant name Bit pos-iti on Bit-ma sk value CLOSEBROADCAST_bm 0 0x01 ENDUARTTRANSFERTOTXBUFFER_bm 1 0x02 Description Enable broadcast end close event message report (via special RxDataPacket event message with Broadcast phase ID = 0xFF).
SMK900 Integration Guide Revision 4 Developer Kit Portia Adapter Board The Portia Adapter Board is provided in the development kit in order to connect a Portia SMK900 radio module to a USB serial device such as a PC or laptop This is especially useful, when developing, to monitor the mesh network, to generate/modify/upload a Virtual Machine firmware. Additionally, the adapter board features a breadboard footprint compatible dual inline package (DIP).
SMK900 Integration Guide Revision 4 SMK900 Certifications Information Smartrek Technologie module FCC ID: 2AP8V-SMK900 IC: 24079-SMK900 United State (FCC) Note: This equipment has been tested and found to comply with the limits for a Class B digital device, pursuant to part 15 of the FCC Rules. These limits are designed to provide reasonable protection against harmful interference in a residential installation.
SMK900 Integration Guide Revision 4 Remarque : Cet équipement a été testé et déclaré conforme aux limites d'un appareil numérique de classe B, conformément à la partie 15 des règlements de la FCC. Ces limites sont conçues pour fournir une protection raisonnable contre les interférences nuisibles dans une installation résidentielle.
SMK900 Integration Guide Revision 4 ISED (Innovation, Science and Economic Development Canada) This device complies with Industry Canada license-exempt RSS standard(s). Operation is subject to the following two conditions: (1) this device may not cause interference, and (2) this device must accept any interference, including interference that may cause undesired operation of the device. Le présent appareil est conforme aux CNR d'Industrie Canada applicables aux appareils radio exempts de licence.
SMK900 Integration Guide Revision 4 ANNEXE Virtual Machine IDE SMK900.
SMK900 Integration Guide Revision 4 #define #define #define #define #define #define #define #define #define GetExecType() $uf1(0x00) GetRSSI() $uf1(0x01) TransferConfigRAMBUF() $uf1(0x08) TransferConfigRAM() $uf1(0x09) TransferConfigEEPROM() $uf1(0x0A) ResetFactoryDefaults() $uf1(0x0B) Send(count) $uf1(0x20, count) Delay(delay) $uf1(0x24, delay) SetPinMirror(type) $uf1(0x28, type) #define #define #define #define #define #define #define I2CPowerBus_Activate() $uf2(0x00)
SMK900 Integration Guide Revision 4 #define _PORTD_PIN3CTRL 0x0108 #define #define #define #define #define #define _DACB_CTRLA 0x0009 _DACB_CTRLB 0x0109 _DACB_CTRLC 0x0209 _DACB_EVCTRL 0x0309 _DACB_TIMCTRL 0x0409 _DACB_STATUS 0x0509 #define _DACB_GAINCAL 0x000A #define _DACB_OFFSETCAL 0x010A #define #define #define #define _DACB_CH0DATAL _DACB_CH0DATAH _DACB_CH1DATAL _DACB_CH1DATAH 0x000B 0x010B 0x020B 0x030B #define #define #define #define #define _ADCA_CTRLA 0x000C _ADCA_CTRLB 0x01