DA module library for MCU Gear with LPC1114FN28. This library contains wiring setting function.

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers DAmoduleLPC1114.cpp Source File

DAmoduleLPC1114.cpp

00001 
00002 #include "mbed.h"
00003 #include "MCUGearALPC1114.h"
00004 #include "MCUGearBaseALPC1114.h"
00005 #include "DAmoduleLPC1114.h"
00006 
00007 DAmodule::DAmodule(SPI _spi, PinName _cs, PinName _dout1, MCUGear *mcugear)
00008     :spi(_spi),cs(_cs), dout1(_dout1) {
00009         
00010     //Dout,mosi,sck,cs
00011     mcugear->setWireA(IOout1, IO_REG_OUT_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 DAmodule::initDA(MCUGear *mcugear){
00019     
00020        cs = 1;
00021        dout1=1;    //reset ratch signal
00022        
00023        //12bit SPI DA module----------------
00024        spi.frequency(20000000); //10MHz
00025 }
00026 
00027 void DAmodule::writeDAm(MCUGear *mcugear, int data){
00028 
00029        //12bit SPI DA module----------------
00030        //DA signl uses the data of AD 0ch. 
00031        //cs = 1;
00032        //dout1=1;    //reset ratch signal
00033        
00034        //12bit SPI DA module----------------
00035        //spi.frequency(20000000); //10MHz
00036        //connection
00037        //mcugear->connectModuleA();   //connect---
00038        cs = 0;
00039        spi.write((0x30)+((data>>8)&0x0F));//write 0011 0000
00040        spi.write(data&0xFF);//write 0011 1000 0000 0000
00041 
00042        wait_us(1);  //over 15nsec
00043        cs = 1;      //CS high
00044        wait_us(1);  //over 40nsec
00045        dout1=0;      //ratch for DA out enable
00046        wait_us(1);  //over 100nsec
00047        dout1=1;      //reset ratch signal
00048        //mcugear->disconnectModule();   //disconnect---
00049        //wait_us(1);  //wait after disconnect
00050 }
00051 
00052 void DAmodule::writeDAa(MCUGear *mcugear, int data){
00053 
00054        //12bit SPI DA module----------------
00055        //DA signl uses the data of AD 0ch. 
00056        cs = 1;
00057        dout1=1;    //reset ratch signal
00058        
00059        //12bit SPI DA module----------------
00060        spi.frequency(20000000); //10MHz
00061        //connection
00062        mcugear->connectModuleA();   //connect---
00063        cs = 0;
00064        spi.write((0x30)+((data>>8)&0x0F));//write 0011 0000
00065        spi.write(data&0xFF);//write 0011 1000 0000 0000
00066 
00067        wait_us(1);  //over 15nsec
00068        cs = 1;      //CS high
00069        wait_us(1);  //over 40nsec
00070        dout1=0;      //ratch for DA out enable
00071        wait_us(1);  //over 100nsec
00072        dout1=1;      //reset ratch signal
00073        mcugear->disconnectModule();   //disconnect---
00074 }