跳到内容

tvelliott/dsp冰



DSP_ICE公司
项目描述

DSP_ICE是一个ICE40-8K FPGA开发系统,使用gcc和冰暴项目工具链。除了PDM麦克风。提供固件/HDL示例以测试硬件,包括一个8通道、多波形音频合成器和峰值幅度,利用LTC1420 ADC通过CMSIS DSP FFT功能进行频率测量扩展模块。


为什么要开发另一个ICE40开发板?

开发DSP ICE是因为其他板没有所需的所有功能。最终目标是开发具有可交换模拟/射频前端的SDR。推动开发的预期功能包括:
1) 10/100以太网
2) 8K ICE 40设备,可使用5毫米间距的4层pcb实现
3) I2S音频输出
4) STM32F4设备,未来可与F7和H7系列兼容
5) MCU和FPGA之间的16位FSMC存储器总线接口
6) 低噪音电源,具有充足的扩展模块电流
7) 大量扩展I/O引脚设计用于利用ICE40的频率上限

8声道音频合成器测试.mp3Verilog中实现的示例audio-synth的音频输出



特征:

STM32F417 MCU(可升级,F7和H7系列的插入频率最高可达400 MHz)
ICE40HX8K-CT256 FPGA(可用的最大ICE40设备)
MCU<->FPGA之间的16位FSMC接口。接口时钟在80 MHz时运行
10-100 Mbps以太网接口(固件包括用于测试带宽的iperf3服务器)
ST-Link编程头(可以使用STM32F4-Discovery作为编程设备)
I2S音频接口(固件包括8通道音频合成器的示例,该合成器具有锯齿波、脉冲、噪声波形和通过I2S播放的歌曲)
4个PMOD类端口(包括5V和3.3V以及8个I/O引脚x 4)
基于USB FTDI的串行接口(已添加2017年8月13日更新固件以测试uart接口)
40 MHz TCXO晶体驱动FPGA和MCU(MCU时钟div/2)

Verilog源代码在这里
/固件/fpga/src

DSP ICE MCU 16位内存映射FPGA寄存器
0x6000万spi1_ctrl0x60000002 spi1_data_in0x6000004 spi1_data_输出0x6000006 spi1_cs_ctrl

0x6000008 spi2_ctrl0x600000a spi2_data_in0x600000c spi2_data_out0x600000e spi2_cs_ctrl

0x60000010 adc_data(LTC1420硬件模块,只读,位0为OF)

0x60001000音频控制0x60001002左_样本0x60001004右_样本0x60001006吨_频率0x60001008吨2_freq0x6000100a色调3_freq0x6000100c色调4_freq0x6000100e色调5_freq0x60001010吨6_freq0x60001012吨7_freq0x60001014吨8_freq0x60001016波形_控制

0x6000f000 16位随机数(ro)

PCB设计
4层
专为OSH Park 4层服务设计。(5密耳间距)
在256针BGA上组装了4块板,没有任何连接问题

左侧待办事项
PDM michophone尚未进行测试,因为无法获取零件。

Digikey有该零件的库存,但Cirrus Logic不允许他们出售
它适用于某些个人,包括本项目的作者。
没有来自Cirrus Logic的进一步解释。

构建固件

