基于NIOS-II的示波器:PART1 按键&显示屏驱动&界面

本文介绍了基于NIOS-II的示波器实现,包括按键驱动、显示屏驱动和界面设计。硬件准备涉及飞线调试,Quartus工程创建,软核配置。软件设计中,详细说明了显示器驱动的初始化、中断处理和工具类的设计。中断主要用于背光控制,按键通过总线读取。最后展示了V0.1版本的运行示意。
摘要由CSDN通过智能技术生成

NIOS II 相关资料以及基础入门

《NiosII的奇幻漂流》

《Nios II那些事儿》

本文所有的硬件基础以及工程参考来自魏坤示波仪,重新实现驱动并重构工程。

基于NIOS II的示波器实现

Version 0.1 按键驱动&显示屏驱动&界面实现

Part 0.1.0 硬件准备

这里写图片描述
这里写图片描述
这里写图片描述

由于屏幕会挡住烧录口,这里飞线以供调试。

Part 0.1.1 创建Quartus工程
  • 软核部分:利用SOPC Builder建立kernel,软核具体配置如下

    这里写图片描述

    • 由于显示芯片利用的ILI9481,这里利用LCD前缀字样PIO口与LCD芯片通信,利用、PWM_LED控制LCD的亮度
    • 利用KEY_PORT读取按键的输入

    这里待补全各组件参数设置

  • 顶层图

    这里写图片描述

    其中SYS_PLL输出S0 S1均为100MHZ的时钟信号

    pwm_controller则通过计数器控制屏幕的亮度,代码如下

    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_unsigned.all;
    
    entity pwm_controller is
    port(
        clk:in std_logic;
        pwm_led_in:in std_logic_vector(13 downto 0);
        pwm_led_out:out std_logic
    );
    end pwm_controller;
    
    architecture pwm_arch of pwm_controller is
    
    signal counter:std_logic_vector(13 downto 0);
    
    begin
    process(clk)
    begin
        if(clk'event and clk = '1') then
            if(counter >= pwm_led_in) then
                pwm_led_out<= '0';
            else
                pwm_led_out<= '1';
            end if;
            counter <= counter + 1;
        end if;
    end proce
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值