Go to the documentation of this file.
39 #ifdef PREINIT_SUPPORTED
43 #ifdef MikroCCoreVersion
44 #if MikroCCoreVersion >= 1
49 #include "drv_digital_out.h"
50 #include "drv_digital_in.h"
51 #include "drv_spi_master.h"
73 #define ISM_REG_BANK_0_CONFIG 0x00
74 #define ISM_REG_BANK_0_EN_AA 0x01
75 #define ISM_REG_BANK_0_EN_RXADDR 0x02
76 #define ISM_REG_BANK_0_SETUP_AW 0x03
77 #define ISM_REG_BANK_0_SETUP_RETR 0x04
78 #define ISM_REG_BANK_0_RF_CH 0x05
79 #define ISM_REG_BANK_0_RF_SETUP 0x06
80 #define ISM_REG_BANK_0_STATUS 0x07
81 #define ISM_REG_BANK_0_OBSERVE_TX 0x08
82 #define ISM_REG_BANK_0_CD 0x09
83 #define ISM_REG_BANK_0_RX_ADDR_P0 0x0A
84 #define ISM_REG_BANK_0_RX_ADDR_P1 0x0B
85 #define ISM_REG_BANK_0_RX_ADDR_P2 0x0C
86 #define ISM_REG_BANK_0_RX_ADDR_P3 0x0D
87 #define ISM_REG_BANK_0_RX_ADDR_P4 0x0E
88 #define ISM_REG_BANK_0_RX_ADDR_P5 0x0F
89 #define ISM_REG_BANK_0_TX_ADDR 0x10
90 #define ISM_REG_BANK_0_RX_PW_P0 0x11
91 #define ISM_REG_BANK_0_RX_PW_P1 0x12
92 #define ISM_REG_BANK_0_RX_PW_P2 0x13
93 #define ISM_REG_BANK_0_RX_PW_P3 0x14
94 #define ISM_REG_BANK_0_RX_PW_P4 0x15
95 #define ISM_REG_BANK_0_RX_PW_P5 0x16
96 #define ISM_REG_BANK_0_FIFO_STATUS 0x17
97 #define ISM_REG_BANK_0_PAYLOAD_WIDTH 0x1F
98 #define ISM_REG_BANK_1_REG_0 0x00
99 #define ISM_REG_BANK_1_REG_1 0x01
100 #define ISM_REG_BANK_1_REG_2 0x02
101 #define ISM_REG_BANK_1_REG_3 0x03
102 #define ISM_REG_BANK_1_REG_4 0x04
103 #define ISM_REG_BANK_1_REG_5 0x05
104 #define ISM_REG_BANK_1_REG_6 0x06
105 #define ISM_REG_BANK_1_REG_7 0x07
106 #define ISM_REG_BANK_1_REG_8 0x08
107 #define ISM_REG_BANK_1_REG_9 0x09
108 #define ISM_REG_BANK_1_REG_A 0x0A
109 #define ISM_REG_BANK_1_REG_B 0x0B
110 #define ISM_REG_BANK_1_REG_C 0x0C
111 #define ISM_REG_BANK_1_REG_D 0x0D
112 #define ISM_REG_BANK_1_REG_E 0x0E
125 #define ISM_CMD_FLUSH_TX 0xE1
126 #define ISM_CMD_FLUSH_RX 0xE2
127 #define ISM_CMD_REUSE_TX_PL 0xE3
128 #define ISM_CMD_W_TX_PAYLOAD_NOACK 0xB0
129 #define ISM_CMD_W_ACK_PAYLOAD 0xA8
130 #define ISM_CMD_ACTIVATE 0x50
131 #define ISM_CMD_R_RX_PL_WID 0x60
132 #define ISM_CMD_NOP_NOP 0xFF
150 #define ISM_STATUS_RX_DR 0x40
151 #define ISM_STATUS_TX_DS 0x20
152 #define ISM_STATUS_MAX_RT 0x10
153 #define STATUS_TX_FULL 0x01
154 #define ISM_FIFO_STATUS_TX_REUSE 0x40
155 #define ISM_FIFO_STATUS_TX_FULL 0x20
156 #define ISM_FIFO_STATUS_TX_EMPTY 0x10
157 #define ISM_FIFO_STATUS_RX_FULL 0x02
158 #define ISM_FIFO_STATUS_RX_EMPTY 0x01
164 #define ISM_SEL_BANK_0 0
165 #define ISM_SEL_BANK_1 1
171 #define ISM_MAX_PACKET_LEN 32
177 #define ISM_RT_PIN_STATE_LOW 0
178 #define ISM_RT_PIN_STATE_HIGH 1
184 #define ISM_RD_RX_PLOAD 0x61
185 #define ISM_WR_TX_PLOAD 0xA0
191 #define ISM_READ_BIT_MASK 0x00
192 #define ISM_WRITE_BIT_MASK 0x20
210 #define ISM_MAP_MIKROBUS( cfg, mikrobus ) \
211 cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
212 cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
213 cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
214 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
215 cfg.tl = MIKROBUS( mikrobus, MIKROBUS_AN ); \
216 cfg.ce = MIKROBUS( mikrobus, MIKROBUS_RST ); \
217 cfg.rl = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
218 cfg.irq = MIKROBUS( mikrobus, MIKROBUS_INT )
err_t ism_generic_read(ism_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
ISM data reading function.
spi_master_mode_t spi_mode
Definition: ism.h:264
digital_out_t ce
Definition: ism.h:231
pin_name_t rl
Definition: ism.h:259
digital_out_t tl
Definition: ism.h:230
digital_out_t rl
Definition: ism.h:232
void ism_set_tl_pin_state(ism_t *ctx, uint8_t tl_pin_state)
ISM TL pin setting function.
err_t ism_switch_rx_mode(ism_t *ctx)
ISM switch RX mode function.
spi_master_chip_select_polarity_t cs_polarity
Definition: ism.h:265
void ism_cfg_setup(ism_cfg_t *cfg)
ISM configuration object setup function.
void ism_default_cfg(ism_t *ctx)
ISM default configuration function.
err_t ism_generic_write(ism_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
ISM data writing function.
@ ISM_ERROR
Definition: ism.h:276
uint8_t ism_check_interrupt_request(ism_t *ctx)
ISM check interrupt request function.
ISM Click context object.
Definition: ism.h:228
@ ISM_OK
Definition: ism.h:275
uint32_t spi_speed
Definition: ism.h:263
err_t ism_switch_tx_mode(ism_t *ctx)
ISM switch TX mode function.
err_t ism_set_cmd(ism_t *ctx, uint8_t cmd, uint8_t cmd_data)
ISM set command function.
err_t ism_switch_bank(ism_t *ctx, uint8_t bank_sel)
ISM switch bank function.
err_t ism_receive_packet(ism_t *ctx, uint8_t *rx_data)
ISM receive packet function.
pin_name_t mosi
Definition: ism.h:252
pin_name_t tl
Definition: ism.h:257
pin_name_t irq
Definition: ism.h:260
pin_name_t miso
Definition: ism.h:251
spi_master_t spi
Definition: ism.h:238
void ism_chip_enable(ism_t *ctx)
ISM set chip enable function.
pin_name_t chip_select
Definition: ism.h:240
err_t ism_device_config(ism_t *ctx)
ISM device configuration function.
pin_name_t cs
Definition: ism.h:254
digital_in_t irq
Definition: ism.h:235
void ism_set_rl_pin_state(ism_t *ctx, uint8_t rt_pin_state)
ISM RL pin setting function.
void ism_chip_disable(ism_t *ctx)
ISM set chip disable function.
ISM Click configuration object.
Definition: ism.h:249
err_t ism_init(ism_t *ctx, ism_cfg_t *cfg)
ISM initialization function.
pin_name_t sck
Definition: ism.h:253
pin_name_t ce
Definition: ism.h:258
err_t ism_transmit_packet(ism_t *ctx, uint8_t type, uint8_t *tx_data, uint8_t len)
ISM transmit package function.
ism_return_value_t
ISM Click return value data.
Definition: ism.h:274