指令(在Debian 8系统上测试)1) 从此处下载GNU ARM Embedded Toolchain:https://launchpad.net/gcc-arm-embedded(https://launchpad.net/gcc-arm-embedded)测试固件的编译版本为:gcc-arm-none-eabi-5_4-2016q3-20160926-编号tar.bz22) *编辑makedefs_fp并更改PRE_PREFIX以指向工具链目录*可以选择将未压缩的工具链文件夹移动到项目文件夹并重命名为gnuarmtoolchain3) 在项目目录中,为了重新构建FPGA二进制图像,键入“sh build_fpga_image.sh”(需要安装Project Icestorm工具)yosys(合成工具)http://www.clifford.at/icestorm/ice-tools(操作文本/二进制文件和编程开发板的工具)arache-pnr(位置和路线)https://github.com/cseed/arachne-pnr注:fpga二进制配置图像将被压缩和转换写入头文件以包含到MCU固件映像:fpga_image.hfpga_image.h中的压缩图像将包含在下一个mcu上的fpga.c中固件构建(步骤4)MCU解压缩并传输fpga配置启动时的映像。4) 在项目目录中,键入“make clean”,后跟“make”生成的二进制文件将被复制到/tmp文件夹和buildimage文件夹注意:protos中的原型可以是如果安装了cfunctions,则使用“makegenprotos”重新生成。5) ST-Link程序员可用于加载生成的二进制文件(main_image_0x8000000.bin)到地址0x8000000一块售价15美元的STM32F4 Discovery板,跳线设置为“ST Link”(已拔出off),一根6针0.1英寸节距的直插式电缆即可工作。遵循编译OpenOCD的说明http://openocd.org/启动调试器:“sudo src/openocd-s tcl-f tcl/board/stm32f4discovery.cfg”'telnet localhost 4444'>重置停机>闪存写入映像擦除build_image/main_image_0x800000.bin 0x80000006) 测试硬件。telnet 192.168.1.240(默认ip地址。在config.c中编辑此地址)正在尝试192.168.1.240。。。连接至192.168.1.240。转义符为“^]”。连接至运行频率为168 MHz的STM32F417DSP_Ice 192.168.1.240:~$帮助可用命令:测试测试snd测试闪光灯1测试闪光灯2testadc公司重置出口DSP_Ice 192.168.1.240:~$testadc使用LTC1420 ADC HW模块测量500 KHz正弦波、100mVpp的示例
本例利用MCU的CMSIS DSP协处理器功能进行FFT计算。
使用DMA从FPGA BRAM传输ADC结果将显著提高采样率峰值信号502675.781 Hz,0.107 V p-p,经过时间3.51 ms[参见fft图500khz,100mV p-p] 
[见fft图325Khz,3500mV p-p] 
[见时域图500khz,3500mV p-p]DSP_Ice 192.168.1.240:~$testmem(测试16位FSMC内存映射、MCU<->FPGA接口)x100x(FPGA D-REG),4015677440字节r/w随机访问,当前值:f3e7,f3e8,错误:00x100x(FPGA D-REG),4015685632字节r/w随机访问,当前值:69c4,69c4,错误:00x100x(FPGA D-REG),4015693824字节r/w随机访问,当前值:af9a、af9a,错误:00x100x(FPGA D-REG),4015702016字节r/w随机访问,当前值:bc6a、bc6a,错误:00x100x(FPGA D-REG),4015710208字节r/w随机访问,当前值:87328732,错误:00x100x(FPGA D-REG),4015718400字节r/w随机访问,当前值:06f4,06f4,错误:00x100x(FPGA D-REG),4015726592字节r/w随机访问,当前值:32af、32af,错误:0.....DSP_Ice 192.168.1.240:~$sh test_iperf.sh连接到主机192.168.1.240,端口5201[4]本地192.168.1.3端口45612连接到192.168.2.240端口5201[ID]间隔传输带宽收回[4]0.00-1.00秒8.91 MB 74.7 Mbits/sec 0 14.3 KB[4]1.00-2.00秒8.88 MB 74.5 Mbits/sec 0 14.3 KB[4]2.00-3.00秒8.86 MB 74.3 Mbits/sec 0 14.3 KB[4]3.00-4.00秒8.86 MB 74.3 Mbits/sec 0 14.3 KB[4]4.00-5.00秒8.88 MB 74.5 Mbits/sec 0 14.3 KB[4]5.00-6.00秒8.87 MB 74.4 Mbps/秒0 14.3 KB[4]6.00-7.00秒8.86 MB 74.3 Mbits/sec 0 14.3 KB[4]7.00-8.00秒8.86 MB 74.3 Mbits/sec 0 14.3 KB[4]8.00-9.00秒8.86 MB 74.3 Mbits/sec 0 14.3 KBiperf完成。....DSP_Ice 192.168.1.240:~$testsnd(通过fpga上实现的8通道音频合成器播放歌曲)更换仪器:ch:0,instr:29,掩码:5555chan:0,频率:554更改仪器:ch:1,仪器:37,掩码:5555通道:1,频率:92更改仪器:ch:2,仪器:16,掩码:5575chan:2,频率:233更改仪器:ch:3,仪器:29,掩码:5575chan:3,频率:370更改仪器:ch:4,仪器:16,掩码:5775chan:4,频率:131更改仪器:ch:5,仪器:16,掩码:5f75chan:5,频率:131持续时间:91持续时间:91chan:0,频率:494chan:3,频率:330持续时间:91持续时间:91chan:2,频率:208chan:0,频率:554chan:3,频率:370持续时间:91持续时间:91chan:0,频率:494通道:3,频率:330持续时间:91持续时间:91chan:0,频率:554chan:3,频率:370持续时间:91持续时间:91LTC1420硬件模块和PCB cad渲染的图像

....

类似项目的链接
https://github.com/emeb/ice广播

相关资源链接

https://launchpad.net/gcc-arm-embedded网站
http://www.clifford.at/icestorm/
https://github.com/cseed/arachne-pnr
网址:http://openocd.org/

关于

ICE40 8K FPGA/STM32F4开发系统

资源

许可证

星星

观察者

叉子

发布

未发布版本

包装

未发布包