Tags:
create new tag
, view all tags
Altering the settings used to transmit data on the transceiver module can easily be changed by altering the contents of the registers using simple SPI writes. In the firmware code, these have been listed in sequential order with a brief description of their function. Although specific details of their implementation can be found in the attached information, a general overview of the registers mainly utilised in the firmware is given below. Not all registers and settings are used in the firmware. The main ones used are:

Interrupts
Register Function
0x03 & 0x04 Interrupt status registers. Information in these registers can be used to determine what the reason for a triggered interrupt was. They must also be read in order to reset the signal on the interrupt pin.Note: If an event occurs, the interrupt status bit will be asserted whether the interrupt enable bit is set or not. Though the interrupt enable bit must be set for an interrupt to physically occur.
0x05 & 0x06 Interrupt enable registers. By setting the bits in these registers, the microcontroller will be notified when the relevant event occurs via a signal on the interrupt pin. The only two interrupts used in the firmware are valid packet sent and valid packet received interrupts.

Operating Function and Control
Register Function
0x07 & 0x08 Used to control the operation of the transceiver module. In the firmware, these registers are used to initialise the transceiver to a ready state and also to place it into send and receive modes. They are also used to clear the send and receive FIFOs to ensure that the correct data is read from the module.

Packet Format
Register Function
0x30 Data access control. Is used to enable the used of the packet handler on board the transceiver module for both sending and receiving. Also used to implement a CRC on the packet sent. The mentioned features are all taken advantage of in the firmware.
0x32 & 0x33 Header control. Used to set the desired length of both the sync word and header. Also enables the use of a broadcast byte, which means if the header is set to a hex value of 0xFF the receive header check is disregarded. This feature is implemented in the firmware.
0x34 Used to set the preamble length. Through testing, it was determined that 2 bytes length resulted in few erroneous valid preambles being detected though this can obviously be alter depending on the application desired.
0x36 – 0x39 Sync word 3-0. These registers are used to set the sync word which consists of 4 bytes of data. When using the automatic packet handler offered by the transceiver module, the sync word must be at least 1 byte in length. In the firmware only 1 byte is used and it’s set to the default value.
0x3A – 0x3D Transmit header 3-0. These registers are used to set the value of the header bytes used. In the firmware, only 1 header byte is used and the destination address is written to the relevant register in the transmit function.
0x3E Packet length. The length of the payload is written to this register and notifies the transceiver of how many bytes it needs to send. In the firmware, this is written inside the transmit function.
0x3F – 0x42 Check header 3-0. The head bytes received are checked against the values held inside these registers. In the firmware, the source address of the board is written to check header byte 3 at start up.

Transmitting and Receiving Settings
Register Function
0x1C – 0x25 FSK settings. These registers are used when utilizing frequency shift keying which is implemented in the firmware.
0x6E – 0x70 Data rate settings. Used to set the transmission rate of the transceiver, is set to the maximum of 200 kbps in the firmware.
0x75 – 0x77 RX/TX carrier frequency settings. Used to determine the carrier frequency used. Is set to 434 MHz in the firmware.
0x71 & 0x72 Frequency deviation settings. In the firmware this is set to 26 MHz.

Note: When changing these settings, the suggested method is to open the spreadsheet “Si443x-Register-Settings” and put in the desired settings. The spreadsheet should update the relevant register information and this can be used to program the transceiver

-- XiaohongWu - 2012-01-30

Topic revision: r1 - 2012-01-31 - XiaohongWu
 
This site is powered by the TWiki collaboration platformCopyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback