Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

CRC module on ADS7138

Status
Not open for further replies.

flote21

Advanced Member level 1
Joined
Jan 22, 2014
Messages
411
Helped
1
Reputation
2
Reaction score
3
Trophy points
1,298
Activity points
5,595
Hello guys!

I am wondering what i am doing wrong with the CRC funcionality of the ADS7138.

The following register configuration works properly and configure the ADC on an autonomous mode:

ADC RegisterValue
0x050x00
0x010x02
0x120xFF
0x170x01
0x140xFF
0x040x35
0x010x30
0x100x11
0x030x07

with the previous register configuration, I execute a read operation and I get digital hex. code according to the input voltage fixed on the analog input of the ADC.

However, when I enable the CRC module on the ADC. It means set to "1" the bit 6 of the GENERAL__CFG register (0x01). See below the new table with the configuration of the ADC with the CRC enabled.

ADC registerValue
0x050x00
0x010x42
0x120xFF
0x170x01
0x140xFF
0x040x35
0x010x70
0x100x11
0x030x07

With the previous configuration, when I execute the same read opertion as before the results is 0x00 for all the read values....Furthermore the ADC is entering in a blocking mode and to make it working again, I need to make a power on cycle of the PCB.

1) Am I configuring the ADC on the right way? I have also tested to append the CRC byte for every configuration command and it is also not working. See below two examples:
a. Script line to configure one register of the ADC without appending the CRC at the end: "WIB 2E 0812 FF"
Where:
- 0x2E is the device address
- 0x08 is the opcode
- 0x12 is the internal register
- 0xFF is the value to write in the register.
b. Script line to configure one ADC register appending the CRC calculation at the end: "WIB 2E 0812 FFD5"
- 0x2E is the device address
- 0x08 is the opcode
- 0x12 is the internal register
- 0xFF is the value to write in the register.
- 0xD5: is the CRC value of the command

Both of cases are not working and the result when I execute the read operation is always 0x00. The script line to execute a read operation on the ADC is: "RIB 2E 10A6 1"
Where:
-0x2E: is the device address.
-0x10: is the opcode
-0xA6: is the internal register where is the value to read.
-0x1: is the number of bytes to read. In this case just one byte.

2) How do you think is performing the ADC the read operation with the CRC module enabled? Is it also appended the CRC byte at the end of the read value? I have aslo tried to read two consecutive bytes (RIB 2E 10A6 1) and the result was also 0x00....

3) Anyone has experience with the I2C CRC? I think I am missing something related with the working principle...

Thanks in advance and greetings
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top