Post Go back to editing

No LSB sent by adc during conversion

Category: Hardware
Product Number: MAX1258

Hi, I have an issue using a MAX1258.

Here is my situation :
Using Internal Vref = 4,096V

Configured registers :

 
static uint8_t reg_setup_buff[1] = {0b01110000}; // Reserved  = 01 CKSEL = 11, REFSEL=00, DIFSEL=00
static uint8_t reg_adc_buff[1] = {0b00110001}; // Reserved  = 001, AVGON=1, NAVG=00, NSCAN=01
static uint8_t reg_conversion_buff[1] = {0b10000110}; // Reserved  = 1, CH=XXXX, SCAN =11, TEMPERATURE=0
With a voltage of 1V applied to AIN0, the adc answers 0x0300 = 768
With a voltage of 1.5V applied to AIN0, the adc answers 0x0400 = 1024
With a voltage of 2V applied to AIN0, the adc answers 0x0700 = 1792
With a voltage of 2.5V applied to AIN0, the adc answers 0x0800 = 2048
With a voltage of 3V applied to AIN0, the adc answers 0x0A00 = 2560

Since the ref internal ref is 4.096V, 1bit = 0.001V

So I suspect that the ADC isn't sending the LSB of the result.
as 1V sould be : 0x03E8 = 1000

as 1.5V sould be : 0x05DC = 1500

as 2V sould be : 0x07D0 = 2000 etc...

Here is my SPI config of my MCU (ST SPC58):

Here is some resuls from my logic analyser for a measure with 1V on AIN0 :

Thanks a lot in advance for your help.

Best regards,
Julien

Before You Switch


Switching languages will make ADI Explorer unavailable. Resume your session by switching back to English and reopening ADI Explorer.