Hello Dale, that's great. For a start, I could set the DATAOUT_CTL_REG value same as Table 6. in datasheets with: #define WRITE 0xD000 #define DATAOUT_CTL_REG 0x10 ADC_Command = WRITE + DATAOUT_CTL_REG; SPI1_ADC_TxBuffer[0] = (uint8_t)(ADC_Command >> 8); SPI1_ADC_TxBuffer[1] = (uint8_t)ADC_Command; SPI1_ADC_TxBuffer[2] = 0x55; SPI1_ADC_TxBuffer[3] = 0x08; SPI_transmitData(EUSCI_B0_BASE, SPI1_ADC_TxBuffer[0]); SPI_transmitData(EUSCI_B0_BASE, SPI1_ADC_TxBuffer[1]); SPI_transmitData(EUSCI_B0_BASE, SPI1_ADC_TxBuffer[2]); SPI_transmitData(EUSCI_B0_BASE, SPI1_ADC_TxBuffer[3]); __delay_cycles(4800000); And it looks good. But: 1. the 18bit value that I read out doesn't match with the range (0011=1.25*vref): Some printf from my 32bit read out (second number is the current 18bit adc value): Mean=158096 158096 10011010011001000000000000001100 Mean=158100 158105 10011010011001100100000000001100 Mean=158100 158100 10011010011001010000000000000000 Mean=158101 158103 10011010011001011100000000000000 Mean=158101 158102 10011010011001011000000000001100 Mean=158104 158108 10011010011001110000000000001100 Mean=158106 158109 10011010011001110100000000000000 Mean=158106 158106 10011010011001101000000000001100 Mean=158108 158110 10011010011001111000000000000000 Mean=158106 158105 10011010011001100100000000001100 Mean=158104 158102 10011010011001011000000000001100 Mean=158104 158104 10011010011001100000000000000000 Mean=158104 158104 10011010011001100000000000000000 Mean=158102 158101 10011010011001010100000000001100 Mean=158106 158111 10011010011001111100000000001100 Mean=158108 158111 10011010011001111100000000001100 Mean=158105 158103 10011010011001011100000000000000 Mean=158105 158105 10011010011001100100000000001100 Mean=158104 158104 10011010011001100000000000000000 Mean=158104 158105 10011010011001100100000000001100 Mean=158103 158103 10011010011001011100000000000000 Mean=158105 158108 10011010011001110000000000001100 Mean=158106 158108 10011010011001110000000000001100 Mean=158103 158101 10011010011001010100000000001100 Mean=158103 158103 10011010011001011100000000000000 Mean=158104 158106 10011010011001101000000000001100 Mean=158103 158102 10011010011001011000000000001100 Mean=158105 158107 10011010011001101100000000000000 Mean=158105 158105 10011010011001100100000000001100 Mean=158106 158107 10011010011001101100000000000000 Mean=158107 158108 10011010011001110000000000001100 Mean=158100 158094 10011010011000111000000000001100 My measurements and calculation: AVDD 5,063 V Ain 2,555 V ADC value 158105 digit ADC value 60,3 % of range Voltage_calc 4,236 V But with the setup 1.25*vref=5.12V I should have Voltage_calc=3.088V at 185105 digits !? 2. sometimes I read range = 0000b ?
↧