完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
DDS
SPI 功能 设备:MCU板3+FPGA:开发板实现+DA/AD实验板 通过在SPI接口下挂接上DDS发送频率字,频率正弦波的波形,并通过DAC实现输出,并通过:通过检测部分的 结构 单片机产生单片机输入的信号频率部分 ,直接通过转换频率位的字,通过SPI发送给片机的频率字,通过FPGA输入的 正弦 单片机输入为系统的波形输入3部分,通过 输出 module spi_bus_test( I_CLK, I_CS, I_SCLK, I_SDIN, SW, RST, O_SDOUT, OUTCNT0, OUTCNT1, OUTCNT2, OUTRD, DDSfwq, DDSOUT ); input wire RST; input wire I_CLK; input wire I_CS; input wire I_SCLK; input wire I_SDIN; input wire [0:0] SW; output wire O_SDOUT; output wire [15:0] OUTCNT0; output wire [15:0] OUTCNT1; output wire [31:0] OUTCNT2; output wire [31:0] DDSfwq; output wire [15:0] OUTRD; output wire [11:0] DDSOUT; wire W_I_CLK; wire [15:0] W_O_WD; wire [31:0] W_O_WE; wire [15:0] W_spi_bus_in; wire [15:0] SYNTHESIZED_WIRE_0; wire [15:0] SYNTHESIZED_WIRE_1; spi_bus_32b_A15RD1WR0 b2v_U1( .I_CLK(W_I_CLK), .I_CS(I_CS), .I_SCLK(I_SCLK), .I_SDIN(I_SDIN), .I_DIN(W_spi_bus_in), .O_SDOUT(O_SDOUT), .O_WD(W_O_WD), .O_WE(W_O_WE)); cnt16_spi_wr_test b2v_U2( .I_CLK(W_I_CLK), .I_ENA(W_O_WE[0]), .I_INC(W_O_WD), .O_CNT(OUTCNT0)); cnt16_spi_wr_test b2v_U3( .I_CLK(W_I_CLK), .I_ENA(W_O_WE[1]), .I_INC(W_O_WD), .O_CNT(OUTCNT1)); cnt32_spi_wr_test b2v_U4( .I_CLK(W_I_CLK), .I_ENA_H(W_O_WE[2]), .I_ENA_L(W_O_WE[3]), .I_UPDATE(W_O_WE[4]), .I_INC_H(W_O_WD), .I_INC_L(W_O_WD), .O_CNT(OUTCNT2)); cnt32_spi_wr_test DDS( .I_CLK(W_I_CLK), .I_ENA_H(W_O_WE[10]), .I_ENA_L(W_O_WE[11]), .I_UPDATE(W_O_WE[12]), .I_INC_H(W_O_WD), .I_INC_L(W_O_WD), .O_CNT(DDSfwq)); top_sin_wave( .CLK(W_I_CLK) , // clock, posedge valid .fqwd_W(DDSfwq) , // input freq word .fwen_W(1) , // inpue freq word enable .BUTRST(RST) , // reset button .SINOUT(DDSOUT) ); dpram16_spi_wr_test b2v_U5( .I_CLK(W_I_CLK), .I_WAE(W_O_WE[5]), .I_WDE(W_O_WE[6]), .I_WA(W_O_WD), .I_WD(W_O_WD), .O_RD(OUTRD)); select_in_to_out b2v_U6( .I_CLK(W_I_CLK), .I_ENSEL(W_O_WE[7]), .I_DIN00(SYNTHESIZED_WIRE_0), .I_DIN01(SYNTHESIZED_WIRE_1), .I_SEL(W_O_WD), .O_DOUT(W_spi_bus_in)); cnt16_spi_read_test b2v_U7( .I_CLK(W_I_CLK), .I_SW(SW), .O_CNT(SYNTHESIZED_WIRE_0)); rom_A7b_D8b_spi_rd_test b2v_U8( .I_CLK(W_I_CLK), .I_RE(W_O_WE[8]), .I_RA(W_O_WD), .O_RD(SYNTHESIZED_WIRE_1)); assign W_I_CLK = I_CLK; endmodule 实际测试 显示如下:时钟1MHz的和500000000000000000000000000000Hz和 50000000000000000000000000000000000000000000000000000Hz的波形,而不是@@。 ,采用我时钟DAC的主要频率改为由主频率产生的时钟,DAC不干净(是因为我将由PLL产生的频率)。 通过输入的频率分别为10MHz,1MHz,500kHz,100kHz,1kHz,100Hz,12345Hz,100Hz50Hz, 12345Hz 输出 频率要求可以频率范围内的频率范围,基本符合。 |
|
|
|
只有小组成员才能发言,加入小组>>
3278 浏览 9 评论
2955 浏览 16 评论
3455 浏览 1 评论
8987 浏览 16 评论
4050 浏览 18 评论
1102浏览 3评论
570浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
568浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2301浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1856浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 21:45 , Processed in 1.194684 second(s), Total 81, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号