Go to the documentation of this file.
38 #include "drv_digital_out.h"
39 #include "drv_digital_in.h"
40 #include "drv_spi_master.h"
54 #define RECNPLAY_MAP_MIKROBUS( cfg, mikrobus ) \
55 cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
56 cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
57 cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
58 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
59 cfg.rdy = MIKROBUS( mikrobus, MIKROBUS_AN ); \
60 cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST ); \
61 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
68 #define RECPLAY_PLAY_VP 0xA6
69 #define RECPLAY_PLAY_VP_RN 0xAE
70 #define RECPLAY_EXE_VM 0xB0
71 #define RECPLAY_REC_MSG 0x38
72 #define RECPLAY_REC_MSG_ADDR 0x3A
73 #define RECPLAY_PLAY_MSG 0x3C
74 #define RECPLAY_PLAY_SIL 0xA8
75 #define RECPLAY_STOP 0x2A
76 #define RECPLAY_ERASE_MSG 0x3E
77 #define RECPLAY_SPI_PCM_WRITE 0xAA
78 #define RECPLAY_SPI_PCM_READ 0xAC
79 #define RECPLAY_SPI_SND_DEC 0xC0
80 #define RECPLAY_SPI_RCV_ENC 0xC2
81 #define RECPLAY_READ_STATUS 0x40
82 #define RECPLAY_READ_INT 0x46
83 #define RECPLAY_READ_MSG_ADDR 0x42
84 #define RECPLAY_READ_MSG_LEN 0x44
85 #define RECPLAY_READ_ID 0x48
86 #define RECPLAY_DIG_READ 0xA2
87 #define RECPLAY_DIG_WRITE 0xA0
88 #define RECPLAY_ERASE_MEM 0x24
89 #define RECPLAY_CHIP_ERASE 0x26
90 #define RECPLAY_PWR_UP 0x10
91 #define RECPLAY_PWR_DOWN 0x12
92 #define RECPLAY_SET_CLK_CFG 0xB4
93 #define RECPLAY_READ_CLK_CFG 0xB6
94 #define RECPLAY_WRITE_CFG_REG 0xB8
95 #define RECPLAY_READ_CFG_REG 0xBA
102 #define RECPLAY_INT_PEAK_DET_MASK 0x80
103 #define RECPLAY_INT_MEM_PROT_ERR_MASK 0x40
104 #define RECPLAY_INT_WR_FIN_MASK 0x20
105 #define RECPLAY_INT_CMD_ERR_MASK 0x10
106 #define RECPLAY_INT_OVF_ERR_MASK 0x08
107 #define RECPLAY_INT_CMD_FIN_MASK 0x04
108 #define RECPLAY_INT_ADDR_ERR_MASK 0x02
109 #define RECPLAY_INT_FULL_ERR_MASK 0x01
116 #define RECPLAY_STAT_PWR_DOWN_MASK 0x80
117 #define RECPLAY_STAT_DBUF_RDY_MASK 0x40
118 #define RECPLAY_STAT_INT_GEN_MASK 0x20
119 #define RECPLAY_STAT_REC_MEM_FULL_MASK 0x10
120 #define RECPLAY_STAT_VM_BSY_MASK 0x04
121 #define RECPLAY_STAT_CBUF_FULL_MASK 0x02
122 #define RECPLAY_STAT_CMD_BSY_MASK 0x01
129 #define RECPLAY_INT_GEN_PIN 0x00
130 #define RECPLAY_INT_NO_GEN_PIN 0x01
131 #define RECPLAY_SPI_RDY_PIN 0x01
132 #define RECPLAY_SPI_BSY_PIN 0x00
139 #define RECPLAY_CFG00_REG 0x00
140 #define RECPLAY_CFG01_REG 0x01
141 #define RECPLAY_CFG02_REG 0x02
142 #define RECPLAY_CFG03_REG 0x03
143 #define RECPLAY_CFG04_REG 0x04
144 #define RECPLAY_CFG05_REG 0x05
145 #define RECPLAY_CFG06_REG 0x06
146 #define RECPLAY_CFG07_REG 0x07
147 #define RECPLAY_CFG08_REG 0x08
148 #define RECPLAY_CFG09_REG 0x09
149 #define RECPLAY_CFG0A_REG 0x0A
150 #define RECPLAY_CFG0B_REG 0x0B
151 #define RECPLAY_CFG0C_REG 0x0C
152 #define RECPLAY_CFG0D_REG 0x0D
153 #define RECPLAY_CFG0E_REG 0x0E
154 #define RECPLAY_CFG0F_REG 0x0F
155 #define RECPLAY_CFG10_REG 0x10
156 #define RECPLAY_CFG11_REG 0x11
157 #define RECPLAY_CFG12_REG 0x12
158 #define RECPLAY_CFG13_REG 0x13
159 #define RECPLAY_CFG14_REG 0x14
160 #define RECPLAY_CFG15_REG 0x15
161 #define RECPLAY_CFG16_REG 0x16
162 #define RECPLAY_CFG17_REG 0x17
163 #define RECPLAY_CFG18_REG 0x18
164 #define RECPLAY_CFG19_REG 0x19
165 #define RECPLAY_CFG1A_REG 0x1A
166 #define RECPLAY_CFG1B_REG 0x1B
167 #define RECPLAY_CFG1C_REG 0x1C
168 #define RECPLAY_CFG1D_REG 0x1D
169 #define RECPLAY_CFG1E_REG 0x1E
170 #define RECPLAY_CFG1F_REG 0x1F
171 #define RECPLAY_CFG20_REG 0x20
172 #define RECPLAY_CFG21_REG 0x21
173 #define RECPLAY_CFG22_REG 0x22
174 #define RECPLAY_CFG23_REG 0x23
175 #define RECPLAY_CFG24_REG 0x24
176 #define RECPLAY_CFG25_REG 0x25
177 #define RECPLAY_CFG26_REG 0x26
178 #define RECPLAY_CFG27_REG 0x27
179 #define RECPLAY_CFG28_REG 0x28
180 #define RECPLAY_CFG29_REG 0x29
181 #define RECPLAY_CFG2A_REG 0x2A
182 #define RECPLAY_CFG2B_REG 0x2B
183 #define RECPLAY_CFG2C_REG 0x2C
184 #define RECPLAY_CFG2D_REG 0x2D
185 #define RECPLAY_CFG2E_REG 0x2E
186 #define RECPLAY_CFG2F_REG 0x2F
193 #define RECNPLAY_RETVAL uint8_t
195 #define RECNPLAY_OK 0x00
196 #define RECNPLAY_INIT_ERROR 0xFF
729 #endif // _RECNPLAY_H_
RECNPLAY_RETVAL recplay_read_interr(recnplay_t *ctx, uint8_t *interr_status)
Interrupt Read Command.
RECNPLAY_RETVAL recplay_play_vp(recnplay_t *ctx, uint16_t index)
Voice Prompt Play Command.
digital_out_t rst
Definition: recnplay.h:214
digital_out_t cs
Definition: recnplay.h:213
uint8_t mem_type
Definition: recnplay.h:235
RECNPLAY_RETVAL recplay_read_cnfg_reg(recnplay_t *ctx, uint8_t reg_addr, uint8_t *cnfg_data, uint8_t n_data)
Configuration Read Command.
#define RECNPLAY_RETVAL
Definition: recnplay.h:193
uint8_t recplay_check_rdy(recnplay_t *ctx)
SPI Data Transfer Status Check Command.
Click ctx object definition.
Definition: recnplay.h:210
RECNPLAY_RETVAL recplay_spi_receive_enc_data(recnplay_t *ctx, uint8_t *encoded_data, uint8_t n_data)
SPI Receive Encoded Data Command.
RECNPLAY_RETVAL recplay_play_msg(recnplay_t *ctx, uint32_t mem_addr, uint16_t sector_offset)
Message Play at Address Command.
RECNPLAY_RETVAL recplay_stop(recnplay_t *ctx)
Stop Command.
RECNPLAY_RETVAL recplay_play_vp_rn(recnplay_t *ctx, uint8_t value_rn)
Voice Prompt @Rn Play Command.
RECNPLAY_RETVAL recplay_execute_vm(recnplay_t *ctx, uint16_t index)
Voice Macro Execute Command.
RECNPLAY_RETVAL recplay_erase_chip(recnplay_t *ctx)
Chip Erase Command.
uint8_t man_id
Definition: recnplay.h:234
uint8_t dev_id
Definition: recnplay.h:236
RECNPLAY_RETVAL recplay_write_cnfg_reg(recnplay_t *ctx, uint8_t reg_addr, uint8_t *cnfg_data, uint8_t n_data)
Configuration Write Command.
spi_master_mode_t spi_mode
Definition: recnplay.h:261
RECNPLAY_RETVAL recnplay_init(recnplay_t *ctx, recnplay_cfg_t *cfg)
Initialization function.
RECNPLAY_RETVAL recplay_spi_write_pcm(recnplay_t *ctx, uint16_t *data_pcm, uint8_t num_pcm)
PCM Data SPI Write Command.
RECNPLAY_RETVAL recplay_read_clk_cnfg(recnplay_t *ctx, uint8_t *clk_cnfg)
Clock Configuration Read Command.
void recplay_reset(recnplay_t *ctx)
ISD3900 Reset Command.
pin_name_t rst
Definition: recnplay.h:255
RECNPLAY_RETVAL recplay_record_msg_addr(recnplay_t *ctx, uint32_t mem_addr)
Message Record at Address Command.
Click configuration structure definition.
Definition: recnplay.h:244
pin_name_t rdy
Definition: recnplay.h:254
void recnplay_generic_transfer(recnplay_t *ctx, uint8_t *wr_buf, uint16_t wr_len, uint8_t *rd_buf, uint16_t rd_len)
Generic transfer function.
RECNPLAY_RETVAL recplay_dig_write(recnplay_t *ctx, uint32_t mem_addr, uint8_t *data_in, uint8_t n_data)
Digital Write Command.
pin_name_t mosi
Definition: recnplay.h:248
void recnplay_cfg_setup(recnplay_cfg_t *cfg)
Config Object Initialization function.
RECNPLAY_RETVAL recplay_spi_send_cmprsd_data(recnplay_t *ctx, uint8_t *cmprsd_data, uint8_t n_data)
SPI Send Compressed Data to Decode Command.
RECNPLAY_RETVAL recplay_record_msg(recnplay_t *ctx)
Message Record Command.
uint32_t spi_speed
Definition: recnplay.h:260
RECNPLAY_RETVAL recplay_pwr_up(recnplay_t *ctx)
Power Up Command.
RECNPLAY_RETVAL recplay_read_msg_addr(recnplay_t *ctx, uint32_t *msg_addr, uint16_t *msg_length)
Recorded Message Address Read Command.
pin_name_t chip_select
Definition: recnplay.h:224
RECNPLAY_RETVAL recplay_erase_msg(recnplay_t *ctx, uint32_t mem_addr)
Message Erase at Address Command.
spi_master_chip_select_polarity_t cs_polarity
Definition: recnplay.h:262
RECNPLAY_RETVAL recplay_erase_mem(recnplay_t *ctx, uint32_t start_addr, uint32_t end_addr)
Memory Erase Command.
RECNPLAY_RETVAL recplay_dig_read(recnplay_t *ctx, uint32_t mem_addr, uint8_t *data_out, uint8_t n_data)
Digital Read Command.
digital_in_t int_pin
Definition: recnplay.h:219
Device ID data.
Definition: recnplay.h:232
RECNPLAY_RETVAL recplay_set_clk_cnfg(recnplay_t *ctx, uint8_t clk_cnfg)
Clock Configuration Set Command.
pin_name_t sck
Definition: recnplay.h:249
pin_name_t miso
Definition: recnplay.h:247
RECNPLAY_RETVAL recplay_play_silence(recnplay_t *ctx, uint8_t silence_length)
Silence Play Command.
RECNPLAY_RETVAL recplay_pwr_down(recnplay_t *ctx)
Power Down Command.
pin_name_t int_pin
Definition: recnplay.h:256
digital_in_t rdy
Definition: recnplay.h:218
pin_name_t cs
Definition: recnplay.h:250
RECNPLAY_RETVAL recplay_spi_read_pcm(recnplay_t *ctx, uint16_t *data_pcm, uint8_t num_pcm)
PCM Data SPI Read Command.
RECNPLAY_RETVAL recplay_read_msg_length(recnplay_t *ctx, uint16_t *msg_length)
Message Length Read Command.
RECNPLAY_RETVAL recplay_read_id(recnplay_t *ctx, recnplay_dev_id_t *dev_id_data)
ISD3900 ID Read Command.
spi_master_t spi
Definition: recnplay.h:223
uint8_t part_id
Definition: recnplay.h:233
RECNPLAY_RETVAL recplay_read_status(recnplay_t *ctx, uint8_t *interr_status)
Status Read Command.
uint8_t recplay_check_int(recnplay_t *ctx)
Interrupt Request Pin Check Command.