头像-18666

视觉℡[url=http://www.ickey.cc/user-group-ts-topic-userid-18685.html][color=#E53333][size=32px][b]☞ [/b][/size][/color][color=#E53333][size=32px][/size][/color][color=#E53333][size=32px][b]更多资料点击我 [/b][/size][/color][color=#E53333][size=32px][b]☜[/b][/size][/color][/url] [url=http://www.ztdzxh.kuphp.net/]电子协会论坛-www.dzxh.tk[/url]

  • 河南省郑州市
  • 单片机 嵌入式
  • 安防电子

个人成就

获得 30 次赞

帮助过83人

STM32的usb用哪一种方式比较好?要求速度达到500K

1.STM32 使用哪一种USB通讯方式比较好?2.USB  HID   CDC  有什么区别?3.libusb在win7  win8  win10 没有数字签名,怎么解决

求一款带EEPROM的低价单片机,价格在0.5元以内的

求一款带EEPROM的低价单片机,价格在0.5元以内的管脚越少越好,sot23-6   sop8   

fpga程序与实际的时序逻辑不对应。。求助

先上代码:module flash( output flash_dataout//flash数据输出 output led0 output led1 output wire [7:0] DB8 input flash_clk//flash时钟 input flash_cs input flash_datain ); reg [7:0] clk_num;//时钟计数 reg [7:0] reg_cmd;//命令寄存器 reg red_id= 1'b0;//读取命令标志位 reg data_out= 1'b1; reg led0_n = 1'b1; reg led1_n = 1'b1; parameter ID_data=64'h0102030405060708; assign flash_dataout = red_id ? data_out : flash_datain ; assign led0 = led0_n ? 1'b1 : 1'b0; assign led1 = led1_n ? 1'b1 : 1'b0; assign DB8 = clk_num; //cs上升沿需要初始化所有数据 标志着新的一条命令到来 //clk上升沿 读取数据 always @(posedge flash_cs or posedge flash_clk) //clk上升沿沿触发 begin if( flash_cs ) begin //cs 低电平状态 不知道为什么会进这个if语句内     clk_num <= 8'h00; //清除时钟计数 reg_cmd <= 8'h00; //清空命令寄存器 red_id <= 1'b0; //读取ID命令标志位 end else begin if(clk_num < 8) begin//前8个时钟是 命令 reg_cmd[7-clk_num] = flash_datain ;//循环将8位命令拼接 end else if(clk_num == 8) begin//接收完前8位命令 开始判断 led1_n <= ~led1_n; if(reg_cmd == 8'h4b) begin //判断是不是读取芯片ID red_id <= 1'b1; //读取ID命令标志位 end end clk_num <= clk_num + 8'h01;//时钟的下降沿计数 用来查询是否命令结束 led0_n <= ~led0_n; end end 程序的目的:为了模拟25Q64存储器部分功能,STM32向FPGA读取一个ID号,(时序与真实的25Q64一样)逻辑分析仪采集到的数据:0  ->  flash_cs (stm32输出的片选)    1 ->  flash_clk (stm32输出的时钟)   2  ->  flash_datain(stm32输出的数据输出)   3->flash_dataout  (FPGA输出的数据输出)   4-8   接的是  DB8的低4位   为了观察 clk_num 的数据问题:每到 flash_datain 高电平的时候   clk_num就清空了 (也就是进入    if( flash_cs ) begin ​   这里面了),已经修改过引脚测试了,不是电路的问题,软件的问题,

FPGA仿真时序正常,使用STM32与他通讯就不正常

想使用FPGA代替25Q64存储器部分功能,只使用ID读取这一部分,以下是他的时序图 ,通过STM32向FPGA读取这个ID使用仿真,一切正常,读取的命令  数据都正常   时序也正常,但是使用STM32读取就不行了,(确认过程序可以读取真实的25q64存储器ID)刚上个星期接触FPGA,写的程序不咋样,但是编译可以通过,希望大神可以赐教 module flash( output flash_dataout//flash数据输出 output led0 output led1 input flash_clk//flash时钟 input flash_cs input flash_datain ); //reg cs_bit;//CS低电平标志位 也就是数据读写标志位 reg [7:0] clk_num;//时钟计数 reg [7:0] reg_cmd;//命令寄存器 reg red_id= 1'b0;//读取命令标志位 reg data_out= 1'b1; reg led0_n = 1'b1; reg led1_n = 1'b1; parameter ID_data=64'h0102030405060708; assign flash_dataout = red_id ? data_out : flash_datain ; assign led0 = led0_n ? 1'b1 : 1'b0; assign led1 = led1_n ? 1'b1 : 1'b0; //cs上升沿需要初始化所有数据 标志着新的一条命令到来 //clk上升沿 读取数据 always @(posedge flash_cs or posedge flash_clk) //clk上升沿沿触发 begin if( flash_cs == 1'b1 ) begin //cs 高电平状态 clk_num <= 1'b0; //清除时钟计数 reg_cmd <= 8'h00; //清空命令寄存器 red_id <= 1'b0; //读取ID命令标志位 end else begin if(clk_num < 8) begin//前8个时钟是 命令 reg_cmd = reg_cmd |(flash_datain << (7-clk_num));//循环将8位命令拼接 //DB8 <= reg_cmd; end if(clk_num == 8) begin//接收完前8位命令 开始判断 led0_n <= ~led0_n; if(reg_cmd == 8'h4b) begin //判断是不是读取芯片ID led1_n <= ~led1_n;// red_id <= 1'b1; //读取ID命令标志位 end end clk_num <= clk_num + 1'b1;//时钟的下降沿计数 用来查询是否命令结束 end end always @( negedge flash_clk) //clk下降沿触发 begin if( red_id == 1'b1 ) begin//如果读取的是ID if( clk_num > 40 ) begin //后面的全部是数据 //DB9 <= clk_num; data_out <= ID_data[(104-clk_num)];//循环输出64位ID号 end end end endmodule

FPGA 做SPI从机,不使用晶振能否工作

FPGA 做SPI从机,不使用晶振能否工作例如:单片机做主机,FPGA 做从机单片机向FPGA发送一个字节的数据,FPGA返回一个字节的数据(发什么   返回什么)如果不使用晶振,这样的功能能否实现。

求Altera EPM240T100的封装库

求Altera  EPM240T100的封装库  altium designer或者告知  Altera  的FPGA的封装库在哪下载。

STM32 虚拟USB串口波特率问题

利用STM32做虚拟串口,问题:1.电脑上设置串口的波特率会不会影响USB串口传输的速率。2.如何使用STM32实现    CH340   PL2303类似的功能,串口输出的波特率可以在电脑上设置,停止位,数据位,校验位等  都可以设置。3.CH340  PL2303设置的波特率   停止位   数据位  校验位等信息,是否通过USB传送到CH340  PL2303芯片内?

谁知道ST-Link是否开源,有没有源码

谁知道ST-Link是否开源,有没有源码