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

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers AD8chModuleLPC1114.cpp Source File

AD8chModuleLPC1114.cpp

00001 
00002 #include "mbed.h"
00003 #include "MCUGearALPC1114.h"
00004 #include "MCUGearBaseALPC1114.h"
00005 #include "AD8chModuleLPC1114.h"
00006 
00007 AD8chModule::AD8chModule(SPI _spi, PinName _cs, MCUGear *mcugear)
00008     :spi(_spi),cs(_cs) {
00009         
00010     //miso,mosi,sck,cs
00011     mcugear->setWireA(IOMISO, IO_REG_IN_DIR, 0);
00012     mcugear->setWireA(IOMOSI, IO_REG_OUT_DIR, 1);
00013     mcugear->setWireA(IOSCK, IO_REG_OUT_DIR,2);
00014     mcugear->setWireA(IOCS, IO_REG_OUT_DIR,3);
00015 }
00016 
00017 
00018 void AD8chModule::initAD8ch(MCUGear *mcugear){
00019        cs = 1;
00020        spi.frequency(2000000); //1MHz
00021 }
00022 
00023 int AD8chModule::readADm(MCUGear *mcugear, char ch){
00024 
00025     char sendData;
00026     int whoami[3];
00027     char sendData2;
00028     
00029     //0000 0000 0110 00 00 [0000 0000 0000]
00030     
00031     if(ch < 8){
00032         sendData = 0x18+ch; //0001 1000
00033         sendData2 = sendData >> 2;
00034         sendData = sendData << 6;
00035         
00036     }else{
00037         return -1;
00038     }
00039     
00040     //12bit AD Mobdule----------------
00041     //mcugear->connectModule();   //connect---
00042     cs = 0;
00043     spi.write(sendData2);
00044     whoami[2] = spi.write(sendData);
00045     whoami[0] = whoami[2]<<8;
00046     whoami[0] = whoami[0] + spi.write(0x00)-0xE000;   //get data from AD device
00047     cs = 1;
00048     //mcugear->disconnectModule();   //disconnect---
00049     return whoami[0];
00050     
00051 }
00052 
00053 int AD8chModule::readADa(MCUGear *mcugear, char ch){
00054 
00055     char sendData;
00056     int whoami[3];
00057     char sendData2;
00058     
00059     //0000 0000 0110 00 00 [0000 0000 0000]
00060     
00061     if(ch < 8){
00062         sendData = 0x18+ch; //0001 1000
00063         sendData2 = sendData >> 2;
00064         sendData = sendData << 6;
00065         
00066     }else{
00067         return -1;
00068     }
00069     
00070     //12bit AD Mobdule----------------
00071     spi.frequency(2000000); //1MHz
00072     cs = 1; //reset CS pin
00073     mcugear->connectModuleA();   //connect---
00074     cs = 0;
00075     spi.write(sendData2);
00076     whoami[2] = spi.write(sendData);
00077     whoami[0] = whoami[2]<<8;
00078     whoami[0] = whoami[0] + spi.write(0x00)-0xE000;   //get data from AD device
00079     cs = 1;
00080     mcugear->disconnectModule();   //disconnect---
00081     return whoami[0];
00082     
00083 }