Skip to content

Instantly share code, notes, and snippets.

@dj1711572002
Last active September 7, 2021 09:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dj1711572002/49837a5b19ac8151bce3af932f267284 to your computer and use it in GitHub Desktop.
Save dj1711572002/49837a5b19ac8151bce3af932f267284 to your computer and use it in GitHub Desktop.
TEXAS ADC ADS122U04 mbed LPC1768 1CH Sample Program
//----------------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