Library for KT0915, DSP radio IC
KT0915.h@1:bf3cbe137051, 2018-01-09 (annotated)
- Committer:
- ritarosakai
- Date:
- Tue Jan 09 11:48:49 2018 +0000
- Revision:
- 1:bf3cbe137051
- Parent:
- 0:e5bccd46b6db
- Child:
- 2:108a1ae04859
Fixed comment
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ritarosakai | 0:e5bccd46b6db | 1 | #ifndef __KT0915_H |
ritarosakai | 0:e5bccd46b6db | 2 | #define __KT0915_H |
ritarosakai | 0:e5bccd46b6db | 3 | |
ritarosakai | 0:e5bccd46b6db | 4 | #include "mbed.h" |
ritarosakai | 0:e5bccd46b6db | 5 | |
ritarosakai | 0:e5bccd46b6db | 6 | #define KT0915_address 0x6A |
ritarosakai | 0:e5bccd46b6db | 7 | |
ritarosakai | 0:e5bccd46b6db | 8 | /** Library for KT0915 |
ritarosakai | 0:e5bccd46b6db | 9 | */ |
ritarosakai | 0:e5bccd46b6db | 10 | class KT0915 |
ritarosakai | 0:e5bccd46b6db | 11 | { |
ritarosakai | 0:e5bccd46b6db | 12 | public: |
ritarosakai | 0:e5bccd46b6db | 13 | /** Create a KT0915 instance connected to specified I2C pins |
ritarosakai | 0:e5bccd46b6db | 14 | * |
ritarosakai | 0:e5bccd46b6db | 15 | * @param sda I2C-bus SDA pin |
ritarosakai | 0:e5bccd46b6db | 16 | * @param scl I2C-bus SCL pin |
ritarosakai | 0:e5bccd46b6db | 17 | */ |
ritarosakai | 0:e5bccd46b6db | 18 | KT0915(PinName sda,PinName scl); |
ritarosakai | 0:e5bccd46b6db | 19 | /**Initize KT0915 |
ritarosakai | 0:e5bccd46b6db | 20 | * |
ritarosakai | 0:e5bccd46b6db | 21 | *Set paramaters below |
ritarosakai | 0:e5bccd46b6db | 22 | * |
ritarosakai | 0:e5bccd46b6db | 23 | *0x02:0b0000000000000111 FM space:100KHz, R/L mute:disable |
ritarosakai | 0:e5bccd46b6db | 24 | * |
ritarosakai | 0:e5bccd46b6db | 25 | *0x04:0b1110000010010000 FM/AM/device mute:disable, bass:disable DAC cap:60uF |
ritarosakai | 0:e5bccd46b6db | 26 | * |
ritarosakai | 0:e5bccd46b6db | 27 | *0x05:0b1001100000100000 Mono:enable, de-emphasis:50uF, blend:disable |
ritarosakai | 0:e5bccd46b6db | 28 | * |
ritarosakai | 0:e5bccd46b6db | 29 | *0x0A:0b0000010000000000 LDO:highest, FM AFC:enable |
ritarosakai | 0:e5bccd46b6db | 30 | * |
ritarosakai | 0:e5bccd46b6db | 31 | *0x0C:0b0000000000101100 FM wide freq:enable |
ritarosakai | 0:e5bccd46b6db | 32 | * |
ritarosakai | 0:e5bccd46b6db | 33 | *0x0F:0b1000100000000000 Stanby:disable, volume:0 |
ritarosakai | 0:e5bccd46b6db | 34 | * |
ritarosakai | 0:e5bccd46b6db | 35 | *0x22:0b1010001011101100 AM AGC fast win:fastest, AM AGC short win:slowest |
ritarosakai | 0:e5bccd46b6db | 36 | * |
ritarosakai | 0:e5bccd46b6db | 37 | *AM bandwidth:6KHz, AM gain:12dB, Left Inverse Control:enable |
ritarosakai | 0:e5bccd46b6db | 38 | * |
ritarosakai | 1:bf3cbe137051 | 39 | *0x23:0bxxx111xxxxxxxxxx low th:B |
ritarosakai | 0:e5bccd46b6db | 40 | * |
ritarosakai | 0:e5bccd46b6db | 41 | *0x2E:0b0010100010001100 softmute:fast, AM softmute start level:0b100 |
ritarosakai | 0:e5bccd46b6db | 42 | * |
ritarosakai | 0:e5bccd46b6db | 43 | *softmute target volume:0b0100, softmute mode:RSSI, FM softmute start threshold:0b100 |
ritarosakai | 0:e5bccd46b6db | 44 | * |
ritarosakai | 0:e5bccd46b6db | 45 | *0x33:0b0101010000000001 AM space:9KHz |
ritarosakai | 0:e5bccd46b6db | 46 | * |
ritarosakai | 1:bf3cbe137051 | 47 | *0x3F:0bxxxxxxxxx001x011 RF AGC patch |
ritarosakai | 0:e5bccd46b6db | 48 | */ |
ritarosakai | 0:e5bccd46b6db | 49 | |
ritarosakai | 0:e5bccd46b6db | 50 | void init(void); |
ritarosakai | 0:e5bccd46b6db | 51 | |
ritarosakai | 0:e5bccd46b6db | 52 | /**read KT0915_WHO_AM_I |
ritarosakai | 0:e5bccd46b6db | 53 | * |
ritarosakai | 0:e5bccd46b6db | 54 | *return 0x4B54 |
ritarosakai | 0:e5bccd46b6db | 55 | */ |
ritarosakai | 0:e5bccd46b6db | 56 | int getID(void); |
ritarosakai | 0:e5bccd46b6db | 57 | |
ritarosakai | 0:e5bccd46b6db | 58 | /**set volume |
ritarosakai | 0:e5bccd46b6db | 59 | * |
ritarosakai | 0:e5bccd46b6db | 60 | *vol...0~31 |
ritarosakai | 0:e5bccd46b6db | 61 | */ |
ritarosakai | 0:e5bccd46b6db | 62 | void set_vol(int vol); |
ritarosakai | 0:e5bccd46b6db | 63 | |
ritarosakai | 0:e5bccd46b6db | 64 | /**set frequency and tune |
ritarosakai | 0:e5bccd46b6db | 65 | * |
ritarosakai | 0:e5bccd46b6db | 66 | *AM...mode=1, freq=frequency (KHz) |
ritarosakai | 0:e5bccd46b6db | 67 | * |
ritarosakai | 0:e5bccd46b6db | 68 | *FM...mode=0, freq=100*frequency (MHz) |
ritarosakai | 0:e5bccd46b6db | 69 | */ |
ritarosakai | 0:e5bccd46b6db | 70 | void set_freq(bool mode,int freq); |
ritarosakai | 0:e5bccd46b6db | 71 | |
ritarosakai | 0:e5bccd46b6db | 72 | /**read RSSI (dB) |
ritarosakai | 0:e5bccd46b6db | 73 | * |
ritarosakai | 0:e5bccd46b6db | 74 | *AM...mode=0 |
ritarosakai | 0:e5bccd46b6db | 75 | * |
ritarosakai | 0:e5bccd46b6db | 76 | *FM...mode=1 |
ritarosakai | 0:e5bccd46b6db | 77 | */ |
ritarosakai | 0:e5bccd46b6db | 78 | int get_rssi(bool mode); |
ritarosakai | 0:e5bccd46b6db | 79 | |
ritarosakai | 0:e5bccd46b6db | 80 | /**read SNR (dB) |
ritarosakai | 0:e5bccd46b6db | 81 | * |
ritarosakai | 0:e5bccd46b6db | 82 | *for FM only |
ritarosakai | 0:e5bccd46b6db | 83 | */ |
ritarosakai | 0:e5bccd46b6db | 84 | int get_snr(bool mode); |
ritarosakai | 0:e5bccd46b6db | 85 | |
ritarosakai | 0:e5bccd46b6db | 86 | /**read Chip Ready Indicator |
ritarosakai | 0:e5bccd46b6db | 87 | * |
ritarosakai | 0:e5bccd46b6db | 88 | *0...Chip is not ready. |
ritarosakai | 0:e5bccd46b6db | 89 | * |
ritarosakai | 0:e5bccd46b6db | 90 | *1...Chip is ready. |
ritarosakai | 0:e5bccd46b6db | 91 | */ |
ritarosakai | 0:e5bccd46b6db | 92 | bool get_ready(void); |
ritarosakai | 0:e5bccd46b6db | 93 | |
ritarosakai | 0:e5bccd46b6db | 94 | /**re-cali*/ |
ritarosakai | 0:e5bccd46b6db | 95 | void cali(void); |
ritarosakai | 0:e5bccd46b6db | 96 | |
ritarosakai | 0:e5bccd46b6db | 97 | private: |
ritarosakai | 0:e5bccd46b6db | 98 | I2C _KT0915; |
ritarosakai | 0:e5bccd46b6db | 99 | void write_reg(int memory_address,int data1,int data2); |
ritarosakai | 0:e5bccd46b6db | 100 | void read_reg(int memory_address,int *data1,int *data2); |
ritarosakai | 0:e5bccd46b6db | 101 | }; |
ritarosakai | 0:e5bccd46b6db | 102 | |
ritarosakai | 0:e5bccd46b6db | 103 | #endif |