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