【经验】解析地平线X3芯片I2C调试方法

2022-08-12 世强
芯片,X3,地平线 芯片,X3,地平线 芯片,X3,地平线 芯片,X3,地平线

本文中世强将为大家解析地平线X3芯片I2C调试方法。地平线X3芯片提供了标准的I2C总线,I2C总线控制器通过串行数据线(SDA)和串行时钟(SCL)线在连接到总线的器件间传递信息。每个器件都有一个唯一的地址(无论是微控制器——MCU、LCD控制器、存储器或键盘接口),而且都可以作为一个发送器和一个接收器(由器件的功能决定),而且都可以作为一个发送器或接收器(由器件的功能决定)。


I2C控制器支持以下功能:

兼容I2C与SMBUS总线

频率支持到400kHz

支持7位和10位寻址模式


1. 驱动代码

drivers/i2c/busses/i2c-hobot.c # I2C驱动代码源文件

inlcude/linux/i2c-hobot.h # I2C驱动代码头文件


(1). 内核配置位置

CONFIG_I2C_HOBOT

image-20220321230754098


(2). 内核DTS节点配置

X3芯片最大支持6路i2c总线,dts配置如下所示。

/* arch/arm64/boot/dts/hobot/hobot-xj3.dtsi */
i2c0: i2c@0xA5009000 {
   compatible = "hobot,hobot-i2c";
   reg = <0 0xA5009000 0 0x100>;
   interrupt-parent = <&gic>;
   interrupts = <0 38 4>;
   clocks = <&i2c0_mclk>;
   clock-names = "i2c_mclk";
   bus-speed = <400000>;
   resets = <&rst 0x50 10>;
   reset-names = "i2c0";
   status = "disabled";
   pinctrl-names = "default";
   pinctrl-0 = <&i2c0_func>;
};

备注: hobot-xj3.dtsi中的节点主要声明一些寄存器、中断的resource,均为soc共有特性,和具体电路板无关,一般情况下不用修改。


2. I2C使用

对于I2C的使用说明在Linux Kernel的Documentation/i2c下有详细的说明,本文主要列出X3J3 I2C驱动接口特殊的部分。


(1). Kernel Space

X3J3 I2C驱动在Kernel Space下提供了可以设置I2C传输频率的接口,使用方法如下:

#include <linux/i2c-hobot.h>...{    struct client_request *client_data = (struct client_request *)(client->adapter->algo_data);    ...    client_data->client_req_freq = 100000; //设置I2C传输频率为100k    ret = i2c_transfer(client->adapter, request, ARRAY_SIZE(request));    ...}


需要注意的是,如果目标传输频率和默认频率不一致,那么在每次I2C传输前,都需要设置目标频率,即频率更改只对单次传输生效,这样设计也是为了保证某个驱动调用I2C驱动更改频率并传输不会对其它驱动造成影响,有关代码在i2c-hobot.c中的实现如下:

/* 检查是否需要更改频率,如果是,按照目标频率进行设置 */
static void recal_clk_div(struct hobot_i2c_dev *dev){
       u32 clk_freq = 0;
       int temp_div = 0;
       struct client_request *client_req;

       client_req = (struct client_request *)dev->adapter.algo_data;
       clk_freq = clk_get_rate(dev->clk);
       if (client_req->client_req_freq != 0) {
               temp_div = DIV_ROUND_UP(clk_freq, client_req->client_req_freq) - 1;
       } else {
       temp_div = DIV_ROUND_UP(clk_freq, dev->default_trans_freq) - 1;
       }
       dev->clkdiv = DIV_ROUND_UP(temp_div, 8) - 1;
       if (dev->clkdiv > I2C_MAX_DIV) {
               dev_warn(dev->dev, "clkdiv too large, set to 255");
               dev->clkdiv = I2C_MAX_DIV;
       }}/* reset I2C 频率为默认频率 */
static void reset_client_freq(struct hobot_i2c_dev *dev){
       struct client_request *client_req;

       client_req = (struct client_request *)dev->adapter.algo_data;
       client_req->client_req_freq = 0;}/* I2C master_xfer 函数 */
static int hobot_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num){
   ...
   recal_clk_div(dev);
   ... /* I2C transfer */
   reset_client_freq(dev);
   ...}


(2). User Space

通常,I2C设备由内核驱动程序控制,但也可以从用户态访问总线上的所有设备,通过/dev/i2c-%d接口来访问,Kernel下面的Documentation/i2c/dev-interface文档里有详细的介绍。


频率设置

查看i2C-N的频率,以i2c-0为例

root@x3dvbx3-hynix1G-2666:~# cat /sys/bus/i2c/devices/i2c-0/speed400000

设置i2c-N的频率,以i2c-0为例

