秦韵FPGA 转载或原创(十四) 高云FPGAGW2A18C

本文介绍了一款基于高云FPGA的2a18c板卡设计及其应用案例——AD9288高速ADC驱动实现。AD9288是一款8位双通道ADC芯片,文中提供了简洁的驱动代码,并详细解释了其实现过程。

最近很少更新文章,主要在设计板卡,目前使用高云的芯片比较纯熟,中等的项目中该芯片也用起来了,有空也更新一下文章,当然有兴趣学习高云的板卡的朋友可以去购买我的板卡,学习中有技术方面的问题都可以提供技术支持。
更新了一款2a18c的板卡,图片如下:主要采用模块化设计,主板采用排针引出bga的IO,以供外部以太网模块、ADC模块等等使用,外设部分模块后续会持续更新。
在这里插入图片描述
除了介绍硬件板卡之外,主要介绍高速ADC的例程,芯片采用adi的AD9288芯片,该芯片为8bit精度的双通道adc,使用的驱动代码非常简单,简单的讲解以下驱动的过程,该芯片做完硬件配置即原理图设计后,软件上只需要给时钟就可以拿到数据,我们用最简单的40Mhz采样率的adc来做,因为是并行的ADC数据接口,所以代码部分只需要定义一个接收dff即可,至于后续的数据是存储还是转发,看具体的数据使用要求,简单的给一个驱动代码:参考的时许图如下;
该部分采用S1=1,S2=0模式

	module ad9288_driver(
		input 		clk,
		input 		rst_n,
		input 	[7:0]		ad9288_dina,
		input 	[7:0]		ad9288_dinb,
		output 				ad9288_dclka,
		output 				ad9288_dclkb
);
/*adc输出时钟采用PLL直接输出*/
Gowin_rPLL u_Gowin_rPLL(
	.clkout		(clkout		), //output clkout
	.lock		( ), //output lock
	.clkin		(clk		) //input clkin
);

assign ad9288_dclka = clkout;
assign ad9288_dclkb = ~clkout;

/*数据接收部分*/
reg [7:0] 		dat_ca_r;
reg [7:0] 		dat_cb_r;
always@(negedge ad9288_dclka )
if(!rst_n) 
	dat_ca_r <= 'd0;
else 
	dat_ca_r <= ad9288_dina;

always@(negedge ad9288_dclkb)
if(!rst_n) 
	dat_cb_r<= 'd0;
else 
	dat_cb_r<= ad9288_dina;
	


endmodule

驱动部分比较简单,后续添加高云的.rao 文件,观察adc输出的数据是否正确。

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值