【中科亿海微EQ6HL45开发平台测评体验】+04.RTC上板测试与Debug(zmj)
[复制链接]
本帖最后由 卿小小 于 2022-11-8 17:41 编辑
【中科亿海微EQ6HL45开发平台测评体验】+04.RTC上板测试与Debug(zmj)
中科亿海微EQ6HL45开发板的RTC测试工程实现了配置DS1302-RTC并读取日历时间,最后通过串口发送到PC的功能,通过串口调试助手可以看到时间信息。
为了测试DEBUG功能,我在工程中增加了呼吸灯代码breath.v控制LED4;Led1/LED2/LED3作为操作状态指示灯闪亮。串口波特率115200bps。
03_RTC_UART_LED
1. RTC简介
RTC( Real-Time Clock)实时时钟为系统提供一个可靠的时间,并且在断电的情况下,RTC实时时钟也可以通过电池供电,保证RTC功能一直运行下去。
中科亿海微EQ6HL45开发板的RTC设计采用DALLAS公司的低功耗实时时钟芯片(型号DS1302),它可以提供到2099年内的日历功能。RTC通过类SPI总线向FPGA传送8位数据( BCD码),数据包括秒,分,小时,日期,天,月和年。 RTC芯片需要外接一个32.768KHz的无源晶振,这样才能让RTC可以准确的提供时钟信息。同时为了产品掉电以后,实时时钟还可以正常运行,一般需要另外配一个纽扣电池(型号CR1220,电压为 3V)给时钟芯片供电,这样保证DS1302始终正常运行提供时间信息。
在原理图中DS1302的VCC2为主电源,VCC1为后备电源。
//------RTC-DS1302原理图
2. 部分代码解析
工程框架如图所示:
2.1 端口声明
端口声明中主要是添加了led[3:0],它指向了开发板的LED1~LED4。
//------rts_top的端口声明
//---system clock
input sys_clk ,//50MHz
input rst_n ,//KEY1_RST
//---RTC-ds1302
output rtc_sclk ,//spi_clk
output rtc_ce ,//spi_ce
inout rtc_data ,//spi_data
//---led
output wire [3:0] led ,//LED1~LED4
//---
input uart_rx ,
output uart_tx
2.2 呼吸灯模块例化
以前写了一个呼吸灯代码breath.v,主要是通过可变PWM输出控制LED实现呼吸效果。
在顶层模块中例化呼吸灯模块,它控制板卡上的LED4实现呼吸闪亮效果。
//------led[3]
//------breathe_led
breath u_breathe_led(
.clk (sys_clk ),
.led (led[3] )
);
2.3 操作状态指示灯
除去呼吸灯LED4,剩下的Led1/LED2/LED3作为操作状态指示灯闪亮,用来标识系统的工作状态。
//------led[2:0]
//------uart
uart_send uart_send_m0(
.clk (sys_clk ),
.rst_n (rst_n ),
//---
.led (led[2:0] ),//
//---
.read_second (read_second ),
.read_minute (read_minute ),
.read_hour (read_hour ),
.read_date (read_date ),
.read_month (read_month ),
.read_week (read_week ),
.read_year (read_year ),
.uart_rx (uart_rx ),
.uart_tx (uart_tx )
);
assign led = (state == WAIT)? 3'b111 : ((state == SEND)? 3'b000 : 3'b000);
3. 添加Debug信号
工程在SYNTHESIS综合完成后可以通过“SYNTHESIS/Set_Up_Debug”添加Debug调试信号,该步骤与AMD-Xilinx的Vivado基本完全相同。
详细步骤如下所示:
4. 功能测试
详细操作步骤如下:
做好准备工作,烧录程序,然后通过串口调试助手观察串口信号,eLINX软件添加ILA观察Debug信号。
//------准备工作
连接串口、JTAG和电源线,然后上电。
//------烧录步骤(类似Quartus-II)
①.Auto-Detect:JTAG扫链,找到FPGA(EQ6HL45);
②.选中FPGA(eHiWay-EQ6HL45);
③.Add-File...:添加烧录文件rtc_prj.jpsk;
④.勾选□Program/Configure;
⑤.点击Start进行烧录。
//------Debug使用(类似Vivado)
a.Debug路径:Window/Dashboard/New-Dashboard。
b.默认ila_0,直接点击OK即可打开ILA观察信号。
c.添加信号,设置触发位置以及触发条件,观察信号。
//------测试结果(图片+视频)
a.串口调试助手设置波特率115200bps(8n1),可以观察到FPGA发送的时间信息(每秒一次)。
b.ILA窗口:可以观察到时间2022年11月08日15:07:28跳变到15:07:29。
c.Led1/LED2/LED3作为操作状态指示灯闪亮,用来标识系统的工作状态。
d.LED4实现呼吸灯效果。
//------准备工作
//------烧录步骤
//------Debug使用(类似Vivado)
//------测试结果(图片+视频)
附. 呼吸灯代码breath.v
//------END
|