iTOP-4418开发板RS85模块ioctl操作时间间隔修改
本章节主要介绍 RS485 驱动如何修改 ioctl 操作间隔的参数,通过 ioctl 控制模块数据传输方向的时间间隔修改方法。适用于 iTOP-4412 精英版、iTOP-4412 全能版、iTOP-4418/6818 全能版、 iTOP-iMX6Q/D全能版等。
以 iTOP-4412 开发板的 RS485 模块为例,其它系列开发板 RS485 模块在底板上,硬件原理和驱动代码是一模一样的。如下图所示,串口转 RS485 的模块为 “SN65HVD3082”,pin2 和 pin3 管脚,用于控制 RS485 发送和接收的方向。
在 RS485 的 C 测试例程中,ioctl 控制的 RS485 设备节点为“/dev/max485_ctl_pin”
设备节点赋值的代码为:
char *max485_ctl = "/dev/max485_ctl_pin";
如下图所示,函数“prepare_to_send”和“prepare_to_recv”,RS485 模块在准备发送和接收数据前,都需要调用对应 的发送准备函数和接收准备函数 ,其中控制发送和接收的,就 是 RS485 模块
“SN65HVD3082”的 pin2 和 pin3 管脚,控制 pin2 和 pin3 的高低就可以控制方向。
如果用户自己更新 RS485 的应用程序,会发现这个管脚高低电平切换最少需要 100ms,不能短于这个时间。
ioctl 函数就涉及到 RS485 驱动,RS485 模块的驱动是内核源码下的
“drivers/char/max485_ctl.c”文件。RS485 驱动文件中,ioctl 相关代码如下所示。
long max485_ctl_ioctl(struct file *filp,unsigned int cmd,unsigned long arg)
{
printk("firecxx debug: max485_ctl_ioctl cmd is %d\n" , cmd);
switch(cmd)
{
case 1:
if(gpio_request(EXYNOS4_GPA0(7) ,"GPA0_7"))
{
DPRINTK("max485_ctl GPIO err!\r\n");
}
else
{
gpio_direction_output(EXYNOS4_GPA0(7), 1);
DPRINTK("max485_ctl Set High!\n");
gpio_free(EXYNOS4_GPA0(7));
mdelay(100);
}
break;
case 0:
if(gpio_request(EXYNOS4_GPA0(7) ,"GPA0_7"))
{
DPRINTK("max485_ctl GPIO err!\r\n");
}
else
{
gpio_direction_output(EXYNOS4_GPA0(7),0);
DPRINTK("max485_ctl Set Low!\n");
gpio_free(EXYNOS4_GPA0(7));
mdelay(100);
}
break;
default:
DPRINTK("max485_ctl COMMAND ERROR!\n");
return -ENOTTY;
}
return 0;
}
如上代码所示,红色部分是导致上层应用调用 ioctl 间隔至少 100ms,硬件管脚高低切换至少为 100ms的原因。
如果用户切换数据发送和接收的状态少于 100ms,可以将其 mdelay(100);注释,然后重新编译内核镜像烧写到开发板。但是请务必注意的是,发送和接收之间切换的时候,请务必在应用程序中根据实际情况给一定的延时,延时的大小,用户需要根据自己实际应用来调整,否则会出现丢数据的情况。
更多内容关注:北京迅为
iTOP-4418开发板RS85模块ioctl操作时间间隔修改相关推荐
- iTOP-4418开发板-驱动-RS485模块ioctl操作时间间隔修改
本文档介绍迅为RS485模块测试例程,通过ioctl控制模块数据传输方向的时间间隔修改 方法. 适用迅为iTOP-4412开发板丨4418开发板丨6818开发板丨IMX6开发板 本文档以 iTOP-4 ...
- 迅为四核4418开发板MiniLinux-CAN总线测试使用文档
文档介绍的是在 MiniLinux 系统环境下 iTOP-4418 CAN 实验调试步骤.提供了"can_libs.rar"."can_tools.zip"和& ...
- 迅为4418开发板邮票孔与连接器版本区别
迅为4418开发板邮票孔与连接器版本区别 连接器版本 邮票孔版本 核心板类型 板对板连接器 邮票孔 尺寸 50mm*60mm PCB层数 6层PCB沉金设计 8层PCB沉金设计 高度 核心板连接器组合 ...
- stm32mini开发板lora模块例程中中文字库更新失败的解决方案
正点原子stm32mini板lora模块的问题解决 最近在做一个与Lora通信有关的模块,遇到了SD卡中文字库无法加载的问题,由于联系正点原子的研发人员周一才会上班,今天是周天,故自己解决了一下. 此 ...
- 4412开发板和4418开发板有什么区别-荣品电子
4418是4412的简化版,不过成本也低了 1.先是芯片对比. 两个芯片都是三星出的四核cortex-a9芯片.目前4412芯片是停产了. 2.开发板对比 4412开发板有3G版和4G版,具体就不说了 ...
- android开发板功能,嵌入式开发-迅为4418开发板Android4.4.4实现ble功能
①.迅为4418开发板Android4.4.4实现ble功能: 在4418/android/device/nexell/drone2/device.mk中添加: frameworks/native/d ...
- 迅为4418开发板Linux系统修改和固定MAC地址
本文介绍如何修改 Qt 系统的 MAC 等网络参数,Qt 系统的修改方法和根文件系统一模一样,可以通用. 在将 Qt 系统或者根文件系统烧写到开发板之后,启动开发板,如下图所示,只需要修改这个配置文件 ...
- LoRa开发板升级的时候,为什么需要修改跳线帽?
一般来说,LoRa开发板都会提供boot选择,也就是从哪个区域启动.很多是采用跳线帽的方式来进行boot选择的,这也导致了LoRa开发板升级的时候,往往需要修改跳线帽. LoRa开发板的跳线帽位置的示 ...
- Android嵌入式安卓触摸屏|4418开发板平台
核心板参数 尺寸:50mm*60mm 高度:核心板连接器为1.5mm 4418 CPU:ARM Cortex-A9 四核 S5P4418处理器 1.4GHz 6818 CPU:ARM Cortex-A ...
- 企业采购季选好开发板平台 迅为4418开发板
工欲善其事,必先利其器,在开发产品过程中,选购一套适合自身的开发板也是如此,能够让你在开发过程中事半功倍. 选择迅为iTOP-4418的理由: 1.作为重中之重的电源管理选型,经多方对比测试最终选用A ...
最新文章
- 微软私有云分享(R2)11-应答文件浅析
- MVC开发中的常见错误-06-无法在发送 HTTP 标头之后进行重定向。
- js/jquery判断浏览器 停止加载
- MyBatis 关系映射XML配置
- mysql数据库的三级模式_2016年计算机三级MySQL数据库试题
- linux nginx编译安装mysql_Centos7下编译安装配置Nginx+PHP+MySql环境
- 徐明星解读区块链与物联网的重要联系
- 字典 python 引用_Python字典引用的应用
- Spring整合MyBatis原理之MapperScannerConfigurer(一)
- 除了迅雷外,还有什么靠谱的BT下载软件?
- 计算机考试系统客户端怎么用不了,[说明]计算机基础测评系统考试客户端操作步骤.doc...
- office2010软件安装资料及教程
- MongoDB学习笔记之索引(一)
- 2019最新《后盾网向军0基础学PHP教程》
- VOT2021比赛简介
- 恢复被文件夹病毒恶意隐藏的文件夹
- Miles per gallon to kilometers per liter
- vue2.0怎么渲染html,vue采坑之——vue里面渲染html 并添加样式
- 吉首大学2019年程序设计竞赛(重现赛) B 干物妹小埋
- ***kuku会读数***