【经验】详解地平线X3芯片GPIO调试方法
地平线X3芯片共有121个IO功能管脚,每个管脚都可以配置工作在gpio模式下,在使用过程中需要注意和其他功能管脚的复用关系。本文将介绍GPIO详细调试方法。
1. 驱动代码
drivers/gpio/gpio-hobot-x3.c # gpio驱动源文件
(1). 内核配置
CONFIG_GPIO_HOBOT_X3
(2). 内核DTS配置
/* arch/arm64/boot/dts/hobot/hobot-xj3.dtsi */
gpios: gpio@0xA6003000 {
compatible = "hobot,x3-gpio";
reg = <0 0xA6003000 0 0x100>;
gpio-controller;
#gpio-cells = <2>;
gpio-ranges = <&pinctrl 0 0 121>;
interrupts = <0 54 4>;
interrupt-parent = <&gic>;
interrupt-controller;
#interrupt-cells = <2>;
};
备注: hobot-xj3.dtsi中的节点主要声明一些寄存器、中断的resource,均为soc共有特性,和具体电路板无关,一般情况下不用修改。
2. GPIO使用
(1). Kernel Space
DTS配置
GPIO设备树节点的属性命名方式一般为names-gpios或names-gpio,举例如下:
/* arch/arm64/boot/dts/hobot/hobot/hobot-x3-sdb.dtsi */
&usb_id
{ status = "okay";
id-gpio = <&gpios 65 GPIO_ACTIVE_HIGH>;
host-rst-gpio = <&gpios 115 GPIO_ACTIVE_HIGH>;
host-exrst-gpio = <&gpios 38 GPIO_ACTIVE_LOW>;
};
驱动代码接口
/* include/linux/gpio.h */
/* 申请GPIO */
int gpio_request(unsigned gpio, const char *label);
/* GPIO初始化为输出。并设置输出电平*/
int gpio_direction_output(unsigned gpio, int value);
/* GPIO初始化为输入 */
int gpio_direction_input(unsigned gpio);
/* 获取GPIO的电平 */
int gpio_get_value(unsigned int gpio);
/* 设置GPIO的电平 */
void gpio_set_value(unsigned int gpio, int value);
/* 释放GPIO */
void gpio_free(unsigned gpio);
/* 申请GPIO中断,返回的值可以传给request_irq和free_irq */
int gpio_to_irq(unsigned int gpio);
(2). User Space
控制接口
/sys/class/gpio/export #用户空间可以通过写入gpio号申请将gpio的控制权导出到用户空间,比如 echo 42 > export
/sys/class/gpio/unexport # 和export相反
/sys/class/gpio/gpiochip0 # gpio控制器
调用接口
使用export导出gpio的控制权以后会有路径/sys/class/gpio/gpio42/,路径下有如下属性:
direction:表示GPIO端口方向,读取为"in"或"out",写入"in"或者"out"可以设置输入或输出
value:表示GPIO的电平,0为低电平,1为高电平,如果GPIO配置为输出,则value值可写
edge:表示中断触发方式,有"none" "rising" "falling" "both"4种类型,"none"表示GPIO不为中断引脚,"rising"表示引脚为上升沿触发的中断,"falling"表示引脚为下降沿触发的中断,"both"表示引脚为边沿触发的中断。
3. 调用示例
以下示例演示导出 JTG_TRSTN 管脚,设置为输出模式,输出高电平,最后反导出。
echo 4 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio4/direction
echo 1 > /sys/class/gpio/gpio4/value
# echo 0 > /sys/class/gpio/gpio4/value
echo 4 > /sys/class/gpio/unexport
调试接口
如果在内核配置中打开了Linux Kernel的CONFIG_DEBUG_FS 选项,并且挂载了debugfs文件系统
mount -t debugfs none /sys/kernel/debug
则可以通过如下节点查看GPIO的申请列表。
root@x3dvbx3-hynix1G-2666:~# cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 0-120, parent: platform/a6003000.gpio:
gpio-42 ( |sysfs ) in hi
gpio-64 ( |cd ) in lo IRQ
gpio-65 ( |id ) in hi IRQ
gpio-100 ( |? ) out lo
gpio-120 ( |? ) out hi
root@x3dvbx3-hynix1G-2666:~#
- |
- +1 赞 0
- 收藏
- 评论 0
本文由孟高祥提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关研发服务和供应服务
相关推荐
地平线旭日X3系列智能芯片开发经验资料汇总
旭日X3 是地平线针对 AIoT 场景,推出的新一代低功耗、高性能的智能芯片;集成了地平线最先进的伯努利2.0 架构引擎( BPU® )。包含 X3M 和 X3E 两颗芯片,X3M 主要面向 8M 智能前视市场和边缘计算,提供 5TOPS 算力;X3E 主要面向 5M 智能前视市场,提供 3TOPS 算力。
【经验】地平线X3M芯片通过软件调节降低功耗的三种方法
地平线X3M SoC芯片包含4个53核,主频1.2Ghz,还有2个BPU核,主频1GHz,算力最高5Tops,在处理负责图像逻辑的情况下,需要对功耗进行必要的控制,保证芯片能正常工作。下面是三种通过软件调节降低芯片功耗的三种方法。
【经验】地平线X3M SoC芯片烧录efuse的方法
地平线X3M SoC的efuse的主要目的是自动识别不同厂商的DDR以及DDR类型。现在的DDR频率默认是3200,有些DDR的最高频率为2666,不烧写efuse,频率变为3200会影响启动。
【应用】地平线AI SoC芯片X3ME00IBGTMB-H用于3D相机,集成四核Cortex A53 CPU
3D相机应用领域越来越广泛,除了常见的3D影片之外,还可以应用于物流自动化、机器人视觉、障碍检测等方面。3D相机是有两个镜头的,分别是用于拍摄场景和测量自身与场景内物体之间的距离。镜头获取信息需要一个强大芯片来处理,本文介绍一款SOC可用于3D相机上。
AI加速边缘计算,聚焦AIOT芯片,NPU SOC,离线语音MCU,高算力智能模组等
世强硬创联合地平线,阿普奇,启英泰伦,美格智能,普林芯驰,唯创知音,九芯电子,芯闻,VINKO,MERRY带来AI新产品,聚焦AIOT芯片,NPU SOC,离线语音MCU,高算力智能模组等,加速边缘计算。
【应用】地平线AI SoC芯片X3M助力智能停车场系统设计,可实现车牌识别、车流量检测等功能,算力可达5Tops
现在,随着智能芯片、算法的技术发展,方便快捷、稳定可靠的非接触式智能停车设备已走进大大小小的城市,成为当今停车场设备的主流。地平线推出的X3M系列AI SoC芯片,可应用于停车场的智能识别设备,用来检测施工车辆的车牌、类别,并可实现计算车流量的功能。
地平线提出MAPS评测方法,重新定义芯片AI性能
地平线作为边缘AI芯片领导者,长期致力于AI芯片的软硬件研发和商业落地工作。此次提出MAPS芯片AI性能评测方法,为行业提供一种在峰值算力之外,从“快”和“准”两个维度帮助用户理解芯片AI性能的角度。
【应用】可提供5TOPS的算力的智能芯片X3ME00IBGTMB-H成功用于智能割草机器人设计,具有强大的视频处理能力
地平线针对AIoT场景,推出的新一代低功耗、高性能的智能芯片X3M非常适用于智能割草机器人的开发,客户评估相关资料后觉得不错,产品开发进度也已经到小批量试产了。
地平线推出突破性能天花板的8MP前视感知方案,高效灵活地进行多类AI任务处理并实现实时检测与精准识别
地平线Mono系列是目前唯一实现前装量产的国产单目视觉ADAS方案,累计斩获十余款车型定点,Mono3 也成为全球首个量产级8MP前视感知方案。面向ADAS的规模化落地,地平线坚持定位Tier-2,通过提供征程芯片开放平台,持续以软硬协同。
好算法更要配好用的芯片——基于LSS范式的BEV感知算法优化部署详解
本文通过对LSS范式的BEV多任务模型在地平线征程5上量化部署的优化,使得模型在该计算方案上用远低于1%的量化精度损失,得到latency为8.21ms的部署性能,同时,通过LSS范式的BEV模型的部署经验,可以推广到基于该范式的BEV模型的优化中,以便更好的在端侧部署。
【应用】地平线AI SOC芯片X3M系列助力边缘计算盒子应用,算力可达5Tops
本文将介绍地平线X3M系列AI SOC芯片,可应用于边缘计算盒子,实现视觉部分的算法。镜头模组将采集到的信息传送给X3M芯片,芯片通过算法,实现视觉部分的识别,如人脸识别,手势识别,火焰识别的动作,然后将信息通过接口进行传输。
星纪元ES上市,地平线征程3标配打造智能轿车新标杆
Mono 3是地平线基于征程3芯片,面向L2及以上ADAS市场推出的8MP单目前视感知方案。作为支持800万像素前视一体机形态的超低功耗方案,Mono 3方案凭借软硬结合下的极致能效表现,帮助车企以更短周期、更低成本,实现了更高配置与更强性能的智驾功能
基于双核贝叶斯架构的地平线征程®5车规级AI芯片,专为高等级自动驾驶而生
地平线可提供基于征程5,集全场景自动驾驶、多模人机交互和车内外联动于一体的 Horizon SuperDrive® 全场景整车智能解决方案,能够帮助客户和合作伙伴打造更具智能化、人性化的人车共驾新体验。
长安启源A05耀目上市,地平线征程®2助力探索数智出行新方式
10月20日,长安启源旗下第二款车型——“数智电驱超省家轿”长安启源A05正式上市。智驾配置方面,A05高配款(145 Max版本)搭载了基于地平线征程®2芯片的福瑞泰克ODIN数智底座解决方案,实现L2级ADAS智能驾驶功能,助力更多用户开启数智汽车新生活,享受舒适、安全的日常出行。
电子商城
现货市场
服务
Ignion可支持多协议、宽频段的物联网天线方案设计,协议:Wi-Fi、Bluetooth、UWB、Lora、Zigbee、2G、3G、4G、5G、CBRS、GNSS、GSM、LTE-M、NB-IoT等,频段范围:400MHz~10600MHz。
最小起订量: 2500 提交需求>
提供语音芯片、MP3芯片、录音芯片、音频蓝牙芯片等IC定制,语音时长:40秒~3小时(外挂flash),可以外挂TF卡或U盘扩容。
最小起订量: 1pcs 提交需求>
登录 | 立即注册
提交评论