 |
PU2CLR SI470X Arduino Library
1.0.1
Arduino Library for Si470X Devices - By Ricardo Lima Caratti
|
Go to the documentation of this file.
17 #define MAX_DELAY_AFTER_OSCILLATOR 500
20 #define I2C_DEVICE_ADDR 0x10
21 #define OSCILLATOR_TYPE_CRYSTAL 1
22 #define OSCILLATOR_TYPE_REFCLK 0
24 #define RDS_STANDARD 0
29 #define FM_BAND_USA_EU 0
30 #define FM_BAND_JAPAN_WIDE 1
31 #define FM_BAND_JAPAN 2
32 #define FM_BAND_RESERVED 3
83 uint16_t FIRMWARE : 6;
99 uint8_t RESERVED1 : 5;
101 uint8_t RESERVED2 : 1;
106 uint8_t RESERVED3 : 1;
126 uint16_t RESERVED : 5;
153 uint8_t RESERVED1 : 2;
157 uint8_t RESERVED2 : 1;
212 uint8_t RESERVED : 3;
231 uint16_t RESERVED : 14;
315 uint16_t READCHAN : 10;
374 uint8_t programType : 5;
375 uint8_t trafficProgramCode : 1;
376 uint8_t versionCode : 1;
377 uint8_t groupType : 4;
382 uint8_t textABFlag : 1;
383 uint8_t programType : 5;
384 uint8_t trafficProgramCode : 1;
385 uint8_t versionCode : 1;
386 uint8_t groupType : 4;
391 uint8_t textABFlag : 1;
392 uint8_t programType : 5;
393 uint8_t trafficProgramCode : 1;
394 uint8_t versionCode : 1;
395 uint8_t groupType : 4;
414 uint8_t offset_sense : 1;
422 } si47x_rds_date_time;
447 uint16_t shadowRegisters[17];
450 si470x_reg00 *reg00 = (si470x_reg00 *)&shadowRegisters[
REG00];
451 si470x_reg01 *reg01 = (si470x_reg01 *)&shadowRegisters[
REG01];
452 si470x_reg02 *reg02 = (si470x_reg02 *)&shadowRegisters[
REG02];
453 si470x_reg03 *reg03 = (si470x_reg03 *)&shadowRegisters[
REG03];
454 si470x_reg04 *reg04 = (si470x_reg04 *)&shadowRegisters[
REG04];
455 si470x_reg05 *reg05 = (si470x_reg05 *)&shadowRegisters[
REG05];
456 si470x_reg06 *reg06 = (si470x_reg06 *)&shadowRegisters[
REG06];
457 si470x_reg07 *reg07 = (si470x_reg07 *)&shadowRegisters[
REG07];
458 si470x_reg08 *reg08 = (si470x_reg08 *)&shadowRegisters[
REG08];
459 si470x_reg09 *reg09 = (si470x_reg09 *)&shadowRegisters[
REG09];
460 si470x_reg0a *reg0a = (si470x_reg0a *)&shadowRegisters[
REG0A];
461 si470x_reg0b *reg0b = (si470x_reg0b *)&shadowRegisters[
REG0B];
467 uint16_t startBand[4] = {8750, 7600, 7600, 6400 };
468 uint16_t fmSpace[4] = {20, 10, 5, 1};
502 void setup(
int resetPin, uint8_t oscillator_type);
509 void seek(uint8_t seek_mode, uint8_t direction);
511 void setBand(uint8_t band = 1);
uint16_t raw
Definition: SI470X.h:111
#define REG01
Definition: SI470X.h:35
uint16_t raw
Definition: SI470X.h:87
#define REG05
Definition: SI470X.h:39
si470x_reg0d blockB
Definition: SI470X.h:397
uint16_t getFrequency()
Gets the current frequency.
Definition: SI470X.cpp:265
void setSoftmute(bool value)
Sets the Softmute true or false.
Definition: SI470X.cpp:370
#define REG0F
Definition: SI470X.h:49
void setup(int resetPin, int rdsInterruptPin=-1, int seekInterruptPin=-1, uint8_t oscillator_type=OSCILLATOR_TYPE_CRYSTAL)
Starts the device.
Definition: SI470X.cpp:204
#define I2C_DEVICE_ADDR
Definition: SI470X.h:20
int rdsInterruptPin
Definition: SI470X.h:477
uint8_t getDeviceId()
Gets the Device identification.
Definition: SI470X.cpp:502
uint16_t maxDelayAftarCrystalOn
Definition: SI470X.h:480
#define REG00
Definition: SI470X.h:34
uint16_t getManufacturerId()
Gets the Manufacturer ID.
Definition: SI470X.cpp:481
int deviceAddress
Definition: SI470X.h:471
void setRdsMode(uint8_t rds_mode=0)
Sets the Rds Mode Standard or Verbose.
Definition: SI470X.cpp:406
void seek(uint8_t seek_mode, uint8_t direction)
Seek function.
Definition: SI470X.cpp:305
uint16_t raw
Definition: SI470X.h:434
void getAllRegisters()
PU2CLR SI470X Arduino Library.
Definition: SI470X.cpp:27
#define REG09
Definition: SI470X.h:43
#define REG0C
Definition: SI470X.h:46
int resetPin
Definition: SI470X.h:472
uint16_t raw
Definition: SI470X.h:249
void waitAndFinishTune()
Wait STC (Seek/Tune Complete) status becomes 0.
Definition: SI470X.cpp:97
uint16_t getRealChannel()
Gets the current channel stored in register 0x0B.
Definition: SI470X.cpp:276
uint16_t raw
Definition: SI470X.h:216
void powerUp()
Powers the receiver on.
Definition: SI470X.cpp:132
uint8_t currentFMBand
Definition: SI470X.h:474
uint16_t raw
Definition: SI470X.h:184
#define REG03
Definition: SI470X.h:37
uint16_t raw
Definition: SI470X.h:235
uint8_t raw[6]
Definition: SI470X.h:421
int getRssi()
Gets the Rssi.
Definition: SI470X.cpp:359
#define REG04
Definition: SI470X.h:38
void setDelayAfterCrystalOn(uint8_t ms_value)
Set the Delay After Crystal On (default 500ms)
Definition: SI470X.h:489
void powerDown()
Powers the receiver off.
Definition: SI470X.cpp:183
uint16_t si470x_reg0c
RDS Block A.
Definition: SI470X.h:328
uint8_t currentFMSpace
Definition: SI470X.h:475
void setAllRegisters(uint8_t limit=0x07)
Sets values to the device registers from 0x02 to 0x07.
Definition: SI470X.cpp:61
#define REG02
Definition: SI470X.h:36
void setVolume(uint8_t value)
Sets the audio volume level.
Definition: SI470X.cpp:418
#define REG0D
Definition: SI470X.h:47
uint16_t currentFrequency
Definition: SI470X.h:473
uint16_t raw
Definition: SI470X.h:263
void setBand(uint8_t band=1)
Sets the FM Band
Definition: SI470X.cpp:330
#define OSCILLATOR_TYPE_CRYSTAL
Definition: SI470X.h:21
int seekInterruptPin
Definition: SI470X.h:478
void getStatus()
Gets the value of the 0x0A register.
Definition: SI470X.cpp:80
#define REG07
Definition: SI470X.h:41
void reset()
Resets the device.
Definition: SI470X.cpp:118
void setMute(bool value)
Sets the Mute true or false.
Definition: SI470X.cpp:382
#define REG08
Definition: SI470X.h:42
#define MAX_DELAY_AFTER_OSCILLATOR
Definition: SI470X.h:17
void setChannel(uint16_t channel)
Sets the channel.
Definition: SI470X.cpp:238
uint8_t getChipVersion()
Gets the Chip Version.
Definition: SI470X.cpp:512
uint16_t raw
Definition: SI470X.h:295
uint8_t currentVolume
Definition: SI470X.h:476
uint16_t si470x_reg0e
RDS Block C.
Definition: SI470X.h:342
void setMono(bool value)
Sets the Mono true or false (stereo)
Definition: SI470X.cpp:394
#define REG06
Definition: SI470X.h:40
void setVolumeUp()
Increments the audio volume.
Definition: SI470X.cpp:442
void setup(int resetPin, uint8_t oscillator_type)
Starts the device.
Definition: SI470X.cpp:228
uint16_t si470x_reg0f
RDS Block D.
Definition: SI470X.h:349
uint16_t raw
Definition: SI470X.h:320
uint8_t getFirmwareVersion()
Gets the Firmware Version.
Definition: SI470X.cpp:492
#define REG0E
Definition: SI470X.h:48
uint16_t raw
Definition: SI470X.h:129
uint16_t raw
Definition: SI470X.h:161
#define REG0A
Definition: SI470X.h:44
uint8_t getVolume()
Gets the current audio volume level.
Definition: SI470X.cpp:432
uint16_t raw
Definition: SI470X.h:72
void setVolumeDown()
Decrements the audio volume.
Definition: SI470X.cpp:456
int oscillatorType
Definition: SI470X.h:479
void setSpace(uint8_t space=0)
Sets the FM Space
Definition: SI470X.cpp:347
uint16_t getRealFrequency()
Gets the frequency based on READCHAN register (0x0B)
Definition: SI470X.cpp:289
#define REG0B
Definition: SI470X.h:45
uint8_t getPartNumber()
Gets the Part Number.
Definition: SI470X.cpp:471
void setFrequency(uint16_t frequency)
Sets the frequency.
Definition: SI470X.cpp:252
uint16_t si470x_reg0d
RDS Block B.
Definition: SI470X.h:335