root@x3dvbx3-hynix1G-2666:~# echo 100000 > /sys/bus/i2c/devices/i2c-0/speed
root@x3dvbx3-hynix1G-2666:~# cat /sys/bus/i2c/devices/i2c-0/speed100000

和Kernel Space下设置I2C频率只针对单次传输有效不同,User Space下设置I2C频率是持久有效的,谨慎使用!

授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 0

本文由孟高祥提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

地平线旭日X3系列智能芯片开发经验资料汇总

旭日X3 是地平线针对 AIoT 场景,推出的新一代低功耗、高性能的智能芯片;集成了地平线最先进的伯努利2.0 架构引擎( BPU® )。包含 X3M 和 X3E 两颗芯片,X3M 主要面向 8M 智能前视市场和边缘计算,提供 5TOPS 算力;X3E 主要面向 5M 智能前视市场,提供 3TOPS 算力。

设计经验    发布时间 : 2024-08-16

【经验】地平线X3M芯片通过软件调节降低功耗的三种方法

地平线X3M SoC芯片包含4个53核,主频1.2Ghz,还有2个BPU核,主频1GHz,算力最高5Tops,在处理负责图像逻辑的情况下,需要对功耗进行必要的控制,保证芯片能正常工作。下面是三种通过软件调节降低芯片功耗的三种方法。

设计经验    发布时间 : 2023-05-18

【经验】地平线开发板X3派mjpg-streamer环境安装和测试

基于Linux系统平台下已经开发出众多的优秀的开源软件,用户在开发某一功能前,可以利用这些开源软件来做评估。mjpg‐streamer作为一款开源的V4L2测试框架,可以方便的供用户评估视频相关的功能。

设计经验    发布时间 : 2023-02-09

【应用】地平线AI SoC芯片X3ME00IBGTMB-H用于3D相机,集成四核Cortex A53 CPU

3D相机应用领域越来越广泛,除了常见的3D影片之外,还可以应用于物流自动化、机器人视觉、障碍检测等方面。3D相机是有两个镜头的,分别是用于拍摄场景和测量自身与场景内物体之间的距离。镜头获取信息需要一个强大芯片来处理,本文介绍一款SOC可用于3D相机上。

应用方案    发布时间 : 2022-01-07

AI加速边缘计算,聚焦AIOT芯片,NPU SOC,离线语音MCU,高算力智能模组等

世强硬创联合地平线,阿普奇,启英泰伦,美格智能,普林芯驰,唯创知音,九芯电子,芯闻,VINKO,MERRY带来AI新产品,聚焦AIOT芯片,NPU SOC,离线语音MCU,高算力智能模组等,加速边缘计算。

活动    发布时间 : 2023-06-08

地平线(Horizon Robotics)新一代AIoT智能芯片选型表

描述- 旭日®3 是地平线针对 AIoT 场景,推出的新一代低功耗、高性能的智能芯片;集成了地平线最先进的伯努利2.0 架构引擎( BPU® ),可提供 5TOPS 的算力。新的 BPU 架构极大提升了对先进 CNN 网络架构的支持效果,并极大降低了运算对 DDR 带宽的占用率。辅以地平线天工开物® 软件开发平台,大幅简化算法开发与部署过程,降低产品的落地成本。

型号- X3M,X3E

选型指南  -  地平线  - 2022/10/25 PDF 中文 下载

地平线提出MAPS评测方法,重新定义芯片AI性能

地平线作为边缘AI芯片领导者,长期致力于AI芯片的软硬件研发和商业落地工作。此次提出MAPS芯片AI性能评测方法,为行业提供一种在峰值算力之外,从“快”和“准”两个维度帮助用户理解芯片AI性能的角度。

原厂动态    发布时间 : 2024-06-20

【应用】地平线AI SoC芯片X3M助力智能停车场系统设计,可实现车牌识别、车流量检测等功能,算力可达5Tops

现在,随着智能芯片、算法的技术发展,方便快捷、稳定可靠的非接触式智能停车设备已走进大大小小的城市,成为当今停车场设备的主流。地平线推出的X3M系列AI SoC芯片,可应用于停车场的智能识别设备,用来检测施工车辆的车牌、类别,并可实现计算车流量的功能。

应用方案    发布时间 : 2023-02-26

【应用】可提供5TOPS的算力的智能芯片X3ME00IBGTMB-H成功用于智能割草机器人设计,具有强大的视频处理能力

地平线针对AIoT场景,推出的新一代低功耗、高性能的智能芯片X3M非常适用于智能割草机器人的开发,客户评估相关资料后觉得不错,产品开发进度也已经到小批量试产了。

应用方案    发布时间 : 2023-03-28

好算法更要配好用的芯片——基于LSS范式的BEV感知算法优化部署详解

