Python LT8900 via SPI

Diff
Login

Diff

Differences From Artifact [e27f58af7d]:

To Artifact [4e3efca6a5]:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22















23
24
25
26
27
28
29
1
2
3
4
5
6
7















8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29







-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+







# Python LT8900 via SPI

This Python module enables a Python to talk to an LT8900 radio attached to an serial peripheral interface (SPI).

## API
### Synopsis

    lt8900_spi.radio(spi_bus, spi_dev, config = None) -> instance
    lt8900_spi.radio.put_register(reg, value) -> value
    lt8900_spi.radio.put_register_bits(reg, bits_dict) -> value
    lt8900_spi.radio.get_register(reg) -> value
    lt8900_spi.radio.get_register_bits(reg, value = None) -> dictionary
    lt8900_spi.radio.configure(config) -> None
    lt8900_spi.radio.initialize() -> boolean
    lt8900_spi.radio.set_channel(channel) -> dictionary
    lt8900_spi.radio.set_syncword(syncword) -> None
    lt8900_spi.radio.fill_fifo(message, include_length = True) -> list
    lt8900_spi.radio.transmit(message, channel = None) -> boolean
    lt8900_spi.radio.multi_transmit(message, channels, retries = 3, delay = 0.1) -> boolean
    lt8900_spi.radio.start_listening(channel) -> boolean
    lt8900_spi.radio.stop_listening() -> boolean
    lt8900_spi.radio.receive(channel = None, wait = False, length = None, wait_time = 0.1) -> list
    lt8900_spi.Radio(spi_bus, spi_dev, config = None) -> instance
    lt8900_spi.Radio.put_register(reg, value) -> value
    lt8900_spi.Radio.put_register_bits(reg, bits_dict) -> value
    lt8900_spi.Radio.get_register(reg) -> value
    lt8900_spi.Radio.get_register_bits(reg, value = None) -> dictionary
    lt8900_spi.Radio.configure(config) -> None
    lt8900_spi.Radio.initialize() -> boolean
    lt8900_spi.Radio.set_channel(channel) -> dictionary
    lt8900_spi.Radio.set_syncword(syncword) -> None
    lt8900_spi.Radio.fill_fifo(message, include_length = True) -> list
    lt8900_spi.Radio.transmit(message, channel = None) -> boolean
    lt8900_spi.Radio.multi_transmit(message, channels, retries = 3, delay = 0.1) -> boolean
    lt8900_spi.Radio.start_listening(channel) -> boolean
    lt8900_spi.Radio.stop_listening() -> boolean
    lt8900_spi.Radio.receive(channel = None, wait = False, length = None, wait_time = 0.1) -> list

### instance.get\_register\_bits

Low-level primitive to get a named register with bitfields expanded to names.

### instance.put\_register\_bits

61
62
63
64
65
66
67
68

69
70
71
72
73
74
75
76
77
61
62
63
64
65
66
67

68
69
70
71
72
73
74
75
76
77







-
+









    reset_gpio.on()
    def reset_module_via_gpio():    
    	reset_gpio.off()
    	time.sleep(0.1)
    	reset_gpio.on()
    	time.sleep(0.1)

    radio = lt8900_spi.radio(0, 0, {
    radio = lt8900_spi.Radio(0, 0, {
    	'reset_command': reset_module_via_gpio
    })
    
    if not radio.initialize():
    	raise ValueError('Initialize failed')

    radio.set_syncword([0x258B, 0x147A])

    radio.multi_transmit([0xB0, 0x51, 0xF0, 0x00, 0x00, 0x01, 212], [9, 40, 71], delay = 0.5)