【六一】【海思SS528】GPIO寄存器操作 - 使能GPIO管脚输出高、低电平

这篇具有很好参考价值的文章主要介绍了【六一】【海思SS528】GPIO寄存器操作 - 使能GPIO管脚输出高、低电平。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


【六一】【海思SS528】GPIO寄存器操作 - 使能GPIO管脚输出高、低电平

一、概述

这篇文章根据海思SS528芯片提供的《22AP30 H.265编解码处理器用户指南.pdf》文档(文档路径:SS528ReleaseDoc\hardware\chip),演示怎样操作GPIO寄存器来控制某个IO口输出高电平,本文控制的是 GPIO20_6

关于如何操作寄存器的步骤,在文档的13.6.3有提供说明,结合本文目的分为三个步骤:

  • 配置复用控制寄存器,使能GPIO功能;
  • 配置GPIO_DIR寄存器,选择输出;
  • 配置GPIO_DATA寄存器,写入输出值 1 ,表示输出高电平。
    【六一】【海思SS528】GPIO寄存器操作 - 使能GPIO管脚输出高、低电平

【六一】【海思SS528】GPIO寄存器操作 - 使能GPIO管脚输出高、低电平

二、配置复用控制寄存器,使能GPIO功能

复用是指该管脚有多种功能,可以根据控制寄存器里的值,来选择使用哪个功能。
关于GPIO管脚复用控制寄存器的说明在 22AP30_PINOUT_CN.xlsx (文档路径:SS528ReleaseDoc\hardware\chip),打开22AP30_PINOUT_CN.xlsx,在下面选择表格管脚控制寄存器,按Ctrl+F搜索GPIO20_6,找到我们要配置的管脚寄存器,如下图:
【六一】【海思SS528】GPIO寄存器操作 - 使能GPIO管脚输出高、低电平

根据表格信息知道,

  • 寄存器地址0x17c701d0
  • 寄存器的值可以配置为0x1200,表示 使能GPIO功能、IO6挡位8、关闭上拉、打开下拉
    【六一】【海思SS528】GPIO寄存器操作 - 使能GPIO管脚输出高、低电平

【六一】【海思SS528】GPIO寄存器操作 - 使能GPIO管脚输出高、低电平

三、配置GPIO_DIR寄存器,选择输出

要配置寄存器,首先需要找到它的地址,GPIO_DIR寄存器是采用 基地址+偏移地址 的方式来获得的。

GPIO20基地址在《22AP30 H.265编解码处理器用户指南.pdf》13.6.4可以查到,为:0x110a_4000
【六一】【海思SS528】GPIO寄存器操作 - 使能GPIO管脚输出高、低电平

GPIO_DIR的偏移地址为400,GPIO20_6设置为输出功能,即设置的值第6位为1,其他都为0,用二进制表示为0100 0000,转换为十六进制为0x40;
【六一】【海思SS528】GPIO寄存器操作 - 使能GPIO管脚输出高、低电平

小结

  • GPIO20_6的GPIO_DIR寄存器地址为:0x110a4400
  • GPIO20_6设置为输出,值为:0x40

【六一】【海思SS528】GPIO寄存器操作 - 使能GPIO管脚输出高、低电平

四、配置GPIO_DATA寄存器,输出高电平

要配置寄存器,首先需要找到它的地址,GPIO_DATA寄存器也是采用 基地址+偏移地址 的方式来获得的。

GPIO20基地址在《22AP30 H.265编解码处理器用户指南.pdf》13.6.4可以查到,为:0x110a_4000,它的偏移地址给了一个范围,我们选择0x3FC,表示寄存器的[7:0]操作全部有效。如下图:
【六一】【海思SS528】GPIO寄存器操作 - 使能GPIO管脚输出高、低电平

我们要使GPIO20_6输出高电平,即设置的值第6位为1,其他都为0,用二进制表示为0100 0000,转换为十六进制为0x40;

小结

  • GPIO20_6的GPIO_DATA寄存器地址为:0x110a43fc
  • GPIO20_6设置为输出,值为:0x40

【六一】【海思SS528】GPIO寄存器操作 - 使能GPIO管脚输出高、低电平

五、测试

根据海思SDK提供的寄存器工具,测试GPIO操作,测试工具在SDK包的 路径为:SS528V100R001C02SPC003\SS528V100_SDK_V2.0.0.3\osdrv\tools\board\reg-tools-1.0.0\bin

测试结果如图:
【六一】【海思SS528】GPIO寄存器操作 - 使能GPIO管脚输出高、低电平

测试命令如下:

# 配置复用寄存器
bspmm 0x17c701d0 0x00001200

# 配置方向寄存器为输出
bspmm 0x110a4400 0x40

# 配置输出高电平
bspmm 0x110a43fc 0x40

# 配置输出高电平
bspmm 0x110a43fc 0x00

