经过验证的,IIC程序是通过AXI_IIC IP来访问EEPROM,自己开发的AXI_SPI_SD IP是通过SPI总线读写SD卡
2021-10-09 08:47:02 109.79MB 嵌入式 xilinx vivado
1
avr单片机spi模式读写sd卡驱动,使用了fatfs文件系统,需要自己修改mmc_avr_spi.c
2021-09-27 09:29:07 131KB avr sd卡 avr单片机读写sd卡驱动
1
STM32f407在SPI1模式下读写SD卡(STM32F4_DISCOVERY) SCK=PA5,MISO=PA6,MOSI=PA7,CS=PA4
2021-09-11 10:49:26 13.81MB STM32f407
1
FPGA读写SDRAM page fifo实验完整Verilog逻辑源码Quartus工程文件, Quartus软件版本11.0, FPGA型号为CYCLONE4E系列中的EP4CE6E22C8,可以做为你的学习设计参考。 module sdram_read_write( clk, reset_n, state_signal, rw_done_signal, ar_done_signal, sdram_bank_addr, write_data, read_data, io_ctl, sdram_command, sdram_address, sdram_dqm, sdram_data ); //参数定义 //端口定义 input clk; //时钟信号100MHz input reset_n; //复位信号,低电平有效 input [2:0] state_signal; //状态信号,用于控制对SDRAM进行读写和自刷新 input [21:0] sdram_bank_addr; //SDRAM最小单元地址,[21:20]块地址+[19:8]行地址Row+[7:0]列地址Column input [15:0] write_data; //写入SDRAM的数据 input io_ctl; output rw_done_signal; //读写完成信号 output ar_done_signal; //自动刷新完成信号 output [15:0] read_data; //从SDRAM读出的数据 output [4:0] sdram_command; //SDRAM指令,cke、cs_n、ras、cas_n、we_n,SDRAM指令信号 output [13:0] sdram_address; //SDRAM读写地址 output [1:0] sdram_dqm; //SDRAM数据掩码 inout [15:0] sdram_data; //sdram读写数据 //常量定义 parameter NOP = 5'b10111, //空操作 ACTIVE = 5'b10011, //行激活 READ = 5'b10101, //读操作 WRITE = 5'b10100, //写操作 PR = 5'b10010, //预充电 AR = 5'b10001, //自刷新 LMR = 5'b10000, //设置寄存器 BURST_STOP = 5'b10110; //突发停止指令 parameter ar_state = 3'b001, //自刷新状态 re
FPGA读写SDRAM read_write_a_worde实验完整Verilog逻辑源码Quartus工程文件, Quartus软件版本11.0, FPGA型号为CYCLONE4E系列中的EP4CE6E22C8,可以做为你的学习设计参考。 `timescale 1 ns/ 1 ps // synopsys translate_on module sdram_top( clk, reset_n, sdram_bank_addr, write_data, read_data, read_req, write_req, rw_ack, bus_signal, init_done, sdram_clk, sdram_data, sdram_command, sdram_address, sdram_dqm ); // 系统信号 input clk; //20M系统时钟 input reset_n; //复位信号,低电平有效 // 内部信号 input [21:0] sdram_bank_addr; //读写SDRAM的地址 input [15:0] write_data; //写如sdram的数据 output [15:0] read_data; //从sdram读出的数据 input read_req; //读数据请求信号 input write_req; //写数据请求信号 output rw_ack; //读写应答信号 output bus_signal; //忙信号 output init_done; //初始化完成信号,输出,高电平有效 // SDRAM接口信号 output sdram_clk; //sdram时钟信号 inout [15:0] sdram_data; //sdram读写数据 output [4:0] sdram_command; //cke、cs_n、ras、cas_n、we_n,SDRAM指令信号 output [13:0] sdram_address; //[13:12]BA , [11:0]Addr,SDRAM地址信号 output [1:0] sdram_dqm; //SDRAM数据掩码 //连接线 wire init_start; //初始化开始信号,高电平有效 wire [4:0] sdram_init_command; //cke、cs_n、ras、cas_n、we_n,SDRAM指令信号 wire [4:0] sdram_rw_command; //cke、cs_n、ras、cas_n、we_n,SDRAM指令信号 wire [13:0] sdram_init_address; //[13:12]BA , [11:0]Addr,SDRAM地址信号 wire [13:0] sdram_rw
FPGA读写SDRAM page实验完整Verilog逻辑源码Quartus工程文件, Quartus软件版本11.0, FPGA型号为CYCLONE4E系列中的EP4CE6E22C8,可以做为你的学习设计参考。 // synopsys translate_off `timescale 1 ns/ 1 ps // synopsys translate_on module sdram_top( clk, sdram_100mhz, reset_n, sdram_bank_addr, write_data, read_data, read_req, write_req, rw_ack, bus_signal, init_done, sdram_clk, sdram_data, sdram_command, sdram_address, sdram_dqm ); // 系统信号 input clk; //100M系统时钟 input sdram_100mhz; //100Msdram时钟 input reset_n; //复位信号,低电平有效 // 内部信号 input [21:0] sdram_bank_addr; //读写SDRAM的地址 input [15:0] write_data; //写如sdram的数据 output [15:0] read_data; //从sdram读出的数据 input read_req; //读数据请求信号 input write_req; //写数据请求信号 output rw_ack; //读写应答信号 output bus_signal; //忙信号 output init_done; //初始化完成信号,输出,高电平有效 // SDRAM接口信号 output sdram_clk; //sdram时钟信号 inout [15:0] sdram_data; //sdram读写数据 output [4:0] sdram_command; //cke、cs_n、ras、cas_n、we_n,SDRAM指令信号 output [13:0] sdram_address; //[13:12]BA , [11:0]Addr,SDRAM地址信号 output [1:0] sdram_dqm; //SDRAM数据掩码 //连接线 wire init_start; //初始化开始信号,高电平有效 wire [4:0] sdram_init_command; //cke、cs_n、ras、cas_n、we_n,SDRAM指令信号 wire [4:0] sdram_rw_command; //cke、cs_n、ras、cas_n、we_n,SDRAM指令信号 wire
2021-08-25 13:04:59 7.94MB FPGA读写SDRAM Verilog逻辑源码 EP4CE6E22C8
用STM32F107,SPI模块,挂载FATFS文件系统0.09版本,当年的神舟IV号板,网上有原理图,其实打开cube就一目了然了。
2021-08-14 13:58:44 16.21MB CUBE SD SPI
1
STM32F10x工程_使用SPI方式读写TF卡SD卡 此程序模板为stm32F103c8t6所用;2.编译环境Keil5.14,库函数版本3.5;3.实现功能:在TF卡/SD卡根目录下创建文件MEng.txt,并把数组bmpheader写入该文件;4.硬件说明:SPI2读写:----------------------------------------------|STM32F10x|MSDPin|----------------------------------------------|PB.12|Ch
2021-08-10 14:11:53 469KB STM32F10x STM32 读写TF卡 读写TF卡SD卡
1
FPGA读写SD卡读取BMP图片通过LCD显示例程实验 Verilog逻辑源码Quartus工程文件+文档说明,FPGA型号Cyclone4E系列中的EP4CE6F17C8,Quartus版本17.1。 1 实验简介 在前面的实验中我们练习了 SD 卡读写,VGA 视频显示等例程,本实验将 SD 卡里的 BMP 图 片读出,写入到外部存储器,再通过 VGA、LCD 等显示。 本实验如果通过液晶屏显示,需要有液晶屏模块。 2 实验原理 在前面的实验中我们在 VGA、LCD 上显示的是彩条,是 FPGA 内部产生的数据,本实验将彩 条替换为 SD 内的 BMP 图片数据,但是 SD 卡读取速度远远不能满足显示速度的要求,只能先写 入外部高速 RAM,再读出后给视频时序模块显示 module top( input clk, input rst_n, input key1, output [5:0] seg_sel, output [7:0] seg_data, output vga_out_hs, //vga horizontal synchronization output vga_out_vs, //vga vertical synchronization output[4:0] vga_out_r, //vga red output[5:0] vga_out_g, //vga green output[4:0] vga_out_b, //vga blue output sd_ncs, //SD card chip select (SPI mode) output sd_dclk, //SD card clock output sd_mosi, //SD card controller data output input sd_miso, //SD card controller data input output sdram_clk, //sdram clock output sdram_cke, //sdram clock enable output sdram_cs_n, //sdram chip select output sdram_we_n, //sdram write enable output sdram_cas_n, //sdram column address strobe output sdram_ras_n, //sdram row address strobe output[1:0] sdram_dqm, //sdram data enable output[1:0] sdram_ba, //sdram bank address output[12:0] sdram_addr, //sdram address inout[15:0] sdram_dq //sdram data ); parameter MEM_DATA_BITS = 16 ; //external memory user interface data width parameter ADDR_BITS = 24
FPGA 读写SD卡音乐播放例程Verilog逻辑源码Quartus工程文件+文档说明,,FPGA型号Cyclone4E系列中的EP4CE6F17C8,Quartus版本17.1。 实验简介 在其他实验中我们已经完成了 SD 卡读写和音频模块的录音播放,本实验通过搜索 SD 卡中 WAV 音乐文件,然后送到音频模块播放,完成一个简单音乐播放器的功能。 2 实验原理 本实验一个关键是在没有文件系统的情况下,搜索 SD 卡每个扇区的内容,匹配出 WAV 文件, 这里有一个假设:假设每一个文件都是从一个扇区第一个字节开始而且文件是连续存储的,经过 大量实验,发现 FAT32 文件格式中的文件确实如此。 2.1 WAV 文件格式 大部分的文件都有文件头,WAV 也丌例外,我们通过分析 SD 卡一个扇区的前几个字节,判 断这个文件是否为 WAV 文件。 WAV 文件作为多媒体中使用的声波文件格式之一,它是以 RIFF 格式为标准的。RIFF 是英文 Resource Interchange File Format 的缩写,每个 WAV 文件的头四个字节便是“RIFF”,所以本实验 就简单的以每个扇区的前 4 个字节是否为“RIFF”判断该文件是否为 WAV 文件,紧接着 4 个字节 表示文件的大小,这样我们就可以确定要读取的数据量。WAV 文件头大小是 88 字节,在播放时 要把前 88 个字节的文件头去掉。 module top( input clk, input rst_n, input key1, input wm8731_bclk, //audio bit clock input wm8731_daclrc, //DAC sample rate left right clock output wm8731_dacdat, //DAC audio data output input wm8731_adclrc, //ADC sample rate left right clock input wm8731_adcdat, //ADC audio data input inout wm8731_scl, //I2C clock inout wm8731_sda, //I2C data output sd_ncs, //SD card chip select (SPI mode) output sd_dclk, //SD card clock output sd_mosi, //SD card controller data output input sd_miso, //SD card controller data input output [5:0] seg_sel, output [7:0] seg_data ); wire[9:0] lut_index; wire[31:0] lut_data; wire[3:0] state_code; wire[6:0] seg_data_0; //I2C master controller i2c_config i2c_config_m0( .rst (~rst_n ), .clk (clk ),