 |
PU2CLR SI4844 Arduino Library
1.0.9
Arduino Library for Si4844 Devices - By Ricardo Lima Caratti
|
Go to the documentation of this file.
19 #define SI4844_ADDRESS 0x11
24 #define ATDD_POWER_DOWN 0x11
25 #define ATDD_POWER_UP 0xE1
26 #define ATDD_AUDIO_MODE 0xE2
28 #define ATDD_XOSCEN 0x80
29 #define ATDD_XOWAIT 0x40
30 #define ATDD_GET_STATUS 0xE0
32 #define SET_PROPERTY 0x12
33 #define GET_PROPERTY 0x13
34 #define RX_VOLUME 0x4000
35 #define RX_HARD_MUTE 0x4001
36 #define RX_BASS_TREBLE 0x4002
37 #define RX_ACTUAL_VOLUME 0x4003
39 #define FM_SOFT_MUTE_MAX_ATTENUATION 0x1302
40 #define AM_SOFT_MUTE_MAX_ATTENUATION 0x3302
41 #define FM_DEEMPHASIS 0x1100
104 } si4844_status_response;
122 } si4844_firmware_info;
131 } si4844_firmware_response;
140 uint8_t AUDIOMODE : 2;
142 uint8_t ADJPT_ATTN : 1;
143 uint8_t ADJPT_STEO : 1;
144 uint8_t Reserved : 2;
158 uint8_t ADJPT_ATTN:1;
159 uint8_t ADJPT_STEO:1;
165 } si4844_audiomode_status_response;
190 volatile static bool data_from_si4844;
192 static void interrupt_hundler()
195 data_from_si4844 =
true;
210 si4844_status_response status_response;
211 si4844_firmware_response firmware_response;
213 uint16_t interruptPin;
216 inline void setClockLow(
void) { Wire.setClock(10000); };
217 inline void setClockHigh(
void) { Wire.setClock(50000); };
218 inline void waitInterrupt(
void);
219 inline bool isClearToSend(
void);
220 inline void waitToSend(
void);
223 const char *bandmode_table[3] = {
"FM",
"AM",
"SW"};
224 const char *stereo_indicator_table[2] = {
"Off",
"On "};
227 uint8_t bassTreble = 4;
230 void setProperty(uint16_t propertyNumber, uint16_t parameter);
232 void sendCommand(uint8_t cmd,
int parameter_size,
const uint8_t *parameter);
236 void debugDevice(uint16_t resetPin, uint16_t interruptPin, uint8_t defaultBand,
void (*showFunc)(
char *msg));
255 si4844_audiomode_status_response
256 setAudioMode(uint8_t audiomode, uint8_t fm_mono, uint8_t adjpt_attn, uint8_t adjpt_steo, uint8_t opcode);
280 inline char *
getBandMode(){
return (
char *) bandmode_table[status_response.refined.BANDMODE]; };
282 inline char *
getStereoIndicator(){
return (
char *) stereo_indicator_table[status_response.refined.STATION]; };
uint8_t HOSTRST
Definition: SI4844.h:86
uint8_t CTS
Definition: SI4844.h:87
uint16_t getFirmwareComponentMajorRevision()
Definition: SI4844.h:303
uint16_t getStatusStereo()
Definition: SI4844.h:287
void setup(uint16_t, uint16_t, byte)
Initiates the SI4844 instance and connect the device (SI4844) to Arduino.
Definition: SI4844.cpp:148
uint16_t getFirmwareErr()
Definition: SI4844.h:298
uint16_t getFirmwarePartNumber()
Definition: SI4844.h:300
uint16_t getStatusBandMode()
Definition: SI4844.h:292
#define RX_ACTUAL_VOLUME
Definition: SI4844.h:37
void powerUp(void)
Power the device up.
Definition: SI4844.cpp:264
uint16_t getStatusInformationReady()
Definition: SI4844.h:289
#define GET_PROPERTY
Definition: SI4844.h:33
void volumeDown(void)
Decreases the volume level.
Definition: SI4844.cpp:382
uint8_t FWMAJOR
Definition: SI4844.h:117
#define GET_REV
Definition: SI4844.h:27
uint8_t CMPMAJOR
Definition: SI4844.h:119
uint8_t RESERVED
Definition: SI4844.h:113
void setBassTreble(uint8_t bass_treble)
Set the sound volume level, bass and treble.
Definition: SI4844.cpp:437
#define SET_PROPERTY
Definition: SI4844.h:32
float getFrequency(void)
Get the current frequency of the radio in KHz.
Definition: SI4844.cpp:613
uint16_t value
Definition: SI4844.h:178
si4844_firmware_info refined
Definition: SI4844.h:129
#define ATDD_GET_STATUS
Definition: SI4844.h:30
uint16_t getFirmwareComponentMinorRevision()
Definition: SI4844.h:304
uint8_t BANDMODE
Definition: SI4844.h:89
uint8_t ERR
Definition: SI4844.h:114
si4844_get_status refined
Definition: SI4844.h:102
#define SI4844_ADDRESS
SI4844 ARDUINO LIBRARY
Definition: SI4844.h:19
uint8_t d4
Definition: SI4844.h:92
void setVolume(byte)
Sets the volume level.
Definition: SI4844.cpp:396
void setBand(byte)
Sets a new band to the device.
Definition: SI4844.cpp:279
void debugDevice(uint16_t resetPin, uint16_t interruptPin, uint8_t defaultBand, void(*showFunc)(char *msg))
Used to debug
Definition: SI4844.cpp:183
si4844_status_response * getStatus(void)
Get tune freq, band, and others information, status of the device.
Definition: SI4844.cpp:552
void setCustomBand(byte, uint16_t, uint16_t, byte)
This method allows you to customize the frequency range of a band.
Definition: SI4844.cpp:688
char * getStereoIndicator()
Definition: SI4844.h:282
uint8_t HOSTPWRUP
Definition: SI4844.h:85
uint8_t PN
Definition: SI4844.h:116
bool hasStatusChanged(void)
Checks whether the SI4844 has its status changed.
Definition: SI4844.cpp:659
#define FM_SOFT_MUTE_MAX_ATTENUATION
Definition: SI4844.h:39
#define AM_SOFT_MUTE_MAX_ATTENUATION
Definition: SI4844.h:40
uint8_t INFORDY
Definition: SI4844.h:84
void setProperty(uint16_t propertyNumber, uint16_t parameter)
Sends (sets) property to the SI48XX.
Definition: SI4844.cpp:25
void setFmDeemphasis(uint8_t value)
Sets de-emphasis time constant.
Definition: SI4844.cpp:768
uint8_t raw
Definition: SI4844.h:164
void setAudioMute(bool on)
Mutes the audio output.
Definition: SI4844.cpp:536
uint8_t BANDIDX
Definition: SI4844.h:88
#define RX_VOLUME
Definition: SI4844.h:34
uint16_t getFirmwareChipRevision()
Definition: SI4844.h:305
void powerDown(void)
Power the device down.
Definition: SI4844.cpp:247
uint16_t getStatusBandIndex()
Definition: SI4844.h:293
uint8_t raw
Definition: SI4844.h:69
uint16_t getFirmwareReserved()
Definition: SI4844.h:297
uint16_t getStatusBCFG1()
Definition: SI4844.h:286
#define RX_BASS_TREBLE
Definition: SI4844.h:36
uint8_t BCFG0
Definition: SI4844.h:80
uint8_t FWMINOR
Definition: SI4844.h:118
uint16_t getFirmwareMinorRevision()
Definition: SI4844.h:302
uint8_t d3
Definition: SI4844.h:93
void bassTrebleUp()
More treble, less bass.
Definition: SI4844.cpp:456
void volumeUp(void)
Increases the volume level.
Definition: SI4844.cpp:371
void getCommandResponse(int response_size, uint8_t *response)
Returns with the command response.
Definition: SI4844.cpp:118
uint8_t CMPMINOR
Definition: SI4844.h:120
#define ATDD_POWER_UP
Definition: SI4844.h:25
uint8_t d2
Definition: SI4844.h:90
uint8_t raw[4]
Definition: SI4844.h:103
uint16_t getStatusBCFG0()
Definition: SI4844.h:285
void changeVolume(char)
Up or down the sound volume level.
Definition: SI4844.cpp:346
void bassTrebleDown()
Less treble, more bass.
Definition: SI4844.cpp:445
void audioMute(uint8_t value)
Mutes the audio output.
Definition: SI4844.cpp:525
SI4844 Class.
Definition: SI4844.h:205
void resetStatus(void)
set the interrupr status to false. It will turn true after next interrupr
Definition: SI4844.cpp:668
#define ATDD_POWER_DOWN
Definition: SI4844.h:24
uint16_t getStatusHostPowerUp()
Definition: SI4844.h:290
uint8_t raw[9]
Definition: SI4844.h:130
uint16_t getStatusCTS()
Definition: SI4844.h:294
uint8_t raw
Definition: SI4844.h:147
uint16_t getFirmwareMajorRevision()
Definition: SI4844.h:301
si4844_audiomode_status_response setAudioMode(uint8_t audiomode, uint8_t fm_mono, uint8_t adjpt_attn, uint8_t adjpt_steo, uint8_t opcode)
Set audio mode.
Definition: SI4844.cpp:488
uint16_t getProperty(uint16_t propertyNumber)
Gets a given property from the SI4844.
Definition: SI4844.cpp:54
uint8_t CTS
Definition: SI4844.h:115
char * getBandMode()
Definition: SI4844.h:280
uint8_t STEREO
Definition: SI4844.h:82
#define ATDD_AUDIO_MODE
Definition: SI4844.h:26
uint8_t d1
Definition: SI4844.h:91
si4844_firmware_response * getFirmware(void)
Get part number, chip revision, firmware, patch, and component revision numbers.
Definition: SI4844.cpp:585
uint8_t getVolume()
Gets the current audio volume level.
Definition: SI4844.h:276
uint8_t CHIPREV
Definition: SI4844.h:121
uint16_t getStatusStationIndicator()
Definition: SI4844.h:288
#define FM_DEEMPHASIS
Definition: SI4844.h:41
uint8_t getVolumeProperty()
Gets the current volume value stored in SI4844 device.
Definition: SI4844.cpp:413
void sendCommand(uint8_t cmd, int parameter_size, const uint8_t *parameter)
Sends a given command to the SI4844 device.
Definition: SI4844.cpp:96
uint16_t getFirmwareCTS()
Definition: SI4844.h:299
uint8_t STATION
Definition: SI4844.h:83
#define RX_HARD_MUTE
Definition: SI4844.h:35
uint8_t BCFG1
Definition: SI4844.h:81
void setFmSoftMuteMaxAttenuation(uint8_t value)
FM Soft Mute Maximum Attenuation.
Definition: SI4844.cpp:756
uint16_t getStatusHostReset()
Definition: SI4844.h:291
void setAmSoftMuteMaxAttenuation(uint8_t value)
Sets AM Soft Mute Max Attenuation..
Definition: SI4844.cpp:745
void reset(void)
Resets the SI4844 device.
Definition: SI4844.cpp:226