MCUGear 12bit AD 8ch module for LPC1114. It contains wiring data.

Committer:
Info
Date:
Tue May 06 13:39:10 2014 +0000
Revision:
0:7a613ce304cd
MCUGear 12bit AD 8ch module for LPC1114.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Info 0:7a613ce304cd 1
Info 0:7a613ce304cd 2 #include "mbed.h"
Info 0:7a613ce304cd 3 #include "MCUGearALPC1114.h"
Info 0:7a613ce304cd 4 #include "MCUGearBaseALPC1114.h"
Info 0:7a613ce304cd 5 #include "AD8chModuleLPC1114.h"
Info 0:7a613ce304cd 6
Info 0:7a613ce304cd 7 AD8chModule::AD8chModule(SPI _spi, PinName _cs, MCUGear *mcugear)
Info 0:7a613ce304cd 8 :spi(_spi),cs(_cs) {
Info 0:7a613ce304cd 9
Info 0:7a613ce304cd 10 //miso,mosi,sck,cs
Info 0:7a613ce304cd 11 mcugear->setWireA(IOMISO, IO_REG_IN_DIR, 0);
Info 0:7a613ce304cd 12 mcugear->setWireA(IOMOSI, IO_REG_OUT_DIR, 1);
Info 0:7a613ce304cd 13 mcugear->setWireA(IOSCK, IO_REG_OUT_DIR,2);
Info 0:7a613ce304cd 14 mcugear->setWireA(IOCS, IO_REG_OUT_DIR,3);
Info 0:7a613ce304cd 15 }
Info 0:7a613ce304cd 16
Info 0:7a613ce304cd 17
Info 0:7a613ce304cd 18 void AD8chModule::initAD8ch(MCUGear *mcugear){
Info 0:7a613ce304cd 19 cs = 1;
Info 0:7a613ce304cd 20 spi.frequency(2000000); //1MHz
Info 0:7a613ce304cd 21 }
Info 0:7a613ce304cd 22
Info 0:7a613ce304cd 23 int AD8chModule::readADm(MCUGear *mcugear, char ch){
Info 0:7a613ce304cd 24
Info 0:7a613ce304cd 25 char sendData;
Info 0:7a613ce304cd 26 int whoami[3];
Info 0:7a613ce304cd 27 char sendData2;
Info 0:7a613ce304cd 28
Info 0:7a613ce304cd 29 //0000 0000 0110 00 00 [0000 0000 0000]
Info 0:7a613ce304cd 30
Info 0:7a613ce304cd 31 if(ch < 8){
Info 0:7a613ce304cd 32 sendData = 0x18+ch; //0001 1000
Info 0:7a613ce304cd 33 sendData2 = sendData >> 2;
Info 0:7a613ce304cd 34 sendData = sendData << 6;
Info 0:7a613ce304cd 35
Info 0:7a613ce304cd 36 }else{
Info 0:7a613ce304cd 37 return -1;
Info 0:7a613ce304cd 38 }
Info 0:7a613ce304cd 39
Info 0:7a613ce304cd 40 //12bit AD Mobdule----------------
Info 0:7a613ce304cd 41 //mcugear->connectModule(); //connect---
Info 0:7a613ce304cd 42 cs = 0;
Info 0:7a613ce304cd 43 spi.write(sendData2);
Info 0:7a613ce304cd 44 whoami[2] = spi.write(sendData);
Info 0:7a613ce304cd 45 whoami[0] = whoami[2]<<8;
Info 0:7a613ce304cd 46 whoami[0] = whoami[0] + spi.write(0x00)-0xE000; //get data from AD device
Info 0:7a613ce304cd 47 cs = 1;
Info 0:7a613ce304cd 48 //mcugear->disconnectModule(); //disconnect---
Info 0:7a613ce304cd 49 return whoami[0];
Info 0:7a613ce304cd 50
Info 0:7a613ce304cd 51 }
Info 0:7a613ce304cd 52
Info 0:7a613ce304cd 53 int AD8chModule::readADa(MCUGear *mcugear, char ch){
Info 0:7a613ce304cd 54
Info 0:7a613ce304cd 55 char sendData;
Info 0:7a613ce304cd 56 int whoami[3];
Info 0:7a613ce304cd 57 char sendData2;
Info 0:7a613ce304cd 58
Info 0:7a613ce304cd 59 //0000 0000 0110 00 00 [0000 0000 0000]
Info 0:7a613ce304cd 60
Info 0:7a613ce304cd 61 if(ch < 8){
Info 0:7a613ce304cd 62 sendData = 0x18+ch; //0001 1000
Info 0:7a613ce304cd 63 sendData2 = sendData >> 2;
Info 0:7a613ce304cd 64 sendData = sendData << 6;
Info 0:7a613ce304cd 65
Info 0:7a613ce304cd 66 }else{
Info 0:7a613ce304cd 67 return -1;
Info 0:7a613ce304cd 68 }
Info 0:7a613ce304cd 69
Info 0:7a613ce304cd 70 //12bit AD Mobdule----------------
Info 0:7a613ce304cd 71 spi.frequency(2000000); //1MHz
Info 0:7a613ce304cd 72 cs = 1; //reset CS pin
Info 0:7a613ce304cd 73 mcugear->connectModuleA(); //connect---
Info 0:7a613ce304cd 74 cs = 0;
Info 0:7a613ce304cd 75 spi.write(sendData2);
Info 0:7a613ce304cd 76 whoami[2] = spi.write(sendData);
Info 0:7a613ce304cd 77 whoami[0] = whoami[2]<<8;
Info 0:7a613ce304cd 78 whoami[0] = whoami[0] + spi.write(0x00)-0xE000; //get data from AD device
Info 0:7a613ce304cd 79 cs = 1;
Info 0:7a613ce304cd 80 mcugear->disconnectModule(); //disconnect---
Info 0:7a613ce304cd 81 return whoami[0];
Info 0:7a613ce304cd 82
Info 0:7a613ce304cd 83 }