需要确认注册邮箱后才能开通博客,立即确认我的邮箱
文章 搜索 高级搜索 ?3? ?3?
  • 滤波器new!
  • LED驱动 new!
  • 新能源 new!
  • PLL
  • PCIE协议
  • 可穿戴
  • LSI
  • FCI
文章 论坛 博客 小组 研讨会
EDN China>EDN论坛>模拟器件技术论坛专区>再问关于使用FPGA控制AD9910
楼主 问题:

再问关于使用FPGA控制AD9910

发布时间:2009-6-2 下午3:18

作者: googler

等级: 初学者

积分: 167分

发帖数: 21次

网站总积分: 334分

137分

发送消息

加为好友

查看用户的所有发言

查看用户的个人主页

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件
前一个帖子
http://bbs.ednchina.com/showtopic.aspx?id=115742
知道了如果使用单音模式的话,只需要写入0x02和0x0E两个寄存器就好了。现在新的问题又出现了,如何用Verilog把程序写进去?谢谢。
PS:刚买了块学习板,只会简单的写一些简单的程序,例如数码管显示之类。
分享到:? 新浪微博 ?? 微信 ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
qq空间 ?? 腾讯微博 ?? 人人网 ?? 百度搜藏 ??
引用 回复 收藏 推荐到小组 ( 0) ( 0) 关注

EDN China电子设计技术NC、PC之争再次重来,丰田收购波士顿动力后机器人下一步往哪走?
第1楼

补充一下

发布时间:2009-6-2 下午4:13

作者: googler

等级: 初学者

积分: 167分

发帖数: 21次

网站总积分: 334分

137分

发送消息

加为好友

查看用户的所有发言

查看用户的个人主页

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件
module DDS(
????sclk,cs,io_reset,io_update,sdio
????);

input sclk;??// 25MHz
input cs;?//chip select
input io_reset;?// input/output reset
inout io_update; // input/output update
inout sdio; // serial data input/output

接下来就是怎样将控制字写入0X02和0X0E寄存器?
也就是在0X02里写入= 0x1D3F4150;//SYNC_CLK = 250MHz System Clock = 1GHz
在0X0E里面写入
RegisterData[1] = 0x08b50000;
RegisterData[0] = 0x1999999A;//100MHz Output Frequency
引用 回复
( 0) ( 0)


EDN China电子设计技术松山湖八大“中国芯”:跌进坑里还是闯出新蓝海?(下)
第2楼 easy 发布时间:2009-6-2 下午5:46

作者: ql_smbj

等级: 中级工程师

积分: 1400分

发帖数: 424次

网站总积分: 2747分

1120分

发送消息

加为好友

查看用户的所有发言

查看用户的个人主页

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件
楼主有否把AD9910的“serial programming”这一部分仔细看明白?

如果你有用心去看的话,会发现用FPGA对AD9910编程其实比用单片机更简单。

以两线制为例:

向AD9910写入数据,其实就是当cs为低电平的时候,在clk的下降沿,SDIO口挨个输出数据。

楼主可以在FPGA内部模拟一个164,可以很轻松实现你的功能。

?
引用 回复
( 0) ( 0)


EDN China电子设计技术高通、大唐、大疆联手“搅混”无人机这潭水,剑指何方?
第3楼 发布时间:2009-6-3 上午11:08

作者: googler

等级: 初学者

积分: 167分

发帖数: 21次

网站总积分: 334分

137分

发送消息

加为好友

查看用户的所有发言

查看用户的个人主页

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件
谢谢。说的是,serial programming部分只关注了需要和FPGA的接口,譬如sclk,cs,sdio。我刚才又看一遍,你所说的是时序,这个好理解。

关键是我不知道怎样用verilog把它描述出来,新手,请多多谅解,呵呵。

请问阁下所说的在FPGA内部模拟一个164,是什么意思?该怎样实现?谢谢。

?
引用 回复
( 0) ( 0)


EDN China电子设计技术松山湖八大“中国芯”:跌进坑里还是闯出新蓝海?(上)
第4楼 做一个rom 发布时间:2009-6-3 上午11:39

作者: ql_smbj

等级: 中级工程师

积分: 1400分

发帖数: 424次

网站总积分: 2747分

1120分

发送消息

加为好友

查看用户的所有发言

查看用户的个人主页

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件
在FPGA内部例化一个rom;

