参考设计

收藏 

评论 

AG1280Q48 最小系统板 V1

smallembedded 发布

AG1280Q48 最小系统

main.png3d.png 版本 V1.0

  • 外形和引脚定义参考了 Arduino Pro Mini,四层板
  • 只需单路 3.6V~5.5V电源供电,板载两路 LDO,IO 电平为 3.3V
  • 其他板载外设包括:有源晶振,SPI Nor Flash,按键,烧写接口,灯
  • SPI Flash 供电带二极管,可以从背面飞线出来独立烧写
  • 我的做完已经吃灰了

AG1280Q48 简介

  • 自称 CPLD,但我觉得是个内置 Flash 的 FPGA。。
  • LUT4+Carry+FF(chain) 的 Logic Slice 结构
  • 1280 LUTs, 1 PLL, 14*4.5kbit Block RAM
  • 便宜
  • 下载器也便宜,某宝十几块的 USB Blaster 就能用

教程 1:使用内置 PLL 点亮板载的 LED

这个教程:

  • 通过使用内置 PLL 的无输入模式产生一个不怎么准确的时钟
  • 使用该时钟点灯,并随便生成一点什么东西到其他 IO 上,以证明它们没坏
1.1 安装软件

该系列 FPGA/CPLD 需要用到 Quartus II 进行逻辑综合,使用自有的软件 Supra 进行 Map, Place & Route 等。

首先安装 Quartus II 13.1 以及相应版本的 Cyclone IV 系列器件库。
官网传送门 另外别去下最新版,我踩过坑了()
至于 Quartus II 的正确安装方式,请自行搜索。

然后安装 AGM 的软件 Supra,下载链接可以在 官网的这里 找到。
在等待百度云下载结束的一天内,您可以先去干点别的。

1.2 安装软件(第二天)

以 Windows 系统为例,解压下载到的 Supra 压缩包到合适的位置。
Supra 无需安装,启动时运行 bin/Supra.exe 即可。

1.3 在 Supra 中新建工程

运行 Supra,选择 File - Project - New Project: 1.png2.png 新建一个叫做 blinky1280 的工程,按图填写好工程目录和工程名称,点击 Save。

1.4 在 Supra 中使用内置 PLL

由于我们需要使用内部的 PLL,所以需要先创建 IP。 在 Supra 中创建 IP 的步骤如下,选择 Tools - Create IP - Create PLL : 23.png 这里我们将该 IP 生成的 Verilog 模块命名为 inpll;PLL Type 选择 PLLX;Input Frequency 随便写;Feedback Mode 选择 NO_REFERENCE;output count 选择 1;Output 1 的输出频率填写为 25MHz;点击 Generate: 4.png 下面会打印出实际且大概也不太准的频率。 然后在工程目录下会生成 inpll.ip 和 inpll.v 两个文件,前者需要在编译时在 Supra 中引入,后者则是点灯代码中需要例化的 PLL 模块原型。

1.5 建立 Quartus II 工程并完成逻辑综合

点击 Tools - Migrate,按照图中填写工程细节: 5.png 点击 Next 后,运行 Quartus II,打开工程(目录下的 blinky1280.qpf),该工程中自动包含了一个 blinky1280.v。
打开该文件,并编写点灯代码: 6.png