【六一】【海思SS528】GPIO寄存器操作 - 使能GPIO管脚输出高、低电平
如果文章有帮助的话,点赞👍、收藏⭐,支持一波,谢谢 😁😁😁文章来源地址https://www.toymoban.com/news/detail-475788.html

到了这里,关于【六一】【海思SS528】GPIO寄存器操作 - 使能GPIO管脚输出高、低电平的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 荔枝派zero驱动开发04:GPIO操作(寄存器方式)

    参考:https://wiki.sipeed.com/soft/Lichee/zh/Zero-Doc/Drive/GPIO_mmap.html 上一篇:荔枝派zero驱动开发03:设备树基础 下一篇:荔枝派zero驱动开发05:GPIO操作(使用GPIO子系统) :ioremap/iounmap,copy_from_user/copy_to_user,readl/writel 设备树修改: 本文不涉及设备树操作,但由于默认设备树

    2024年01月20日
    浏览(46)
  • 【汇编语言】栈区与SS:SP寄存器

    汇编语言 - 栈 栈是一块特殊的内存空间,本文涉及的CPU为8086CPU,所有与内存地址有关的数字皆为16进制 栈的运行规律 - 先进后出,后进先出 以下为入栈的过程: 以下是出栈的过程: 以上就是栈的运行机制,栈的入栈叫做push,出栈叫做pop 在8086CPU中,栈是一块特殊的内存空

    2023年04月08日
    浏览(61)
  • STM32 入门 —— 寄存器与 GPIO

    STM32 总线构图: 什么是寄存器 根据百度百科介绍,寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。简单来说,寄存器就是存放东西的东西,存放的东西是指令、数据或地址 存放数据的寄存器最容易理解,不同

    2024年02月04日
    浏览(47)
  • STM32 寄存器配置笔记——GPIO配置输出

           本文主要介绍GPIO 作为输出时的寄存器配置。包括时钟配置,输出模式配置。以STM32F10xxx系列为例,配置PA8、PD2端口作为输出,输出高/低电平。         1)GPIO外设时钟          通过查找STM32F10xxx中文参考手册得知,GPIO PORT口的时钟配置在RCC_APB2ENR寄存器的第2~6位,

    2024年01月24日
    浏览(68)
  • 明解STM32—GPIO理论基础知识篇之寄存器原理​

    一、前言         在之前的STM32的GPIO理论基础知识中,分别对基本结构和工作模式进行了详细的介绍。GPIO基本结构中主要对GPIO内部的各个功能电路逐一的进行的分析;GPIO工作模式中主要介绍GPIO应用在不同的使用场景下,GPIO端口的静态特征配置和动态的工作模式,同时对

    2024年02月16日
    浏览(48)
  • STM32 | STM32时钟分析、GPIO分析、寄存器地址查找、LED灯开发(第二天)

    寄存器 :寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成 在计算机领域,寄存器是CPU内部的元件,包括通用寄存器、专用寄存器和 控制寄存器 。寄存

    2024年03月08日
    浏览(50)
  • 【海思SS528】MPP媒体处理软件V5.0 | 音频模块 - 学习笔记

    MPP是Media Process Platform的缩写,即媒体处理平台。MPP媒体处理软件V5.0,是媒体处理平台开发手册的第五版。 本篇文章主要记录学习音频模块的笔记,很多内容在开发手册里都有的,这里只记录自己认为重要的一些内容,供后续学习、记忆。 音频(AUDIO)模块包括四个子模块: 音

    2024年02月13日
    浏览(51)
  • samba-3.3.16 在海思平台(SS528)交叉编译及问题解决

    远程开关机功能需要用到samba里面的一个工具 net ,所以需要交叉编译samba,并将该工具放到 SS528 海思开发板上运行。由于新的代码太大且 3.3.16 的版本已经够用,所以就没用最新的代码。 编译系统:Linux virtual-machine 5.4.0-84-generic #94~18.04.1-Ubuntu SMP Thu Aug 26 23:17:46 UTC 2021 编译器

    2024年02月06日
    浏览(79)
  • STM32F103ZET6 GPIO工作模式介绍+使用寄存器点亮第一个LED灯

    目录  GPIO的工作模式介绍 1.输入模式(模拟、上拉、下拉、浮空) 2.输出模式(推挽/开漏) 3.复用功能(推挽/开漏) 4.模拟输入输出(上下拉无影响) 如何使用寄存器点亮第一个LED灯         在输入模式时,施密特触发器打开,输出被禁止。可通过输入数据寄存器 GPIOx_

    2024年02月06日
    浏览(67)
  • STM32萌新学习日志——用GPIO外设寄存器输出点亮LED对比库函数点亮LED——谈学习感悟

            本周学习STM32单片机,由于之前学过51单片机,为了便于切入,先学习了寄存器点亮LED灯的方法,整体思路与51单片机相似。在基本掌握后,尝试自己构建库函数雏形,过程比较困难,后面开始借鉴野火官方库函数。         这里其实建议大家在学会构建库函数后

    2024年03月17日
    浏览(93)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包