constant AD9910 : REG80x1 :=
( '0','0','0','0','0','0','1','0',? -- 地址0X02

? '0','0','0','1','1','1','0','1',? -- 数据0X1D

? ……



rom的深度 8 * 2 + 4 * 8 * 2 = 80

设计一个计数器 cnt , 把cnt用作上面rom的地址输入,在clk的下降沿读rom。

?

?
引用 回复
( 0) ( 0)


EDN China电子设计技术HTC Vive 与 Oculus Rift拆解:是哪些硬件将我们从现实带入虚拟世界?
第5楼 用164 发布时间:2009-6-3 上午11:41

作者: ql_smbj

等级: 中级工程师

积分: 1400分

发帖数: 424次

网站总积分: 2747分

1120分

发送消息

加为好友

查看用户的所有发言

查看用户的个人主页

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件
164是一个移位寄存器,输入是8bti的并行数据,输出是串行数据,即完成一个并串转换功能。

楼主可以模拟164的功能,自己做一个并串转换电路,电路的load端置你要输出的地址+数据值,在clk的下降沿,读出数据,送AD9910。
引用 回复
( 0) ( 0)


EDN China电子设计技术从常见的处理器结构出发,Google的AI芯片原来还有这幅面孔
第6楼 example 发布时间:2009-6-3 下午1:19

作者: ql_smbj

等级: 中级工程师

积分: 1400分

发帖数: 424次

网站总积分: 2747分

1120分

发送消息

加为好友

查看用户的所有发言

查看用户的个人主页

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件
下面这个例子,也是用两线制,对AD9945进行初始化,不过我是用vhdl语言写的。

LIBRARY ieee;
USE ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;


?
--? Entity Declaration

ENTITY init_ad9945 IS
?-- {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE!
?PORT
?(
??clk : IN STD_LOGIC;
??rst : IN STD_LOGIC;
??init_over_n : OUT STD_LOGIC;
??AD9945_SL : OUT STD_LOGIC;
??AD9945_SCK : OUT STD_LOGIC;
??AD9945_SDATA : OUT STD_LOGIC
?);
?-- {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE!
?
END init_ad9945;


--? Architecture Body

ARCHITECTURE init_ad9945_architecture OF init_ad9945 IS

type REG44x1 is array(0 to 43) of std_logic;
subtype INTEGER8 is INTEGER range 0 to 43;
constant regdata : REG44x1 :=
( '1',?-- address bit A0
? '0',? -- address bit A1
? '0',? -- address bit A2
? '1',? -- test bit
? -- operation reg data = X"000"(d12 .. d0)
? '0',? -- operation reg data : bit d0
? '0',? -- operation reg data : bit d1
? '0',? -- operation reg data : bit d2
? '0',? -- operation reg data : bit d3
? '0',? -- operation reg data : bit d4
? '0',? -- operation reg data : bit d5
? '0',? -- operation reg data : bit d6
? '0',? -- operation reg data : bit d7
? '0',? -- operation reg data : bit d8
? '0',? -- operation reg data : bit d9
? '0',? -- operation reg data : bit d10
? '0',? -- operation reg data : bit d11
? -- control reg data = X"000"
? '0',? -- control reg data : bit d0, SHP/SHD input of ad9945 Active low
? '0',? -- control reg data : bit d1, DATACLK input of ad9945 Active low
? '0',? -- control reg data : bit d2, CLPOB input of ad9945 Active low
? '0',? -- control reg data : bit d3, PBLK input of ad9945 Active low
? '0',? -- control reg data : bit d4, Three-State data output Active; = 1 output three-state
? '0',? -- control reg data : bit d5, =0 data output latched by dataclk
? '0',? -- control reg data : bit d6, = data output coding (0 = binary output, 1 = gray code output)
? '0',? -- control reg data : bit d7, test mode
? '0',? -- control reg data : bit d8, test mode
? '0',? -- control reg data : bit d9, test mode
? '0',? -- control reg data : bit d10, test mode
? '0',? -- control reg data : bit d11, test mode
? -- clamp level reg data : 0 - 255
? '0',? -- clamp level reg data : bit d0
? '0',? -- clamp level reg data : bit d1
? '0',? -- clamp level reg data : bit d2
? '0',? -- clamp level reg data : bit d3
? '0',? -- clamp level reg data : bit d4
? '0',? -- clamp level reg data : bit d5
? '0',? -- clamp level reg data : bit d6
? '0',? -- clamp level reg data : bit d7
? -- vga gain reg data : 0 - 255
? '0',? -- vga gain reg data : bit d0
? '0',? -- vga gain reg data : bit d1
? '0',? -- vga gain reg data : bit d2
? '0',? -- vga gain reg data : bit d3
? '0',? -- vga gain reg data : bit d4
? '1',? -- vga gain reg data : bit d5
? '0',? -- vga gain reg data : bit d6
? '1'? -- vga gain reg data : bit d7
);
?
?

signal init_over_n_tem : std_logic;
signal ad9945_sl_tem : std_logic;
signal ad9945_sck_tem : std_logic;
signal ad9945_sdata_tem : std_logic;
signal cnt : std_logic_vector(5 downto 0);
--signal reg_data : REG44x1 := regdata; -- init reg data?
BEGIN

process(rst, clk)

begin
if rst = '0' then
??? init_over_n_tem <= '1';
??? ad9945_sl_tem <= '1';
??? ad9945_sdata_tem <= '1';
??? cnt <= "000000";

??? else if clk'event and clk = '1' then
??????? if cnt = "101100" then
??????????? cnt <= "101100" ;
??????????? ad9945_sl_tem <= '1';??????
??????????? init_over_n_tem <= '0';????
??????? else
??????????? cnt <= cnt + 1;

??????????? ad9945_sl_tem <= '0';????
??????????? ad9945_sdata_tem <= regdata(conv_integer(cnt));
??????????? init_over_n_tem <= '1';
??????? end if;

??? end if;
end if;
end process;

init_over_n <= init_over_n_tem;
ad9945_sl <= ad9945_sl_tem;
ad9945_sck <= clk;
ad9945_sdata <= ad9945_sdata_tem;

END init_ad9945_architecture;
引用 回复
( 0) ( 0)


EDN China电子设计技术HTC Vive 与 Oculus Rift拆解:是哪些硬件将我们从现实带入虚拟世界?
第7楼 收到 发布时间:2009-6-3 下午2:09

作者: googler

等级: 初学者

积分: 167分

发帖数: 21次

网站总积分: 334分

137分

发送消息

加为好友

查看用户的所有发言

查看用户的个人主页

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件
拜过,我看看。

不懂再问你啊:)
引用 回复
( 0) ( 0)


EDN China电子设计技术可用于高电压测试的有源负载
第8楼 有新问题了 发布时间:2009-6-5 下午3:13

作者: googler

等级: 初学者

积分: 167分

发帖数: 21次

网站总积分: 334分

137分

发送消息

加为好友

查看用户的所有发言

查看用户的个人主页

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件
1:假如使用你上面的ROM和传输数据程序,是可以将regdata 里面的数值挨个送给ad9945_sdata 。如果我把regdata中的控制字换下,就出现了疑问。因为对于AD9910来说,内部有很多寄存器,怎样知道把哪些控制字传给哪个内部寄存器?
2:看到有一个FPGA控制AD9911的文章,是用verilog写的,但程序部分不全。对于flag= =10或20还有些困惑。

?
引用 回复
( 0) ( 0)


EDN China电子设计技术RF器件跨越通信,在军事、医疗与工业领域也大放异彩
第9楼 问题 1 发布时间:2009-6-5 下午3:55

作者: ql_smbj

等级: 中级工程师

积分: 1400分

发帖数: 424次

网站总积分: 2747分

1120分

发送消息

加为好友

查看用户的所有发言

查看用户的个人主页

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件
楼主有否自己研究 芯片手册中 芯片编程 这一部分?

在对芯片进行编程时 首先就是要输出被选中的寄存器地址,而这个地址就是你所说的0x02 0x0E ...
引用 回复
( 0) ( 0)


EDN China电子设计技术10块钱的充电器和官配有什么区别?充电器原理详解
第10楼 应该是这样子的 发布时间:2009-6-5 下午5:28

作者: googler

等级: 初学者

积分: 167分

发帖数: 21次

网站总积分: 334分

137分

发送消息

加为好友

查看用户的所有发言

查看用户的个人主页

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件
是不是对Profiles 选择是000,也就是对管脚[52:54]设置为低电平,就可以对0X0E写数据?

但对0x02写数据,没有找到。
引用 回复
( 0) ( 0)


快速回复 高级回复
用户名:?
美国的游客?????? (您将以游客身份发表,请登陆 | 注册) ?
标题: * 标题还可以输入80
评论: * 你还可以输入30000
验证码: ?*?
分享: 新浪微博?? qq空间?? qq微博?? 人人网?? 百度搜藏??
维护专业、整洁的论坛环境需要您的参与,请及时举报违规帖子,如果举报属实,我们将给予相应的积分奖励。
谢谢您的热心参与!
返回模拟器件技术论坛 | 返回专业技术交流区
本论坛仅陈述专家或个人观点,并不代表EDN China 电子技术设计互动社区网站立场。

本版热门贴子

视频
?analog.com官网全线升级

在线研讨会
产品新闻
返回论坛页首
有问题请反馈