module blinky1280 (
    input wire clk,
    input wire rst_n,
    output wire led,
    output [17:0] gpio
);

    wire clk_pll_o;

    inpll pll_inst (
        .clkin(clk),        // PLL.clkin MUST connect to PIN_XX_GB
        .clkfb(clk_pll_o),
        .pllen(1'b1),
        .resetn(rst_n),
        .clkout0en(1'b1),
        .clkout1en(1'b0),
        .clkout2en(1'b0),
        .clkout3en(1'b0),
        .clkout0(clk_pll_o),
        .clkout1(),
        .clkout2(),
        .clkout3(),
        .lock()
    );

    reg [24:0] counter;

    assign led = counter[24];
    assign gpio[17:0] = counter[23:6];

    always @(posedge clk_pll_o or negedge rst_n) begin
        if (!rst_n) 
            counter <= 25'b0;
        else
            counter <= counter + 1;
    end

endmodule

保存该文件。 然后,确定一下将 PLL IP 设置为 Design Partition: 6.5.png 选择 Quartus II 中的 Tools - Tcl Scripts,选择目录下的 af_quartus.tcl 并运行: 7.png

1.6 Place & Route

当 Quartus II 完成逻辑综合后,回到 Supra,点击 Next: 8.png 在这里先不要点 Finish,先打开工程目录下的 blinky1280.asf 分配引脚:

set_location_assignment PIN_13 -to clk 
set_location_assignment PIN_48 -to led 
set_location_assignment PIN_41 -to rst_n 

set_location_assignment PIN_9 -to gpio[0]
set_location_assignment PIN_11 -to gpio[1]
set_location_assignment PIN_12 -to gpio[2]
set_location_assignment PIN_14 -to gpio[3]
set_location_assignment PIN_15 -to gpio[4]
set_location_assignment PIN_16 -to gpio[5]
set_location_assignment PIN_17 -to gpio[6]
set_location_assignment PIN_18 -to gpio[7]
set_location_assignment PIN_19 -to gpio[8]
set_location_assignment PIN_20 -to gpio[9]
set_location_assignment PIN_22 -to gpio[10]
set_location_assignment PIN_23 -to gpio[11]
set_location_assignment PIN_25 -to gpio[12]
set_location_assignment PIN_42 -to gpio[13]
set_location_assignment PIN_43 -to gpio[14]
set_location_assignment PIN_44 -to gpio[15]
set_location_assignment PIN_45 -to gpio[16]
set_location_assignment PIN_46 -to gpio[17]

保存,其他参数默认就行,点击 Finish,Supra 就会开始 Place & Route。 一切顺利会输出这样: 9.png 如果不顺利,那就自己多试试,解决不了建议换回 Altera,或者期待天降原厂 FAE

1.7 烧写

准备一个 USB Blaster,我试过淘宝十几块的和正点原子的,都可以用,区别是便宜的慢。
先将 USB Blaster 按照引脚定义对应连接到板子上,然后板子上电,将 USB Blaster 接入电脑。
在 Supra 中打开 Tool - Program,点击 Query Device ID;
AG1280Q48 的 Device ID 是 0x00120010,如果正确连接会读到这个数值。 选择刚刚生成的烧录文件,其中:

  • blinky1280_sram.prg 是烧写到内部 SRAM 的,掉电后丢失
  • 需要掉电保存的话选择 blinky1280_hybird.prg

这里以 SRAM 为例。烧写成功如下图,这时板子上的灯应该就会闪了。 101.pngIMG_20210923_212945.jpg 用示波器测量其他引脚,能看到方波输出: 24204739.png

教程 2:吃灰

将点灯后的板子用立创商城的防静电袋子装起来,这里使用了这个板子上用的 LDO 的袋子。
里面还需要放上每次打板送的干燥剂,并尽量排出空气: 吃灰01.jpg吃灰02.jpg 然后找个地方摆起来。 吃灰时需要注意,避免外力挤压;避免滑落后踩到;避免不慎食用;不要加入鸡蛋。

其他资料 & 参考

教程 1 涉及到的代码及烧录文件见附件,可用于快速测试好坏。

其他参考: 【LED灯屏控制器】国产FPGA之 AG10KSDE176 初探(1) - ReCclay 该链接中的网盘链接包含 Supra 的使用手册 【LED灯屏控制器】AG10K 烧录程序(2) - ReCclay AGM技术问题解答集锦-海振远科技 (我没去要这个的完整版

参考设计图片
相关器件
器件 类型 描述 数据手册
CL05B104KO5NNNC 贴片电容 精度:±10% 容值:100nF 额定电压:16V 温漂系数(介质材料):X7R 材质:X7R 点击下载
CL05A475MP5NRNC 贴片电容 精度:±20% 容值:4.7uF 额定电压:10V 温漂系数(介质材料):X5R 材质:X5R 点击下载
B5819W 肖特基二极管 直流反向耐压(Vr):40V 平均整流电流(Io):1A 正向压降(Vf):600mV @ 1A 40V,1A,VF=0.6V@1A 点击下载
0603L050SLYR PTC自恢复保险丝 材料类型:聚合物 最大电压:6V 跳断电阻值(Max):350mΩ 跳闸电流:1A 最大动作时间:100ms 点击下载
PZ254V-12-6P 排针 间距:2.54mm 总PIN位数:6 排数:2 行距:2.54mm 安装类型:直插 触头材质:黄铜 颜色:黑色 点击下载
PZ200V-12-12P 排针 间距:2.00mm 总PIN位数:12 排数:2 行距:2.00mm 安装类型:直插 触头材质:黄铜 颜色:黑色 点击下载
2.54-1*20P直针 排针 点击下载
0402WGF1002TCE 贴片电阻 阻值(欧姆):10K 精度:±1% 功率:1/16W 温度系数:±100ppm/°C 点击下载
RS3236-3.3YF5 低压差线性稳压(LDO) 输出类型:固定 最大输入电压:7.5V 输出电流:500mA 输出电压(最小值/固定值):3.3V 3.3V固定输出,Iout=500mA(Max),Vin=7.5V(Max),带过温保护 点击下载
GD25Q40CTIG FLASH存储器 存储器构架(格式):FLASH 存储器接口类型:SPI - Dual/Quad I/O 存储器容量:4Mb (512K x 8) 存储器类型:Non-Volatile 4-Mbit(512K x8bit),SPI,Dual SPI,Quad SPI,120MHz,电压:2.7V to 3.6V 点击下载
RS3236-1.2YF5 线性稳压器(LDO) 点击下载
OT322525MJBA4SL 有源晶振 点击下载
群聊设计,与管理员及时沟通

欢迎加入EEWorld参考设计群,也许能碰到搞同一个设计的小伙伴,群聊设计经验和难点。 入群方式:微信搜索“helloeeworld1”或者扫描二维码,备注:参考设计,即可被拉入群。 另外,如您在下载此设计遇到问题,也可以微信添加“helloeeword1”及时沟通。

相关项目
电路图 更多>
下载中心 更多>
大学堂 更多>
论坛推荐 更多>
Datasheet 更多>