261_S32K144_串口驱动
完整的S32K144的学习汇总如下:
https://github.com/GreyZhang/g_s32k144
继续学习S32K144,前面分析过一次机遇UART的printf。今天从驱动以及原理层面了解一下这背后的机理。
首先值得一说的是,虽然我们在电脑上通过串口工具查看到了串口的信号,但是本质上来说这是串口转成了USB的信号。在之前接触Arduino的时候,有一个完成相关功能的小芯片CH340。但是,我们这个开发板实现这样的功能直接是走了一个MICRO USB的接口。这个功能是如何实现的呢?
关于这个功能,顺着原理图做一个逆向的寻找。
这是MICRO USB的部分,这部分在这个开发板上最重要的功能或许应该是OpenSDA调试器功能而不是打印功能。不过,既然串口信息走的这个数据口那么这个串口来源应该往前找。从上面的信息看,其实这部分是通过USB的模式进入了后面的芯片。
后面的这个芯片是一个MCU,也是32位的ARM处理器,性能还不错。MCU相应的资料我在文章连接中整理放上了。看上去,这个MCU比较好的一点恰好是能够提供串口自己USB的接口两种方式,通过这个做了一个转换。同时,这个MCU负责实现SDA的功能。看起来,这很大程度上是一个独立的工作单元。而后期有时间的话,也可以研究下这个芯片以及相应的调试技术。在这个芯片中,固化的软件应该实现了一个串口到USB的透传功能。
不看细节,看大的方向的话,再往后这个串口信号就直接进了S32K144 MCU的UART端口了。
接下来,直接做个串口驱动的测试。
这是串口用到的MCU的资源。
进行管脚的属性配置。
做一下驱动属性的配置。之后,生成代码,然后增加相应的初始化以及测试代码如下:
首先,对MCU UART的管脚进行了初始化配置。接着,初始化了串口驱动。之后,修改了串口收发的中断优先级,这是为了避免与FreeRTOS有冲突。
这个是测试代码,软件编译成功烧写后运行,在串口监控工具中可以看到如下的效果:
其实,这里的时间戳在一定程度上能够看得出来任务调度的一个准确性。其实,这就是pritnf的一个雏形了,如果是用到了printf,增加的应该也只是一个数据格式转换的过程。后续,或许我还会尝试实现一个printf的函数。
完整的S32K144的学习汇总如下:
https://github.com/GreyZhang/g_s32k144
261_S32K144_串口驱动相关推荐
- WinCE中串口驱动及接口函数介绍(转载)
作者:ARM-WinCE 在WinCE中,串口驱动实际上就是一个流设备驱动,具体架构如图: 串口驱动本身分为MDD层和PDD层.MDD层对上层的Device Manager提供了标准的流设备驱动接口( ...
- linux串口驱动分析
linux串口驱动分析 硬件资源及描写叙述 s3c2440A 通用异步接收器和发送器(UART)提供了三个独立的异步串行 I/O(SIO)port,每一个port都能够在中断模式或 DMA 模式下操作 ...
- linux串口驱动分析【转】
转自:http://blog.csdn.net/hanmengaidudu/article/details/11946591 硬件资源及描述 s3c2440A 通用异步接收器和发送器(UART)提供了 ...
- WINCE6.0+S3C6410串口驱动
********************************LoongEmbedded************************作者:LoongEmbedded(kandi)时间:2011. ...
- RTEMS 的 AT91SAM9260 移植(5): 调试串口驱动
其实到这里,只要能保证编译通过,再修改一下链接脚本,其实已经可以跑在at9260的系统上了.因为我没有仿真器,不知道程序的状态,所以必须撰写调试串口的驱动. RTEMS 的调试串口并没有采用中断输出的 ...
- linux 串口驱动 atmel_set_mctrl何时调用,linux uart serial使用驱动分析
uart tty serial 驱动分析 内核版本3.14.23 以atmel为例: 起点: static int __init atmel_serial_init(void) { int ret; ...
- linux 串口驱动(二)初始化 【转】
转自:http://blog.chinaunix.net/uid-27717694-id-3493611.html 8250串口的初始化: (1)定义uart_driver.uart_ops.uart ...
- 【转载】WinCE中串口驱动及接口函数介绍
转载自:http://blog.csdn.net/nanjianhui/article/details/2627755 在WinCE中,串口驱动实际上就是一个流设备驱动,具体架构如图: 串口驱动本身分 ...
- S5PV210开发 -- 串口驱动开发
如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/78579074 上篇文章讲的 UART,更多的是硬件相关的知识.接下来进入正题 ...
最新文章
- iphone照片永久删除怎么恢复_怎么恢复删除的照片?专业数据恢复软件轻松搞定...
- webstorm中git密码输入错误,重置问题
- JAVA传入一个字符串,返回一个字符串中的大写字母
- 分區策略與數據傾斜處理策略的區別
- SDI, DVI, HDMI, DisplayPort的区别(Z)
- 收录批量查询神器 bluecattools
- linux 字符设备驱动cdev
- 你真正了解public、internal、protected、private吗?不妨幽默一些
- Selenium定位HTML元素(Python)
- python opencv旋转图片_opencv3+python3进行图片旋转处理
- 2.10_hash_table_哈希表 / 散列表
- Android Camera2+HAL3架构
- UDP Socket编程
- 数字图像处理第一次试验:图像的基本操作和基本统计指标计算
- mysql front和mysql_安装 MySQL 和 MySQL-Front
- 火狐浏览器分辨率_Firefox在全球浏览器市场占有率达到20%
- 负载均衡器部署方式和工作原理
- css 设置手机浏览器背景图片填充整个页面的小问题级解决方法
- Java如何处理参数中带特殊符号的请求?
- 如何实现跨行跨地区转账实时到帐而且免手续费?