VDD位5.0v
-IN位接地
+IN为输入电压
Vref为2.5v,
我给+IN5.0v电压时候,读出来为32767,为7FFF
我给+IN2.5V电压,读出来为16474(数值有一些波动,不是很稳定)
+IN短接,读出来为151
下面是我spi_read的程序,我通过给到的芯片手册
static int ads8317_adc_conversion(struct ads8317 *adc, u32 channel)
{
int ret;
printk("into %s\n",__func__);
printk("into %s,channel:%d\n",__func__,channel);
// adc->buffer = 0;
// printk(" adc->buffer:%x\n",adc->buffer);
struct spi_transfer t = {
.rx_buf = &adc->buffer,
.len = 3,
};
struct spi_message m;
spi_message_init(&m);
spi_message_add_tail(&t, &m);
ret = spi_sync(adc->spi, &m);
if(ret)
return ret;
udelay(2);
printk(" adc->buffer0:%x\n",adc->buffer[0]);
printk(" adc->buffer1:%x\n",adc->buffer[1]);
printk(" adc->buffer2:%x\n",adc->buffer[2]);
return ((((adc->buffer[0] << 16) | (adc->buffer[1] << 8) | adc->buffer[2])>>2)&0xffff);
}
我想问两个问题
1我的位转换是否有问题?
2在ads8317芯片手册中的20页关于table1的表哥能否给出详细的解释,我不是很看的懂

