AD2ch Module library for MCU Gear with LPC1114. It contains wiring data.

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers AD2chModuleLPC1114.cpp Source File

AD2chModuleLPC1114.cpp

00001 
00002 #include "mbed.h"
00003 #include "MCUGearALPC1114.h"
00004 #include "MCUGearBaseALPC1114.h"
00005 #include "AD2chModuleLPC1114.h"
00006 
00007 AD2chModule::AD2chModule(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 AD2chModule::initAD2ch(MCUGear *mcugear){
00019     
00020        cs = 1;
00021        
00022        //12bit SPI DA module----------------
00023        spi.frequency(2000000); //1MHz
00024 }
00025 
00026 int AD2chModule::readADm(MCUGear *mcugear, char ch){
00027 
00028     char sendData;
00029     int whoami[3];
00030     
00031 //    spi.frequency(2000000); //1MHz
00032     if(ch == 0){
00033         sendData = 0x80;
00034     }else if(ch == 1){
00035         sendData = 0xC0;
00036     }else{
00037         return -1;
00038     }
00039     
00040     //12bit AD Mobdule----------------
00041     //cs = 1; //reset CS pin
00042 //    mcugear->connectModule();   //connect---
00043     
00044     cs = 0; 
00045     //FRDM KL25Z is 8-bit format.
00046     whoami[2] = spi.write(0x01);//0000 0001
00047     whoami[2] = spi.write(sendData);
00048     whoami[0] = whoami[2]<<8;
00049     whoami[0] = whoami[0] + spi.write(0x00) - 0xE000;//0000 0000
00050 //    whoami[2] = 0;//clear buffer
00051     cs = 1;
00052 //    mcugear->disconnectModule();   //disconnect---
00053     return whoami[0];
00054     
00055 }
00056 
00057 int AD2chModule::readADa(MCUGear *mcugear, char ch){
00058 
00059     char sendData;
00060     int whoami[3];
00061     
00062     spi.frequency(2000000); //1MHz
00063     if(ch == 0){
00064         sendData = 0x80;
00065     }else if(ch == 1){
00066         sendData = 0xC0;
00067     }else{
00068         return -1;
00069     }
00070     
00071     //12bit AD Mobdule----------------
00072     cs = 1; //reset CS pin
00073     mcugear->connectModuleA();   //connect---
00074     
00075     cs = 0; 
00076     //FRDM KL25Z is 8-bit format.
00077     whoami[2] = spi.write(0x01);//0000 0001
00078     whoami[2] = spi.write(sendData);
00079     whoami[0] = whoami[2]<<8;
00080     whoami[0] = whoami[0] + spi.write(0x00) - 0xE000;//0000 0000
00081 //    whoami[2] = 0;//clear buffer
00082     cs = 1;
00083     mcugear->disconnectModule();   //disconnect---
00084     return whoami[0];
00085     
00086 }