2011-9-21
补充
申请到了max5513 SPI的双通道 8 bit DAC,可以设置成同时更新输出,
SPI可以时钟可以到16MHz,本以为能够显示完整的表盘等等而不闪烁的,但MSM7227使用的是GPIO模拟SPI,clk周期3uS(对应时钟只有333kHz), 根据规格书,显示圆时,显示一个点至少需要48个CLK,使用的圆代码为
for(i=0;i<255;i++){
max5513_serial_write(0x1000, SineTbl);
max5513_serial_write(0x2000, CosTbl);
max5513_serial_write(0x8000, 0);
}
显示圆需要的时间为:48*256*3uS=36.864mS,闪烁是肯定的了
下图为硬件连接,下面的是ad9934,上面的是max5513
下图为max5513_serial_write(0xe000, 0x55); //shutdown
关键代码如下
// setting=c3..c0 xxxxxxxx s3..s0 , val=d7..d0,
// tx_byte=c3..c0 d7..d0 s3..s0
// setting=0x1xx0 val=DATA, load DATA to outA register but not update output
// setting=0x2xx0 val=DATA, load DATA to outB register but not update output
// setting=0x8xx0 val=0 , update outputA and outputB
// setting=0xexx0 val=0 , shutdown
static int max5513_serial_write(uint16_t setting, uint8_t val)
{
unsigned char i = 0;
uint16_t byte_mask = 0x8000;
uint16_t tx_byte;
tx_byte=(((uint16_t)val)<<4)|(setting&0xf00f);
gpio_set_value(SPI_CLK, 1);
gpio_set_value(SPI_CS,1);
gpio_set_value(SPI_CS,0);
for(i = 0; i < 16; i++){
gpio_set_value(SPI_CLK, 0);
if(tx_byte & byte_mask){
gpio_set_value(SPI_SDO, 1);
}
else{
gpio_set_value(SPI_SDO, 0);
}
gpio_set_value(SPI_CLK, 1);
tx_byte = tx_byte << 1;
}
gpio_set_value(SPI_CS,1);
return 0;
}
小结:示波器在调试SPI,I2C,等接口器件的时候比较用。
2011-9-28
使用ADI的AD5332, 并行接口,8bit双路输出,可以同时更新输出
根据规格书第15页表格,选用红色标记框内设置
CLR# ="1",CS# ="0"
关键代码如下:
//ref to spec page 15 ,AorB=0 DAC_A input,otherwise for DAC_B input
//use async mode , CS_N=0,CLR_N=1,PD_N=1 allways
static int ad5332_write_reg(uint8_t AorB, uint8_t val)
{
int i=0;
uint8_t tmp;
gpio_set_value(LDAC_N,1); //begin to write data
gpio_set_value(DAC_WR,0);
gpio_set_value(AB_SEL,AorB); //select chanel
for(i=4;i<12;i++){
tmp=val;
if((tmp&0x01)==0x01){
gpio_set_value(i,1);
// printk(KERN_ERR DRIVER_NAME"gpio_%d=1\n",i);
}
else{
gpio_set_value(i,0);
// printk(KERN_ERR DRIVER_NAME"gpio_%d=0\n",i);
}
val=val>>1;
}
gpio_set_value(DAC_WR,1); //load data to register
return 0;
}
测量确认,MSM7227平台单独操作GPIO拉高拉低,周期大概是2uS左右,导致显示效果还是比较差,主要是闪烁,但内容还是比较清晰的
见图片
用户377235 2012-3-16 22:52
飞言走笔 2012-3-7 11:16
用户403664 2012-3-7 08:59