按照芯片资料写的读时序函数,但不知为什么数据输出全是1,是不是得先对AD控制寄存器进行写操作?
用示波器测得读时序和SDO电平如下图
u32 ADC_Read(void)
{
u8 i;
u32 temp = 0;
SCK = 0;
delay_us(5);
FSO = 1;
SCK = 1;
SYNC = 0;
SCK = 0;
delay_us(1);
FSO = 0;
for(i=0;i<32;i++)
temp<<=1;
if(SDO==1)
temp|=0x01;
else
temp&=~0x01;
}
return temp;
我看评估版上的FSO,SDO,SCO等都接了0r的电阻我的板子上没接,影响大吗?
评估板程序用什么软件打开,我用记事本打开了一些看了看如:
AD7760.c中 long sample( ADI_CED1 ced, long board_id )里有很多定义的函数
error = ced.manual_send_to_ced( board_id, 0x0010, send_array,size_of_send_array );我找不到他原始定义的地方,没法看硬件端口操作啊
module spi
(
input arst,
input spi_clk,
// SPI signals
// Data input from CPLD
output reg SPI_SEL1,
// Serial Data
output reg SPI_MOSI,
// Serial Clock
output SPI_SCK,
// Communication with Parallel block
input spi_enable,
input [15:0] spi_register
);
没找到read时FSO怎么拉低读数据的,我是用的KEI MDK4写程序的,对于编程还了解的不太深入,希望更进一步指点。