BSP-D2000平台调试CM9434串口芯片

这篇具有很好参考价值的文章主要介绍了BSP-D2000平台调试CM9434串口芯片。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.硬件原理图

BSP-D2000平台调试CM9434串口芯片,笔记

BSP-D2000平台调试CM9434串口芯片,笔记

原理图显示两块9434的INT分别接到D2000的GPIO0_A3和GPIO0_A5.

2.配置

2.1 设备树

 gpio = <&pio  1   1   1   1   1  0>;
    |      |   |   |   |   |   |  |
    |      |   |   |   |   |   |  ------表示有效电平
    |      |   |   |   |   |   |   
    |      |   |   |   |   |   ---------上下拉, 0关闭功能, 1上拉, 2下拉, 3保留
    |      |   |   |   |   |
    |      |   |   |   |   -------------驱动力,电流等级(0 - 3),级别越高,输出电流越大
    |      |   |   |   |
    |      |   |   |   -----------------gpio功能类型,0输入, 1输出, 6和外部中断,7关闭功能(具体查 
    |      |   |   |                    手册)
    |      |   |   ---------------------pin bank 内偏移(即组内第几个io口).
    |      |   |
    |      |   -------------------------哪组gpio  PA(0) PB(1)
    |      |
    |      -----------------------------指向哪个gpio控制器,  pio / r_pio(PL组)
    |     
    ------------------------------------属性名字(随便命名)

设备树配置: 

example{
   compatible = "gpio,example";
   gpios = <&pio PE 8 1 1 1 1>; 
 };

 驱动GPIO操作

    gpio = of_get_named_gpio_flags(nd, "gpios", 0, (enum of_gpio_flags *)&config);
    if (!gpio_is_valid(gpio))
        printk("gpio isn't valid\n");
    if (gpio_request(gpio, pdev->name) < 0)
            printk("gpio request failed %d\n", gpio);

    gpio_direction_output(gpio, 1);

2.2 直接操作GPIO

不用设备树配置,驱动代码中对固定GPIO操作

#define GPIO8_A6 254

ret = gpio_request(GPIO8_A6 , "gpio8_a6");

if (!ret) {

         printk("request for gpio8_a6 failed:%d\n", ret);

             return 0;

}

gpio_direction_output(GPIO8_A6 ,1);//设置GPIO8_A6为输出功能且输出高电平

2.3 寄存器操作

寄存器配置GPIO功能

BSP-D2000平台调试CM9434串口芯片,笔记

驱动GPIO寄存器操作

    void __iomem  *base_addr;
    unsigned int reg_value = 0;

    base_addr = ioremap(GPIO0_REGBASE, 0x32);
    //GPIO_SWPORTA_DDR
    reg_value = readl(base_addr + GPIO_SWPORTA_DDR);
    debug_driver("GPIO_SWPORTA_DDR = 0x%x\n",reg_value);

    reg_value = reg_value & 0xD7;
    writel(reg_value, base_addr + GPIO_SWPORTA_DDR);
    reg_value = readl(base_addr + GPIO_SWPORTA_DDR);
    debug_driver("GPIO_SWPORTA_DDR = 0x%x\n",reg_value);

    //GPIO_INTEN
    reg_value = readl(base_addr + GPIO_INTEN);
    reg_value = reg_value | 0x28;
    writel(reg_value, base_addr + GPIO_INTEN);
    reg_value = readl(base_addr + GPIO_INTEN);
    debug_driver("GPIO_INTEN = 0x%x\n",reg_value);

    //GPIO_INTMASK
    reg_value = readl(base_addr + GPIO_INTMASK);
    reg_value = reg_value & 0xD7;
    writel(reg_value, base_addr + GPIO_INTMASK);
    reg_value = readl(base_addr + GPIO_INTMASK);
    debug_driver("GPIO_INTMASK = 0x%x\n",reg_value);

    //GPIO_INTTYPE_LEVEL
    reg_value = readl(base_addr + GPIO_INTTYPE_LEVEL);
    reg_value = reg_value & 0xD7;
    writel(reg_value, base_addr + GPIO_INTTYPE_LEVEL);
    reg_value = readl(base_addr + GPIO_INTTYPE_LEVEL);
    debug_driver("GPIO_INTTYPE_LEVEL = 0x%x\n",reg_value);

    //GPIO_INT_POLARITY
    reg_value = readl(base_addr + GPIO_INT_POLARITY);
    reg_value = reg_value & 0xD7;
    writel(reg_value, base_addr + GPIO_INT_POLARITY);
    reg_value = readl(base_addr + GPIO_INT_POLARITY);
    debug_driver("GPIO_INT_POLARITY = 0x%x\n",reg_value);

    iounmap(base_addr);

2.4 用户空间操作

用户空间操作/sys/class/gpio目录

/sys/class/gpio/目录下各个文件说明:

/sys/class/gpio/export文件用于通知系统需要导出控制的GPIO引脚编号;

/sys/class/gpio/unexport 用于通知系统取消导出;

/sys/class/gpio/gpioX/direction文件,可以写入in(设置输入方向)或out(设置输出方向);

/sys/class/gpio/gpioX/value文件是可以读写GPIO状态;

