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

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

3天内不再提示

英创信息技术嵌入式Linux工控板EM9160介绍

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-01-14 10:57 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

I2C总线是一种2线制的主从通讯协议,主要运用于器件之间的数据通讯,在嵌入式系统中得到非常广泛的应用。作为一款高性价比的嵌入式Linux工控板,EM9160的对I2C总线提供了良好的支持,其主要特点是EM9160的16位GPIO中的任意位都可作为I2C总线的时钟信号SCL或数据地址信号SDA,这样客户可根据自己整机的具体情况,灵活的配置EM9160的GPIO管脚来作为I2C总线信号。

在Linux环境,I2C的驱动程序已自动加载,其设备文件名为“/dev/em9x60_i2c”。应用程序通过3个IOCTL命令来操作I2C接口:首先需要配置I2C总线资源,包括SCL、SDA信号和通讯速度,然后才能根据具体芯片的特性对其内部寄存器进行读写操作。以下以电力智能终端中广泛使用的RTC芯片RX-8025为例,对I2C的操作流程作进一步的介绍。

硬件电路:RX-8025是一种带I2C总线接口的实时时钟(RTC)芯片,具有精确调整的晶体频率,可满足电力智能终端需求。在下图中,EM9160的GPIO6作为I2C总线的SCL信号、GPIO7作为SDA信号,注意10K上拉是必须的。

I2C总线配置:PWM调用函数fd=open(”/dev/em9x60_i2c”, O_RDWR)打开设备文件后,首先需要配置总线,具体操作是把参数设置到指定的数据结构中,再调用IOCTL命令如下:

struct i2c_config config; //定义在em9x60_drivers.h
config.scl_gpio_num = GPIO6; //GPIO6作为SCL,定义见em9x60_drivers.h
config.sda_gpio_num = GPIO7; //GPIO7作为SCL
config.speed = 0; //=0:正常速度;=1:高速;=2:全速

I2C总线的速度指波特率,=0是最通常的速度,大约200kbps,可用于大多数RTC、AD芯片;=1:高速时指波特率接近400kbps;=2:全速的波特率可高达1Mbps,主要用于存储器类型的芯片。设置操作如下:

rc = ioctl(fd, EM9X60_I2C_IOCTL_CONFIG, &config);

I2C数据写:EM9160的I2C总线写操作,由数据结构struct i2c_io来传递参数和数据,具体定义可查看em9x60_drivers.h。写操作支持一次最多可写入16个字节,但具体写入多少还受I2C器件本身的限制,如RX-8025只支持一次对一个寄存器写入,例如写入30秒到RTC的秒寄存器的具体代码操作如下:

struct i2c_io io_info;
io_info.dev_addr = RX8025_ADDR; //RX8025_ADDR定义在RX-8025.h
io_info.reg_addr = SEC_REG; //SEC_REG定义在RX-8025.h
io_info.data_len = 1; //1个字节
io_info.data_buf[0] = 0x30; //注意是BCD码
rc = ioctl(fd, EM9X60_I2C_IOCTL_WRITE, &in_info); //执行写操作

I2C数据读:EM9160的I2C总线读操作,由数据结构struct i2c_io来传递参数和数据,具体定义可查看em9x60_drivers.h。读操作支持一次最多可写入16个字节,但具体一次读出多少字节还受I2C器件本身的限制,RX-8025支持一次读出多个寄存器的数据,例如一次读取全部日期时间信息共7个字节,具体代码操作如下:

struct i2c_io io_info;
io_info.dev_addr = RX8025_ADDR; //RX8025_ADDR定义在RX-8025.h
io_info.reg_addr = SEC_REG; //SEC_REG定义在RX-8025.h
io_info.data_len = 7; //7个字节
rc = ioctl(fd, EM9X60_I2C_IOCTL_READ, &in_info); //执行读操作

I2C数据读写所用的数据结构中,reg_addr表示被读写器件的寄存器地址,若为单字节地址,该变量的最高位(MSB = D31)应为0;若为双字节地址,地址占用reg_addr的D15 - D0(最低位,LSB),而变量的最高位D31必须置为1。另外,对不需要寄存器的器件,可把reg_addr设置为0xFFFFFFFF,这时驱动程序将不再发送寄存器地址。上述代码中从RX-8025读出的数据均为BCD,通常需要转换成C语言的整型数据类型。

