湛恶 发表于 2025-6-1 21:24:54

使用cy7c68013采集板实现低成本高速adc采集 ad9226

https://img2024.cnblogs.com/blog/724662/202503/724662-20250305230812935-693950889.jpg
高速adc芯片  ad9226,最高时钟可达65Mhz
配合cy7c68013a如何低成本采集
设计考虑
使用,icamera标准固件
接线方式
68013A  926
ifclk             clk
clkout         clk
wr    clk
fd0-11       db0-11
使用68013clkout时钟,编程可以实现12Mhz,24Mhz,48Mhz输出,
因为usb2.0高速带宽限制,最高时钟可以设置为24Mhz,数据带宽48Mhz,已经超额,所以配置24Mhz时钟时,也有局部数据丢失。
通过wr与ifclk同步,数据分频,时钟输出配置为12Mhz,采集效果较好
下一步开始设计转接板
使用嘉立创免费打样

使用cp926高速adc板卡,供电为5v,icamera  cp601d输出电源为3.3v
所以底板设计增加typec供电,为adc板卡供电
icamera cp601d为标准的20p座子,引出fd0-11,ifclk,clkout,wr,pa0等管脚

设计时考虑,单次测试仅针对一路adc,cp926模块为双通道adc模块,此时需要手工拔插座子挪到另外一个位置测试
再看组装效果

整体性还不错
使用icamera标准命令发送修改时钟和位宽如下
0x1a, 0x00, 0x78, // 0x5A // sensor slave id
0x1a, 0x01, 0x00,        // pwdn low
0x1a, 0x02, 0x01, // wordwide
0x1a, 0x03, 0x02,        // register address length 2byte
0x1a, 0x04, 0x01,        // register value length   1byte
//0x1a, 0x05, 0x01        // reset pin(PC2)
0x1a, 0x06, 0x01        // IFCLK polarity

此命令修改时钟为12Mhz。效果一样
然后使用vs2022,c#编程开发采集绘图

 
private void timer1_Tick(object sender, EventArgs e)
      {
            int readSize = 0;
                readSize = FxDriver.Read(buff, 0, buff.Length);

定时器定时读取cy数据
因为bit位关系原因,需要重新调节
g_var.g_wav =
                            (uint)((buff >> 7) & 0x01) * 1024    //20 DB1 FD15
                            + (uint)((buff >> 6) & 0x01) * 2048//19 DB0 FD14
                            + (uint)((buff >> 5) & 0x01) * 256   //18 DB3 FD13
                            + (uint)((buff >> 4) & 0x01) * 512   //17 DB2 FD12
                            + (uint)((buff >> 1) & 0x01) * 128
                            + (uint)((buff >> 0) & 0x01) * 64
                            + (uint)((buff >> 3) & 0x01) * 32
                            + (uint)((buff >> 2) & 0x01) * 16
                            + (uint)((buff >> 5) & 0x01) * 8
                            + (uint)((buff >> 4) & 0x01) * 4
                            + (uint)((buff >> 7) & 0x01) * 2      //FD7 9 DB10
                            + (uint)((buff >> 6) & 0x01) * 1       //FD6 10 DB11
                            ;
//使用标准的图形控件绘图显示
chart1.Series.Points.AddXY(i, g_var.g_wav);
可以选择点,或者线,根据喜好看效果


 

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 使用cy7c68013采集板实现低成本高速adc采集 ad9226