/sys/class/gpio/gpiochipX目录保存系统中GPIO寄存器的信息,包括每个寄存器控制引脚的起始编号,寄存器名称,引脚总数;其中X表示具体的引脚编号。文章来源地址https://www.toymoban.com/news/detail-794867.html

到了这里,关于BSP-D2000平台调试CM9434串口芯片的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【网络BSP开发经验】Linux gmac驱动调试

    网络设备驱动是linux内核中三大类设备驱动之一,它用来完成高层网络协议的底层数据传输及设备控制。 网络设备与其他两种设备的区别: 网络接口不存在于linux的文件系统中,及/dev下没有设备文件,用户通过套接口socket函数使用网络。 网络除了响应来自内核的请求外,还

    2024年02月10日
    浏览(41)
  • FPGA学习笔记(三)——串口通信之发送数据(调试过程)

    本学习笔记主要参考小梅哥B站教学视频,网址如下: https://www.bilibili.com/video/BV1va411c7Dz?p=1 使用的编译器为Vivado,HDL语言为verilog 一、串口通信之发送数据 原理 设计代码 测试代码 仿真结果 发现Send_en拉高之前,uart_tx就置为0了,不符合常理。 转到第二个发送信号处,发现Send

    2023年04月09日
    浏览(43)
  • STM32的入门——CM3芯片STM32F103VET6的使用和相关外设

    根据《STM32库开发实战指南——基于野火指南者开发板》整理, https://gitee.com/Embedfire-stm32f103-zhinanzhe/ebf_stm32f103_zhinanzhe_ std_tutorial 在整理的过程中,还参考了其他的一些STM32资料 使用了“幕布”这款软件,添加了一些思维导图 整理框架目的: 1.梳理知识脉络 2.复习知识 被动单

    2024年02月03日
    浏览(47)
  • 飞腾CPU FT-2000/4 uboot下PHY调试记录

    飞腾爱好者技术交流群码 公众号“乌拉大喵喵”   一、环境说明 板子是FT-2000/4的开发板: 固件版本: ft-2004c_u-boot-v2-Ver0.3_202112231001.tar.gz ft2004c_v2.06_image_fix.rar   二、调试命令说明 调试PHY主要用到的命令是mii,先查看下可用的命令: mii device,缩写mii dev,查看网络控制器m

    2023年04月24日
    浏览(60)
  • 魔百盒CM311-3_YS_晨星MSO9385芯片_安卓9.0_当贝桌面_卡刷固件包

    CM311-3_YS_晨星MSO9385芯片_安卓9.0_当贝桌面_免拆U盘卡刷升级固件包 特点: 1、适用于对应型号的电视盒子刷机; 2、开放原厂固件屏蔽的市场安装和u盘安装apk; 3、修改dns,三网通用; 4、大量精简内置的没用的软件,运行速度提升,多出大量的存储空间; 5、去除应用安装限制

    2024年02月16日
    浏览(101)
  • 启明智显开源项目分享|基于Model 3c芯片的86中控面板ZX3D95CM20S-V11项目软硬件全开源

    前言: 本文为4寸 480*480 RGB接口IPS全面触屏的86中控面板(RT-Thread+LVGL)软硬件开源干货内容,该项目是综合性非常强的RTOS系列项目!项目主控芯片使用 Model 3c,整体实现了简化版本的86中控面板的功能需求。项目可以学习的点非常多,包含:Model 3c 的硬件驱动,LVGL 的移植与

    2024年02月04日
    浏览(29)
  • CDH-CM大数据管理平台详解 附CDH离线安装包

    1、大数据时代的数据特点  一般认为,大数据主要具有 四方面的典型特征——规模性(Volume)、多样性(Variety)、高速性(Velocity)和价值性(Value), 即所谓的\\\"4V“。 volume(大量):目前处理的数据量基本为PB、EB级别 velocity(高速):在极短的一段时间内能产出大量数据(秒杀

    2024年02月08日
    浏览(52)
  • FT2004(D2000)开发实战之网口stmmac报错调试(Failed to reset the dma)

    主芯片为飞腾FT2004,网口MAC为stmmac,phy芯片为ar8035,工作接口为RGMII接口 具体报错信息如下所示:

    2024年02月15日
    浏览(116)
  • CH432双串口芯片

    CH432芯片是一款扩展串口芯片,当你的MCU所带的串口不足时,可以通过此芯片来扩展出两个串口出来。 此芯片支持支持半双工收发自动切换、带自动硬件速率控制的高速串口、红外编解码、RS485、IrDA等等许多功能,本文只阐述简单串口功能的实现逻辑。 此芯片和MCU的通信方式

    2024年03月23日
    浏览(47)
  • foobar2000使用笔记

    foobar2000 使用笔记 现在大多数在线音乐不开通VIP会员,很多歌曲只能听很短几句就听不了了。即使是歌曲免费,想听的歌在不同的APP平台,也较为不便。没办法,听歌又回归到了很多年前下载到本地播放的方式。电脑上的离线音乐一直用网上评价较高的千千静听5.9.7版本。自

    2024年02月11日
    浏览(31)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包