DA module library for MCU Gear with LPC1114FN28. This library contains wiring setting function.
Embed:
(wiki syntax)
Show/hide line numbers
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 }
Generated on Sun Jul 17 2022 17:45:35 by 1.7.2