Library for Silicon Labs Si47xx AM/FM receiver. I tested Si4730 and Si4735.

Committer:
matsujirushi
Date:
Sun Sep 06 05:39:04 2015 +0000
Revision:
3:4873fd430c38
Parent:
2:d0de9c9c66a8
Add setProperty().

Who changed what in which revision?

UserRevisionLine numberNew contents of line
matsujirushi 0:0672d41196db 1 #ifndef MJ_SI47XX_H
matsujirushi 0:0672d41196db 2 #define MJ_SI47XX_H
matsujirushi 0:0672d41196db 3
matsujirushi 0:0672d41196db 4 #include "mbed.h"
matsujirushi 0:0672d41196db 5
matsujirushi 0:0672d41196db 6 class MjSi47xx
matsujirushi 0:0672d41196db 7 {
matsujirushi 0:0672d41196db 8 public:
matsujirushi 1:c2a5efba43bc 9 enum FunctionType {
matsujirushi 1:c2a5efba43bc 10 FUNCTION_FM,
matsujirushi 1:c2a5efba43bc 11 FUNCTION_AM,
matsujirushi 1:c2a5efba43bc 12 };
matsujirushi 3:4873fd430c38 13
matsujirushi 3:4873fd430c38 14 enum PropertyType {
matsujirushi 3:4873fd430c38 15 PROPERTY_RX_HARD_MUTE = 0x4001,
matsujirushi 3:4873fd430c38 16 };
matsujirushi 1:c2a5efba43bc 17
matsujirushi 1:c2a5efba43bc 18 public:
matsujirushi 0:0672d41196db 19 MjSi47xx(I2C* i2c, uint8_t address, DigitalOut* rst_n);
matsujirushi 0:0672d41196db 20 void reset();
matsujirushi 1:c2a5efba43bc 21 bool powerUp(FunctionType func);
matsujirushi 3:4873fd430c38 22 bool setProperty(PropertyType property, uint16_t value);
matsujirushi 1:c2a5efba43bc 23 bool getIntStatus(bool* stcInt);
matsujirushi 1:c2a5efba43bc 24 bool fmTuneFrequency(float frequency);
matsujirushi 1:c2a5efba43bc 25 bool fmTuneStatus(float* frequency, uint8_t* rssi = NULL, uint8_t* snr = NULL, uint8_t* multipath = NULL);
matsujirushi 1:c2a5efba43bc 26 bool amTuneFrequency(float frequency);
matsujirushi 1:c2a5efba43bc 27 bool amTuneStatus(float* frequency, uint8_t* rssi = NULL, uint8_t* snr = NULL);
matsujirushi 0:0672d41196db 28
matsujirushi 0:0672d41196db 29 private:
matsujirushi 0:0672d41196db 30 I2C *i2c;
matsujirushi 0:0672d41196db 31 uint8_t address;
matsujirushi 0:0672d41196db 32 DigitalOut* rst_n;
matsujirushi 0:0672d41196db 33
matsujirushi 0:0672d41196db 34 void writeCmd(uint8_t cmd, const uint8_t* argv = NULL, size_t argc = 0);
matsujirushi 0:0672d41196db 35 void readRes(uint8_t* status, uint8_t *resv = NULL, size_t resc = 0);
matsujirushi 0:0672d41196db 36
matsujirushi 0:0672d41196db 37 };
matsujirushi 0:0672d41196db 38
matsujirushi 0:0672d41196db 39 #endif