本文通过对LSS范式的BEV多任务模型在地平线征程5上量化部署的优化,使得模型在该计算方案上用远低于1%的量化精度损失,得到latency为8.21ms的部署性能,同时,通过LSS范式的BEV模型的部署经验,可以推广到基于该范式的BEV模型的优化中,以便更好的在端侧部署。

技术探讨    发布时间 : 2024-03-01

地平线推出突破性能天花板的8MP前视感知方案,高效灵活地进行多类AI任务处理并实现实时检测与精准识别

地平线Mono系列是目前唯一实现前装量产的国产单目视觉ADAS方案,累计斩获十余款车型定点,Mono3 也成为全球首个量产级8MP前视感知方案。面向ADAS的规模化落地,地平线坚持定位Tier-2,通过提供征程芯片开放平台,持续以软硬协同。

原厂动态    发布时间 : 2022-05-11

基于双核贝叶斯架构的地平线征程®5车规级AI芯片,专为高等级自动驾驶而生

地平线可提供基于征程5,集全场景自动驾驶、多模人机交互和车内外联动于一体的 Horizon SuperDrive® 全场景整车智能解决方案,能够帮助客户和合作伙伴打造更具智能化、人性化的人车共驾新体验。

原厂动态    发布时间 : 2022-01-27

星纪元ES上市,地平线征程3标配打造智能轿车新标杆

Mono 3是地平线基于征程3芯片,面向L2及以上ADAS市场推出的8MP单目前视感知方案。作为支持800万像素前视一体机形态的超低功耗方案,Mono 3方案凭借软硬结合下的极致能效表现,帮助车企以更短周期、更低成本,实现了更高配置与更强性能的智驾功能

原厂动态    发布时间 : 2023-12-26

【应用】地平线AI SOC芯片X3M系列助力边缘计算盒子应用,算力可达5Tops

本文将介绍地平线X3M系列AI SOC芯片,可应用于边缘计算盒子,实现视觉部分的算法。镜头模组将采集到的信息传送给X3M芯片,芯片通过算法,实现视觉部分的识别,如人脸识别,手势识别,火焰识别的动作,然后将信息通过接口进行传输。

应用方案    发布时间 : 2022-08-28

展开更多

电子商城

查看更多

品牌:地平线

品类:AIOT RDK MODULE

价格:¥319.0000

现货: 321

品牌:地平线

品类:AIOT MODULE

价格:

现货: 0

品牌:地平线

品类:PMIC

价格:

现货: 0

品牌:地平线

品类:PMIC

价格:

现货: 0

品牌:地平线

品类:PMIC

价格:

现货: 0

品牌:地平线

品类:AIOT RDK MODULE

价格:¥419.0000

现货: 0

品牌:地平线

品类:AIOT RDK MODULE

价格:¥449.0000

现货: 0

品牌:地平线

品类:PMIC

价格:

现货: 0

品牌:地平线

品类:AI芯片

价格:

现货: 0

品牌:地平线

品类:AIOT RDK MODULE

价格:¥339.0000

现货: 0

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:SEMTECH

品类:IC

价格:¥6.3000

现货:392,370

品牌:TI

品类:接口芯片

价格:¥1.9400

现货:275,447

品牌:DIODES

品类:集成芯片

价格:¥1.5300

现货:228,765

品牌:中科微

品类:马达驱动芯片

价格:¥0.6160

现货:146,980

品牌:NXP

品类:通讯芯片

价格:¥3.0645

现货:137,205

品牌:Advanced Digital Chips

品类:监控和复位芯片

价格:¥1.3560

现货:120,000

品牌:NXP

品类:接口芯片

价格:¥3.0363

现货:118,248

品牌:QUALCOMM

品类:蓝牙芯片

价格:¥4.9500

现货:109,413

品牌:NXP

品类:电源芯片

价格:¥2.3382

现货:106,835

品牌:Maxim

品类:电源芯片

价格:¥3.8700

现货:105,000

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

EDA芯片设计软件免费使用

世强深圳实验室提供Robei EDA软件免费使用服务,与VCS、NC-Verilog、Modelsim等EDA工具无缝衔接,将IC设计高度抽象化,并精简到三个基本元素:模块、引脚、连接线,自动生成代码。点击预约,支持到场/视频直播使用,资深专家全程指导。

实验室地址: 深圳 提交需求>

物联网天线方案设计/虚拟天线芯片方案设计

Ignion可支持多协议、宽频段的物联网天线方案设计,协议:Wi-Fi、Bluetooth、UWB、Lora、Zigbee、2G、3G、4G、5G、CBRS、GNSS、GSM、LTE-M、NB-IoT等,频段范围:400MHz~10600MHz。

最小起订量: 2500 提交需求>

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面