Last active
September 7, 2021 09:44
-
-
Save dj1711572002/49837a5b19ac8151bce3af932f267284 to your computer and use it in GitHub Desktop.
TEXAS ADC ADS122U04 mbed LPC1768 1CH Sample Program
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//----------------Texsus ADS122U04-------------------------- | |
#include "mbed.h" | |
Serial pc(USBTX,USBRX); | |
Serial device(p9, p10);//p9TX p10RX | |
DigitalOut myled(LED1); | |
InterruptIn DRDY(p8);//DataRdy Pin | |
Timer t; | |
int RREGwait; | |
uint8_t RR0,RR1,RR2,RR3,RR4; | |
int DRDYflag=0; | |
//==================InterruptIn DRDY==================== | |
void flip() { | |
device.putc(0x55); | |
device.putc(0x10); | |
wait_us(10); | |
uint8_t d0=device.getc(); | |
//wait_us(100); | |
uint8_t d1=device.getc(); | |
wait_us(10); | |
uint8_t d2=device.getc(); | |
wait_us(10); | |
int data=d0+d1*256+d2*65536; | |
//pc.printf("d0=%x,d1=%x,d2=%x,data=%d\n\r",d0,d1,d2,data); | |
pc.printf("%d,%8.0f\n\r",data,t.read_us()); | |
//myled = !myled; | |
//pc.printf("-------------DRDY Falled----------------\n\r"); | |
} | |
//=========================================================== | |
int main() { | |
pc.baud(115200); | |
device.baud(115200); | |
DRDY.fall(&flip); // attach the address of the flip function to the rising edge | |
//ADS122U04 RESET | |
device.putc(0x55); | |
device.putc(0x06); | |
wait_us(1000); | |
// | |
//================Register Setting============================================================================= | |
RREGwait=500;//RREG wait time usec 2*Tbaud(10usec) | |
//-----Register00[7:4(MUX)3:1(GAIN)0(PGA_BYPASS)]-------------------------------------------------------------- | |
device.putc(0x55);//Synchronization word 0x55 | |
device.putc(0x40);//WriteREGister 0x04 0x00(0000register00 Selected) | |
device.putc(0x0E);//7:0(0000 1110=0x0E)[7:4(0000)MUX AINp=AIN0,AINn=AIN1 3:1(111)GAIN128, 0:0(0)PGA enabled] | |
wait_us(1000); | |
device.putc(0x55);//Synchronization word 0x55 | |
device.putc(0x20);//Synchronization word 0x55 | |
wait_us(RREGwait); | |
if (device.readable()) | |
{ | |
RR0=device.getc(); | |
} | |
wait_us(1000); | |
pc.printf("\n\r"); | |
pc.printf("********0x0E:"); | |
pc.printf("RR0=%x\n\r",RR0); | |
//-----Register01[7:5(DataRate)4:(OperationMode)3:(ConversionMode)2:1(VREF)0:(TemperatureSensor mode)]--------- | |
device.putc(0x55);//Synchronization word 0x55 | |
device.putc(0x42);// WriteREGister 0x04 0x02(0010register01 Selected) | |
device.putc(0xAE);//7:0(1010 1110=0xAE)[7:5(101)DataRate600sps,4:(0)NormalMode, 3:(1)Continuous conversion mode,2:1(11)VDD-VSS VRef,0:(0)Temp disabled] | |
wait_us(1000); | |
device.putc(0x55);//Synchronization word 0x55 | |
device.putc(0x22);//Synchronization word 0x55 Bug Fixed 0x21=>0x22 (2021/9/7) | |
wait_us(RREGwait); | |
if (device.readable()) | |
{ | |
RR1=device.getc(); | |
} | |
wait_us(1000); | |
pc.printf("*********0xA8:"); | |
pc.printf("RR1=%x\n\r",RR1); | |
//-----Register02[7:DRDY)6:(DCNT)5:4(CRC)3:(BCS)2:0(IDAC)]----------------------------------------------------- | |
device.putc(0x55);//Synchronization word 0x55 | |
device.putc(0x44);// WriteREGister 0x04 0x04(0100register02 Selected) | |
device.putc(0x08);//7:0(0000 1000=0x08)[7:(0)DRDY,6:(0)DCNT disable, 5:4(00)) inverte,3:(1)BCS On,2:0(0)IDAC off] | |
wait_us(1000); | |
device.putc(0x55);//Synchronization word 0x55 | |
device.putc(0x24);//Synchronization word 0x55 Bug Fixed 0x22=>0x24 (2021/9/7) | |
wait_us(RREGwait); | |
if (device.readable()) | |
{ | |
RR2=device.getc(); | |
} | |
wait_us(1000); | |
pc.printf("********0x08:"); | |
pc.printf("RR2=%x\n\r",RR2); | |
//----Register03[7:5(I1MUX)4:2(I2MUX)1(RSERVED)0(AUTO)]---------------------------------------------------- | |
device.putc(0x55);//Synchronization word 0x55 | |
device.putc(0x46);// WriteREGister 0x04 0x06(0110register03 Selected) | |
device.putc(0x00);//7:0(00000000=0x00)[7:5(000)default,4:2(000)default, 1:(0)Reserved,0:(0)Manual Read | |
wait_us(1000); | |
device.putc(0x55);//Synchronization word 0x55 | |
device.putc(0x26);//Synchronization word 0x55 Bug Fixed 0x23=>0x26 (2021/9/7) | |
wait_us(RREGwait); | |
if (device.readable()) | |
{ | |
RR3=device.getc(); | |
} | |
wait_us(1000); | |
pc.printf("*********0x00:"); | |
pc.printf("RR3=%x\n\r",RR3); | |
wait_us(1000); | |
//----Register04[7:(Reserved)6:(GPIO2DIR)5:(GPIO1DIR)4:(GPIO0DIR)3:(GPIO2SEL)2:(GPIO2DAT)1:(GPIO1DAT)0:(GPIODAT0)]---------------------------------------------------- | |
device.putc(0x55);//Synchronization word 0x55 | |
device.putc(0x48);// WriteREGister 0x04 0x08(1000register04 Selected) | |
device.putc(0x48);//7:0(0100 1000=0x08)[6:(1)GPIO2output,5:(0)GPIO1Input, 4:(0)GPIO0Input,3:(1)GPIO2SEL DRDY,2:(0)GPIO2DAT Low,1:(0)GPIO1DAT Low,0:(0)GPIO0DAT Low | |
wait_us(1000); | |
device.putc(0x55);//Synchronization word 0x55 | |
device.putc(0x28);//Synchronization word 0x55 Bug Fixed 0x24=>0x28 (2021/9/7) | |
wait_us(RREGwait); | |
if (device.readable()) | |
{ | |
RR4=device.getc(); | |
} | |
wait_us(1000); | |
pc.printf("*********0x48:"); | |
pc.printf("RR4=%x\n\r",RR4); | |
//Start/Sync | |
device.putc(0x55); | |
device.putc(0x08); | |
wait_us(100);//************************このWAIT重要************************************ | |
t.start(); | |
//====================LOOP====================================== | |
while(0) | |
{ | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment