0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

LED裸机驱动电路图设计及编写汇编代码

454398 来源:博客园 作者:Suzkfly 2020-09-27 16:35 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1. 确定硬件连接

打开OK6410底板电路图,找到LED,可以发现NLEDx为0时LED点亮。

找到LED的控制引脚,发现LED控制引脚通过连接器连到了核心板:

打开核心板电路图,找到对应的连接器中相同位置下的引脚,发现核心板上的命名与底板相同。

注意:设计者为了方便会将核心板与底板连接处的端口命名为相同的名字,但判断两者的连接位置与端口名其实是没有关系的。从底板上可以看出4个LED所在的连接器引脚编号分别为47,49,46和39,因此在核心板上应该找连接器上这几个编号的引脚,核心板连接器上47,49,46和39号引脚才是与底板LED相连的引脚,只不过设计者为了方便,将核心板上这几个引脚也命名为NLED1~4。

继续在核心板上寻找,能找到NLEDx控制的引脚为GPM0~3

2. 确定GPM相关寄存器的地址和要写入的值

打开6410的芯片手册,找到GPM相关寄存器

可以发现有3个寄存器与GPM相关,三个寄存器的地址分别为0x7F008820、0x7F008824、0x7F008828,其中GPMCON用于配置引脚功能

我们要控制LED需要把GPM0~3都配置成输出模式,因此GPMCON的位[15:0]应为0x1111。GPMDAT用于控制引脚输出电平

如果要控制LED全亮,则GPMDAT位[3:0]应为0x0,全灭则为0xF。GPMPUD用于使能引脚的上下拉,一般会将LED控制引脚配置为上拉模式(注意区分信号的输入输出和电流的流入流出,GPMCON配置输出指的是信号从6410输出到外部,当输出信号为0的时候电流会流入6410芯片)。因此GPMPUD的位[7:0]应为0xAA。

3. 编写汇编代码

编写led.s

 1 .section .text
 2 .global _start
 3 _start:
 4     LDR R0, =0x7F008820        @GPMCON,也可以认为是GPM寄存器基地值
 5 
 6     LDR R1, [R0]            @取出GPMCON的值
 7     LDR R2, =0xFFFF
 8     BIC R1, R1, R2
 9     LDR R2, =0x1111
10     ORR R1, R1, R2
11     STR R1, [R0]            @配置GPM0~3为输出模式
12 
13     LDR R1, [R0, #4]        @取出GPMDAT的值
14     ORR R1, R1, #0xF    
15     STR R1, [R0, #4]        @GPMDAT低4位置1,所有LED关闭
16 
17     LDR R1, [R0, #8]        @取出GPMPUD的值
18     BIC R1, R1, #0xFF
19     ORR R1, R1, #0xAA
20     STR R1, [R0, #8]        @GPM0~3使能上拉
21 loop:
22     LDR R1, [R0, #4]
23     BIC R1, R1, #0xF
24     ORR R1, R1, #0xE
25     STR R1, [R0, #4]        @点亮第一个LED
26     BL delay
27     
28     LDR R1, [R0, #4]
29     BIC R1, R1, #0xF
30     ORR R1, R1, #0xD
31     STR R1, [R0, #4]        @点亮第二个LED
32     BL delay
33 
34     LDR R1, [R0, #4]
35     BIC R1, R1, #0xF
36     ORR R1, R1, #0xB
37     STR R1, [R0, #4]        @点亮第三个LED
38     BL delay
39 
40     LDR R1, [R0, #4]
41     BIC R1, R1, #0xF
42     ORR R1, R1, #0x7
43     STR R1, [R0, #4]        @点亮第四个LED
44     BL delay
45     B loop
46 delay:
47     LDR R2, =0x1000000
48 delay_loop:
49     SUB R2, R2, #1
50     CMP R2, #0
51     BNE delay_loop
52     MOV PC, LR
53 
54     .end

输入命令:

arm-none-linux-gnueabi-gcc -c led.s -o led.o

arm-none-linux-gnueabi-ld -Ttext 0 led.o -o led.elf

arm-none-linux-gnueabi-objcopy -O binary led.elf led.bin

此时生成了可执行文件led.bin

4. 下载文件

连接minicom,重启后进入U-boot,输入dnw 50008000

在虚拟机中输入:sudo dnw led.bin

下载成功后在开发板中输入:go 50008000

此时可以看到4个LED呈流水灯效果。

注意:我是利用U-boot下载程序,此时U-boot已经运行起来了,而U-boot已经做了很多初始化工作了,如设置堆栈指针、关闭看门狗、指定外设基地址等,如果想要将程序烧写进Nandflash的0地址,则这些初始化工作必须自己做。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    243

    文章

    24438

    浏览量

    687484
  • 寄存器
    +关注

    关注

    31

    文章

    5589

    浏览量

    129074
  • 连接器
    +关注

    关注

    102

    文章

    15922

    浏览量

    145429
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    LED驱动电路失效分析及解决方案

    近年来,随着LED照明市场的快速扩张,越来越多的企业加入LED研发制造行列。然而行业繁荣的背后,却隐藏着一个令人担忧的现象:由于从业企业技术实力参差不齐,LED驱动
    的头像 发表于 09-16 16:14 674次阅读
    <b class='flag-5'>LED</b><b class='flag-5'>驱动</b><b class='flag-5'>电路</b>失效分析及解决方案

    电路图:求马兰士功放DA -J7MKII电路图

    跪求马兰士功放DA -J7MKII电路图
    发表于 08-13 13:00

    LED驱动电路设计

    内容提要本书以LED光源及其驱动技术为主线,全面系统地介绍了LED的特性、LED驱动电路及其相关
    发表于 07-18 15:26

    门老师教你快速看懂电子电路图

    本文从最基本的电容电阻开讲,包含模电数电,以及部分电气知识点,深入浅出。 资料介绍: 全文共分7课,以老师授课和师生交流的形式系统地介绍了电子电路识图方面的基本知识和技能,包括电路图的基本概念和要素
    发表于 05-16 15:17

    多年私藏的电源电路图锦集

    1、3~25V 电压可调稳压电路图 2、10A3~15V 稳压可调电源电路图 3、用 MC34063 做 3.6V 电转 9V 电路图 纯分享贴,有需要可以直接下载附件获取文档! (如果内容有帮助可以关注、点赞、评论支
    发表于 04-24 16:58

    《电子懒人的基础硬件电路图讲解》

    包含了简单的,基础的单元电路图。积累这些基础的电路图,对分析一个复杂的电路很有帮助。因为一个复杂的电路图可以按照功能来划分成不同的模块,再对模块进行分解成不同的单元
    发表于 04-24 16:40

    迅为RK3568开发板helloworld 驱动实验-驱动编写

    第一个驱动程序—helloworld。 3.1 驱动编写 本小节来编写一个最简单的驱动——helloworld
    发表于 04-01 15:20

    如何看懂电路图——超级完整版

    电子设备中有各种各样的。能够说明它们工作原理的是电原理,简称电路图电路图有两种,一种是说明模拟电子电路工作原理的。它用各种图形符号
    发表于 04-01 15:19

    tcl罗格朗楼道声光开关电路图太复杂了,请高手帮忙分析一下电路图的控制原理?

    上图是我自己根据tcl罗格朗楼道声光开关实物画的电路图,太复杂了,请高手帮忙分析一下电路图的控制原理?或者发一份原厂电路图及分析?谢谢!
    发表于 03-15 18:33

    一周带你看懂电路图

    教你看懂电路图 电源电路单元 一张电路图通常有几十乃至几百个元器件,它们的连线纵横交叉,形式变化多端,初 学者往往不知道该从什么地方开始, 怎样才能读懂它。其实电子电路本身有很强的规律
    发表于 03-03 15:05

    348个实用电路图参考,典型电路汇总(建议下载!)

    本资料包含348个实用电路图参考,包含开关电源电路图、音频功放电路图、超声波电路图等,全是实战设计干货,免费分享给大家参考学习~ 获取完整资料可下载附件哦!!!!
    发表于 02-27 16:18

    电源电路图深度讲解

      用电路元件符号表示电路连接的,叫电路图电路图是人们为研究、工程规划的需要,用物理电学标准化的符号绘制的一种表示各元器件组成及器件关系
    的头像 发表于 02-18 10:46 4546次阅读
    电源<b class='flag-5'>电路图</b>深度讲解

    请教ADS1216Y使用时的电路图

    到ADS1216Y的典型电路呢,希望得到TI的工程师回答,谢谢! 数据手册里面没有典型电路图。一些引脚不知道怎么接,由于距离单片机比较远,使用的连接线越少越好,即想用最少的连接线驱动ADC。
    发表于 01-21 07:55

    EE-134:为SHARC系列编写C兼容汇编代码中断处理程序

    电子发烧友网站提供《EE-134:为SHARC系列编写C兼容汇编代码中断处理程序.pdf》资料免费下载
    发表于 01-07 13:58 0次下载
    EE-134:为SHARC系列<b class='flag-5'>编写</b>C兼容<b class='flag-5'>汇编</b><b class='flag-5'>代码</b>中断处理程序

    感应笔电路图

    感应笔电路图
    发表于 12-23 16:48 18次下载