FM-test

Dependencies:   MODSERIAL mbed-rtos mbed

Fork of Master by Ohnishi_Gundan

Committer:
9uS7
Date:
Mon Sep 15 02:45:54 2014 +0000
Revision:
12:168338a29373
Parent:
11:b8d46d371937
Child:
13:3f0505bbe284
can fm transmit; already debuged

Who changed what in which revision?

UserRevisionLine numberNew contents of line
9uS7 0:4f07ba929908 1 #include "mbed.h"
9uS7 0:4f07ba929908 2 #include "fm.h"
9uS7 0:4f07ba929908 3
9uS7 0:4f07ba929908 4
9uS7 1:e1cfb5850088 5 I2C i2c(p9,p10); // SDA,SCI
9uS7 1:e1cfb5850088 6
9uS7 8:bfcfda6b38fe 7 DigitalOut f_led1(LED1);
9uS7 8:bfcfda6b38fe 8
9uS7 2:c610e1a7fbcd 9 void fmSetup(unsigned int _f)
9uS7 0:4f07ba929908 10 {
9uS7 1:e1cfb5850088 11 char freqH = 0, freqL = 0;//, c, i;
9uS7 11:b8d46d371937 12 unsigned int freq, freqB;
9uS7 11:b8d46d371937 13 const int addr = 0x11; //slave address
9uS7 11:b8d46d371937 14 const int i2c_write = (addr << 1) | I2C_WRITE;
9uS7 11:b8d46d371937 15 const int i2c_read = (addr << 1) | I2C_READ;
9uS7 8:bfcfda6b38fe 16
9uS7 0:4f07ba929908 17 freq = _f; //freq/10.MHz 760~910
9uS7 11:b8d46d371937 18
9uS7 11:b8d46d371937 19 freq = _f; // 89.2 MHz
9uS7 0:4f07ba929908 20 if(freq > 870){
9uS7 11:b8d46d371937 21 freqB = freq - 870;
9uS7 11:b8d46d371937 22 freqH = freqB>>2;
9uS7 11:b8d46d371937 23 freqL = (freqB&3)<<6; // Shift channel selection for matching register 0x03
9uS7 0:4f07ba929908 24 }else{
9uS7 0:4f07ba929908 25 freqB = freq-760;
9uS7 0:4f07ba929908 26 freqH = freqB>>2;
9uS7 0:4f07ba929908 27 freqL = (freqB&3)<<6;
9uS7 0:4f07ba929908 28 }
9uS7 11:b8d46d371937 29
9uS7 0:4f07ba929908 30 i2c.start();
9uS7 11:b8d46d371937 31 i2c.write(i2c_write);
9uS7 0:4f07ba929908 32 i2c.write(0x02);
9uS7 12:168338a29373 33 i2c.write(0xC0);
9uS7 0:4f07ba929908 34 i2c.write(0x0D);
9uS7 0:4f07ba929908 35 i2c.stop();
9uS7 0:4f07ba929908 36 wait(0.5);
9uS7 0:4f07ba929908 37
9uS7 0:4f07ba929908 38 if(freq > 870){
9uS7 0:4f07ba929908 39 freqL=freqL | 0x10;
9uS7 0:4f07ba929908 40 }else{
9uS7 0:4f07ba929908 41 freqL=freqL | 0x14;
9uS7 0:4f07ba929908 42 }
9uS7 0:4f07ba929908 43 i2c.start();
9uS7 11:b8d46d371937 44 i2c.write(i2c_write);
9uS7 0:4f07ba929908 45 i2c.write(0x03);
9uS7 0:4f07ba929908 46 i2c.write(freqH);
9uS7 0:4f07ba929908 47 i2c.write(freqL);
9uS7 0:4f07ba929908 48 i2c.stop();
9uS7 0:4f07ba929908 49 wait(0.5);
9uS7 0:4f07ba929908 50
9uS7 11:b8d46d371937 51 //Transmitter mode
9uS7 0:4f07ba929908 52 i2c.start();
9uS7 11:b8d46d371937 53 i2c.write(i2c_write);
9uS7 0:4f07ba929908 54 i2c.write(0x40);
9uS7 11:b8d46d371937 55 i2c.write(0x00);
9uS7 11:b8d46d371937 56 i2c.write(0x01);
9uS7 0:4f07ba929908 57 i2c.stop();
9uS7 0:4f07ba929908 58 wait(0.5);
9uS7 11:b8d46d371937 59
9uS7 11:b8d46d371937 60 //configure each gain
9uS7 0:4f07ba929908 61 i2c.start();
9uS7 11:b8d46d371937 62 i2c.write(i2c_write);
9uS7 0:4f07ba929908 63 i2c.write(0x42);
9uS7 11:b8d46d371937 64 i2c.write(0x02); //audio gain
9uS7 11:b8d46d371937 65 i2c.write(0x0F); //antenna gain
9uS7 0:4f07ba929908 66 i2c.stop();
9uS7 0:4f07ba929908 67
9uS7 0:4f07ba929908 68 wait(0.5);
9uS7 11:b8d46d371937 69
9uS7 11:b8d46d371937 70 f_led1 = 1;
9uS7 0:4f07ba929908 71 }