Library for Silicon Labs Si47xx AM/FM receiver. I tested Si4730 and Si4735.
MjSi47xx.h@3:4873fd430c38, 2015-09-06 (annotated)
- 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?
User | Revision | Line number | New 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 |