42#ifdef PREINIT_SUPPORTED
46#ifdef MikroCCoreVersion
47 #if MikroCCoreVersion >= 1
52#include "drv_digital_out.h"
53#include "drv_digital_in.h"
54#include "drv_spi_master.h"
68#define RECNPLAY_MAP_MIKROBUS( cfg, mikrobus ) \
69 cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
70 cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
71 cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
72 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
73 cfg.rdy = MIKROBUS( mikrobus, MIKROBUS_AN ); \
74 cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST ); \
75 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
82#define RECPLAY_PLAY_VP 0xA6
83#define RECPLAY_PLAY_VP_RN 0xAE
84#define RECPLAY_EXE_VM 0xB0
85#define RECPLAY_REC_MSG 0x38
86#define RECPLAY_REC_MSG_ADDR 0x3A
87#define RECPLAY_PLAY_MSG 0x3C
88#define RECPLAY_PLAY_SIL 0xA8
89#define RECPLAY_STOP 0x2A
90#define RECPLAY_ERASE_MSG 0x3E
91#define RECPLAY_SPI_PCM_WRITE 0xAA
92#define RECPLAY_SPI_PCM_READ 0xAC
93#define RECPLAY_SPI_SND_DEC 0xC0
94#define RECPLAY_SPI_RCV_ENC 0xC2
95#define RECPLAY_READ_STATUS 0x40
96#define RECPLAY_READ_INT 0x46
97#define RECPLAY_READ_MSG_ADDR 0x42
98#define RECPLAY_READ_MSG_LEN 0x44
99#define RECPLAY_READ_ID 0x48
100#define RECPLAY_DIG_READ 0xA2
101#define RECPLAY_DIG_WRITE 0xA0
102#define RECPLAY_ERASE_MEM 0x24
103#define RECPLAY_CHIP_ERASE 0x26
104#define RECPLAY_PWR_UP 0x10
105#define RECPLAY_PWR_DOWN 0x12
106#define RECPLAY_SET_CLK_CFG 0xB4
107#define RECPLAY_READ_CLK_CFG 0xB6
108#define RECPLAY_WRITE_CFG_REG 0xB8
109#define RECPLAY_READ_CFG_REG 0xBA
116#define RECPLAY_INT_PEAK_DET_MASK 0x80
117#define RECPLAY_INT_MEM_PROT_ERR_MASK 0x40
118#define RECPLAY_INT_WR_FIN_MASK 0x20
119#define RECPLAY_INT_CMD_ERR_MASK 0x10
120#define RECPLAY_INT_OVF_ERR_MASK 0x08
121#define RECPLAY_INT_CMD_FIN_MASK 0x04
122#define RECPLAY_INT_ADDR_ERR_MASK 0x02
123#define RECPLAY_INT_FULL_ERR_MASK 0x01
130#define RECPLAY_STAT_PWR_DOWN_MASK 0x80
131#define RECPLAY_STAT_DBUF_RDY_MASK 0x40
132#define RECPLAY_STAT_INT_GEN_MASK 0x20
133#define RECPLAY_STAT_REC_MEM_FULL_MASK 0x10
134#define RECPLAY_STAT_VM_BSY_MASK 0x04
135#define RECPLAY_STAT_CBUF_FULL_MASK 0x02
136#define RECPLAY_STAT_CMD_BSY_MASK 0x01
143#define RECPLAY_INT_GEN_PIN 0x00
144#define RECPLAY_INT_NO_GEN_PIN 0x01
145#define RECPLAY_SPI_RDY_PIN 0x01
146#define RECPLAY_SPI_BSY_PIN 0x00
153#define RECPLAY_CFG00_REG 0x00
154#define RECPLAY_CFG01_REG 0x01
155#define RECPLAY_CFG02_REG 0x02
156#define RECPLAY_CFG03_REG 0x03
157#define RECPLAY_CFG04_REG 0x04
158#define RECPLAY_CFG05_REG 0x05
159#define RECPLAY_CFG06_REG 0x06
160#define RECPLAY_CFG07_REG 0x07
161#define RECPLAY_CFG08_REG 0x08
162#define RECPLAY_CFG09_REG 0x09
163#define RECPLAY_CFG0A_REG 0x0A
164#define RECPLAY_CFG0B_REG 0x0B
165#define RECPLAY_CFG0C_REG 0x0C
166#define RECPLAY_CFG0D_REG 0x0D
167#define RECPLAY_CFG0E_REG 0x0E
168#define RECPLAY_CFG0F_REG 0x0F
169#define RECPLAY_CFG10_REG 0x10
170#define RECPLAY_CFG11_REG 0x11
171#define RECPLAY_CFG12_REG 0x12
172#define RECPLAY_CFG13_REG 0x13
173#define RECPLAY_CFG14_REG 0x14
174#define RECPLAY_CFG15_REG 0x15
175#define RECPLAY_CFG16_REG 0x16
176#define RECPLAY_CFG17_REG 0x17
177#define RECPLAY_CFG18_REG 0x18
178#define RECPLAY_CFG19_REG 0x19
179#define RECPLAY_CFG1A_REG 0x1A
180#define RECPLAY_CFG1B_REG 0x1B
181#define RECPLAY_CFG1C_REG 0x1C
182#define RECPLAY_CFG1D_REG 0x1D
183#define RECPLAY_CFG1E_REG 0x1E
184#define RECPLAY_CFG1F_REG 0x1F
185#define RECPLAY_CFG20_REG 0x20
186#define RECPLAY_CFG21_REG 0x21
187#define RECPLAY_CFG22_REG 0x22
188#define RECPLAY_CFG23_REG 0x23
189#define RECPLAY_CFG24_REG 0x24
190#define RECPLAY_CFG25_REG 0x25
191#define RECPLAY_CFG26_REG 0x26
192#define RECPLAY_CFG27_REG 0x27
193#define RECPLAY_CFG28_REG 0x28
194#define RECPLAY_CFG29_REG 0x29
195#define RECPLAY_CFG2A_REG 0x2A
196#define RECPLAY_CFG2B_REG 0x2B
197#define RECPLAY_CFG2C_REG 0x2C
198#define RECPLAY_CFG2D_REG 0x2D
199#define RECPLAY_CFG2E_REG 0x2E
200#define RECPLAY_CFG2F_REG 0x2F
207#define RECNPLAY_RETVAL uint8_t
209#define RECNPLAY_OK 0x00
210#define RECNPLAY_INIT_ERROR 0xFF
#define RECNPLAY_RETVAL
Definition recnplay.h:207
uint8_t recplay_check_int(recnplay_t *ctx)
Interrupt Request Pin Check Command.
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_erase_mem(recnplay_t *ctx, uint32_t start_addr, uint32_t end_addr)
Memory Erase Command.
RECNPLAY_RETVAL recplay_read_status(recnplay_t *ctx, uint8_t *interr_status)
Status Read Command.
void recplay_reset(recnplay_t *ctx)
ISD3900 Reset Command.
RECNPLAY_RETVAL recplay_pwr_up(recnplay_t *ctx)
Power Up Command.
RECNPLAY_RETVAL recplay_set_clk_cnfg(recnplay_t *ctx, uint8_t clk_cnfg)
Clock Configuration Set Command.
RECNPLAY_RETVAL recplay_read_interr(recnplay_t *ctx, uint8_t *interr_status)
Interrupt Read Command.
void recnplay_cfg_setup(recnplay_cfg_t *cfg)
Config Object Initialization function.
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_read(recnplay_t *ctx, uint32_t mem_addr, uint8_t *data_out, uint8_t n_data)
Digital Read Command.
RECNPLAY_RETVAL recplay_read_msg_addr(recnplay_t *ctx, uint32_t *msg_addr, uint16_t *msg_length)
Recorded Message Address Read Command.
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.
RECNPLAY_RETVAL recplay_erase_msg(recnplay_t *ctx, uint32_t mem_addr)
Message Erase at Address Command.
RECNPLAY_RETVAL recplay_play_silence(recnplay_t *ctx, uint8_t silence_length)
Silence Play Command.
RECNPLAY_RETVAL recplay_execute_vm(recnplay_t *ctx, uint16_t index)
Voice Macro Execute Command.
RECNPLAY_RETVAL recplay_write_cnfg_reg(recnplay_t *ctx, uint8_t reg_addr, uint8_t *cnfg_data, uint8_t n_data)
Configuration Write Command.
RECNPLAY_RETVAL recplay_read_msg_length(recnplay_t *ctx, uint16_t *msg_length)
Message Length Read Command.
uint8_t recplay_check_rdy(recnplay_t *ctx)
SPI Data Transfer Status Check Command.
RECNPLAY_RETVAL recplay_play_vp(recnplay_t *ctx, uint16_t index)
Voice Prompt Play Command.
RECNPLAY_RETVAL recnplay_init(recnplay_t *ctx, recnplay_cfg_t *cfg)
Initialization function.
RECNPLAY_RETVAL recplay_stop(recnplay_t *ctx)
Stop Command.
RECNPLAY_RETVAL recplay_read_id(recnplay_t *ctx, recnplay_dev_id_t *dev_id_data)
ISD3900 ID Read Command.
RECNPLAY_RETVAL recplay_read_clk_cnfg(recnplay_t *ctx, uint8_t *clk_cnfg)
Clock Configuration Read Command.
RECNPLAY_RETVAL recplay_play_vp_rn(recnplay_t *ctx, uint8_t value_rn)
Voice Prompt @Rn Play Command.
RECNPLAY_RETVAL recplay_erase_chip(recnplay_t *ctx)
Chip Erase Command.
RECNPLAY_RETVAL recplay_record_msg_addr(recnplay_t *ctx, uint32_t mem_addr)
Message Record at Address Command.
RECNPLAY_RETVAL recplay_dig_write(recnplay_t *ctx, uint32_t mem_addr, uint8_t *data_in, uint8_t n_data)
Digital Write Command.
RECNPLAY_RETVAL recplay_pwr_down(recnplay_t *ctx)
Power Down Command.
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_cnfg_reg(recnplay_t *ctx, uint8_t reg_addr, uint8_t *cnfg_data, uint8_t n_data)
Configuration Read Command.
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_play_msg(recnplay_t *ctx, uint32_t mem_addr, uint16_t sector_offset)
Message Play at Address Command.
Click configuration structure definition.
Definition recnplay.h:258
spi_master_chip_select_polarity_t cs_polarity
Definition recnplay.h:276
pin_name_t sck
Definition recnplay.h:263
spi_master_mode_t spi_mode
Definition recnplay.h:275
pin_name_t mosi
Definition recnplay.h:262
uint32_t spi_speed
Definition recnplay.h:274
pin_name_t int_pin
Definition recnplay.h:270
pin_name_t rdy
Definition recnplay.h:268
pin_name_t miso
Definition recnplay.h:261
pin_name_t rst
Definition recnplay.h:269
pin_name_t cs
Definition recnplay.h:264
Device ID data.
Definition recnplay.h:246
uint8_t part_id
Definition recnplay.h:247
uint8_t dev_id
Definition recnplay.h:250
uint8_t mem_type
Definition recnplay.h:249
uint8_t man_id
Definition recnplay.h:248
Click ctx object definition.
Definition recnplay.h:224
digital_out_t cs
Definition recnplay.h:227
spi_master_t spi
Definition recnplay.h:237
digital_in_t int_pin
Definition recnplay.h:233
digital_out_t rst
Definition recnplay.h:228
pin_name_t chip_select
Definition recnplay.h:238
digital_in_t rdy
Definition recnplay.h:232