为了方便客户使用RX-8025,我们编写了通过EM9160的I2C驱动程序操作RTC的范例程序,包括启动RTC,设置时间,读取时间等功能。感兴趣的客户可向英利公司技术支持索取范例源码。

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

    关注

    41

    文章

    3831

    浏览量

    133917
  • Linux
    +关注

    关注

    88

    文章

    11824

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    工控一体机常见结构类型介绍|外嵌入式、内嵌入式、壁挂一体机

    工控一体机提供多种结构类型以适应不同工业场景需求:嵌入式(最主流)、壁挂、悬臂、桌面、开放
    的头像 发表于 04-16 16:30 154次阅读
    <b class='flag-5'>工控</b>一体机常见结构类型<b class='flag-5'>介绍</b>|外<b class='flag-5'>嵌入式</b>、内<b class='flag-5'>嵌入式</b>、壁挂<b class='flag-5'>式</b>一体机

    如何在Zynq UltraScale+ MPSoC平台上通过JTAG启动嵌入式Linux镜像

    在之前文章中,我们介绍了如何使用 XSCT 工具通过 JTAG 在 Zynq SoC 上启动嵌入式 Linux 镜像(从 JTAG 启动 Zynq-7000 嵌入式
    的头像 发表于 01-13 11:45 5099次阅读

    arm嵌入式主板优缺点

    设备里面做控制、数据处理使用的CPU。一般作为工控主板使用。   ARM处理器是一种16/32位的嵌入式RISC微处理器,具有低成本、高性能、低功耗的特点。ARM9系列微处理器具有以下特点:支持
    发表于 01-08 07:08

    迅为Hi3403开发驱动教程全面上线,开启嵌入式Linux开发新篇章!

    迅为iTOP-Hi3403开发linux驱动教程全面上线,开启嵌入式Linux开发新篇章!
    的头像 发表于 12-18 14:23 931次阅读
    迅为Hi3403开发<b class='flag-5'>板</b>驱动教程全面上线,开启<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>开发新篇章!

    从小白到大牛:Linux嵌入式系统开发的完整指南

    编写简单的 Shell 脚本(如自动备份文件、批量编译程序)巩固技能。​ 二、能力进阶:攻克核心技术模块​ 入门后需聚焦嵌入式 Linux 的核心技术栈,分模块突破,形成系统化能力
    发表于 12-16 10:42

    系统嵌入式的学习路线

    嵌入式技术是各种电子产品的核心技术,也是工业4.0、远程医疗、3D打印等新兴产业的核心技术,具有广阔的发展前景。很多计算机、电子信息类专业的
    发表于 12-16 07:49

    这款嵌入式工控机,它到底牛在哪?

    在工业领域,稳定可靠的硬件是项目量产的核心基础。龙科技推出的这款嵌入式工控机(也可以叫做工业单板机、嵌入式单板计算机),凭借 开箱即用、扩展灵活、稳定耐造 等优势,成为了众多开发者从
    的头像 发表于 12-03 11:11 520次阅读
    这款<b class='flag-5'>嵌入式</b><b class='flag-5'>工控</b>机,它到底牛在哪?

    精准对时与全面加密:嵌入式工控机助力光伏储能系统安全稳定运行

    康仕工控推出的NIS-YS839嵌入式工控机,以其B码对时功能和全面国密算法支持,为光伏储能行业提供安全可靠的硬件解决方案。
    的头像 发表于 11-18 14:22 4082次阅读
    精准对时与全面加密:<b class='flag-5'>嵌入式</b><b class='flag-5'>工控</b>机助力光伏储能系统安全稳定运行

    嵌入式工控机:工业自动化的核心运算单元

    在工业自动化、智能制造、智能交通等领域,嵌入式工控机作为“工业大脑”,承担着数据采集、逻辑运算、设备控制等关键任务。它并非普通商用电脑的工业版,而是基于嵌入式技术设计,能在复杂工业环境
    的头像 发表于 11-04 15:50 779次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>工控</b>机:工业自动化的核心运算单元

    嵌入式需要掌握哪些核心技能?

    嵌入式需要掌握哪些核心技能? 若想通过学习嵌入式技术提升就业竞争力,需重点掌握C语言、嵌入式硬件架构、RTOS/Linux开发、通信协议四
    发表于 10-21 16:25

    嵌入式工控设备在储能系统中的应用:NIS-6573助力行业智能升级

    康仕工控(深圳市康仕电子有限公司)深耕工业控制领域25年,始终致力于为行业提供高性能、高可靠的工控产品。今天,我们将重点介绍一款专为储能
    的头像 发表于 09-17 15:01 1156次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>工控</b>设备在储能系统中的应用:NIS-6573助力行业智能升级

    Linux嵌入式和单片机嵌入式的区别?

    Linux嵌入式与单片机嵌入式在多个方面存在显著的区别,以下是详细的比较和归纳: 一、基本概念 1. Linux嵌入式: 定义:将
    发表于 06-20 09:46

    聚徽解码——从嵌入式到模块化:国内工控平板的柔性技术架构设计

    在工业 4.0 与智能制造蓬勃发展的浪潮下,国内工控平板作为工业自动化与智能化的关键设备,其技术架构设计正经历着从嵌入式到模块化的深刻变革。这一转变旨在赋予工控平板更强的柔性,使其能够
    的头像 发表于 06-13 16:24 764次阅读

    聚徽智控——从嵌入式到边缘计算:平板工控电脑的技术进化论

    在工业数字化转型的浪潮中,平板工控电脑作为核心终端设备,正经历从嵌入式系统到边缘计算架构的范式革命。这一进化不仅重塑了设备的技术形态,更推动了工业互联从“数据采集”向“智能决策”的跨越。本文将从
    的头像 发表于 06-13 13:48 1041次阅读

    一文看懂:嵌入式与壁挂工控机安装方式的关键差异

    技术人员根据实际需求,制定出科学合理的安装方案。 一、安装前期规划差异 (一)嵌入式工控嵌入式工控机的安装需深度融入设备整体设计,在设备
    的头像 发表于 05-14 14:40 1219次阅读