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

    文章

    3716

    浏览量

    133093
  • Linux
    +关注

    关注

    88

    文章

    11628

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

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

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

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

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

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

    康仕工控(深圳市康仕电子有限公司)深耕工业控制领域25年,始终致力于为行业提供高性能、高可靠的工控产品。今天,我们将重点介绍一款专为储能
    的头像 发表于 09-17 15:01 761次阅读
    <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 407次阅读

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

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

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

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

    嵌入式工控机VS普通工控机,哪个产品的性能更好?

    嵌入式工控机与普通工控机相比, 嵌入式工控机区别在哪里?优势在哪里呢? 嵌入式
    的头像 发表于 04-30 17:53 631次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>工控</b>机VS普通<b class='flag-5'>工控</b>机,哪个产品的性能更好?

    飞凌嵌入式2025嵌入式及边缘AI技术论坛圆满结束

    技术的盛宴! 1、精彩纷呈的展区 产品及方案展区是本场活动的第一场重头戏,从硬件产品到软件系统,从企业级应用到高校教学应用,都吸引了现场来宾的驻足观看和交流讨论。 全产品矩阵展区 展示了飞凌嵌入式丰富的产品线,从嵌入式板卡到
    的头像 发表于 04-27 11:55 608次阅读
    飞凌<b class='flag-5'>嵌入式</b>2025<b class='flag-5'>嵌入式</b>及边缘AI<b class='flag-5'>技术</b>论坛圆满结束

    怎么嵌入式linux下控制dlp?

    请问怎么嵌入式linux 下控制dlp,有没有支持
    发表于 03-03 07:02

    飞凌嵌入式i.MX8M Mini核心已支持Linux6.1

    飞凌嵌入式FETMX8MM-C核心现已支持Linux6.1系统,此次升级不仅使系统功能更加丰富,还通过全新BSP实现了内存性能的显著提升。
    的头像 发表于 01-10 09:56 2807次阅读
    飞凌<b class='flag-5'>嵌入式</b>i.MX8M Mini核心<b class='flag-5'>板</b>已支持<b class='flag-5'>Linux</b>6.1

    Made with KiCad(九十四):M5Pi Linux嵌入式开发板

    “ 波哥大作,必须优先安排!M5Pi 是一款开源 Linux 嵌入式开发板,使用全志 F1C200s CPU,拥有漂亮的外壳。”
    的头像 发表于 12-25 14:53 1330次阅读
    Made with KiCad(九十四):M5Pi <b class='flag-5'>Linux</b><b class='flag-5'>嵌入式开发板</b>

    新手怎么学嵌入式?

    操作 实践是学习嵌入式技术的关键。你可以购买一些低成本的嵌入式开发板,如 Arduino 或 Raspberry Pi。这些开发具有丰富的资源和简单易懂的文档,非常适合初学者。通过在
    发表于 12-12 10:51