
01--RT1052 Aworks 开发
文章平均质量分 51
主要用于记录笔者使用周立功Awroks框架的详细开发记录
嵌入式实操
践行高效开发的哲学理念
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
基于RT1052 Aworks nanopb string 类型固定长度使用方式(二十七)
解析比动态长度解析简单多了。欢迎订阅“嵌入式实操、原创 2022-07-26 09:06:53 · 392 阅读 · 0 评论 -
基于RT1052 Aworks nanopb string 类型动态长度使用方式(二十六)
本文在Aworks上使用nanopb库对string类型字段进行封包及解包测试。参考链接封包及解包原理:https://www.cnblogs.com/silvermagic/p/9087593.html使用如下命令进行编译最终生成的结构体2.测试代码3. 验证4. 总结动态长度在封包及解包时,需要注册encode及decode函数,并且需要传递缓冲区。动态长度也有一个弊端,比如Java开发者就不需要考虑长度,但是C语言开发者就需要考虑,最好的方式就是在双方约定最大长度大小。...原创 2022-06-05 14:16:39 · 462 阅读 · 0 评论 -
基于RT1052 Aworks 移植google prococol buffer C语言库(二十五)
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行开发本文在Aworks上移植google prococol buffer C语言库及测试样例使用。1. 首先学习google protocol buffer 协议参考: https://developers.google.com/protocol-buffers2. 寻找google protocol buffer 协议 C语言库库链接地址: https://github.com/nanopb/nanopb3. 移植及验证个原创 2022-04-05 15:00:44 · 627 阅读 · 0 评论 -
基于RT1052 Aworks TM1905_5C LED 驱动实现 (二十四)
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行开发本文在Aworks上基于SPI接口编写TM1905_5C驱动接口及测试样例1.首先阅读原理图阅读数据手册关键参数如下:如果使用SPI 数据位为8位进行控制,800KHz的刷新率对应的SPI总线的时钟应该是800K*8= 6.4M. 输出1码,数据使用0xF8.输出0码,数据使用0x07,用来适配1码和0码的占空比。2. 设备资源及驱动适配只需使能AW_DEV_IMX1050_LPSPI1即可,并修改对应的资源文件a原创 2022-01-13 16:10:08 · 2653 阅读 · 0 评论 -
基于RT1052 Aworks 项目总结及问题汇总 (二十三)
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发本文主要讲述在RT1052上面遇到的问题。问题汇总总结RT1052算是初次基于单片机的开发,开发的方式与Linux有所不同,对自已也是一次提升。希望能对正在RT1052上开发的博友有所帮助。另外基于过程来看待整个研发的周期,项目人员如果不在设计,编码,问题排查等方面有深度介入的话,最多只能吸收他人部分的经验,而且还缺少了在排查过程中打下理论基础及排查问题的思路,遇到新问题还是无能为力,这也是技术人员转职管理之后的通病原创 2021-10-22 16:22:59 · 307 阅读 · 0 评论 -
基于RT1052 Aworks MIPI显示马赛克问题 (二十二)
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发本文主要讲述在RT1052上面,MIPI显示马赛克的处理过程。1. 硬件原理图2. 问题现象在汽车ACC点火之后,显示马赛克。3. 问题排查(1)出现问题时,通过CAN消息切换该区域的显示内容,发现可以正常显示,至少说明显示硬件电路是正常的。(2)由于MCU是XIP运行,且数据在flash上面,猜想如果是flash数据读取异常的话,至少会出现系统取指异常的问题,但是实际上并没有,所以提除flash读取出错的可能原创 2021-07-28 16:47:50 · 256 阅读 · 0 评论 -
基于RT1052 Aworks MIPI显示水波纹问题 (二十一)
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发本文主要讲述在RT1052上面,MIPI显示水波纹的处理过程。1. 硬件原理图2. 问题现象在汽车ACC点火之后,显示水波纹。3. 问题排查(1)出现问题时,通过飞线手动复位屏,水波纹现象消失,说明MIPI信号没有问题,断定问题在屏上面。(2)向屏厂FAE反馈该问题,FAE猜测有可能是由于某些情况下输出电流过大导致该问题出现。4. 处理方法通过MIPI CODE 让屏的内部电流不要过于密集输出,使电压正原创 2021-07-28 16:11:27 · 581 阅读 · 0 评论 -
基于RT1052 Aworks调试LIN线功能(二十)
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发前置知识:LIN网络是一主多从的网络,作为主机或者从机是由其硬件决定的。LIN的数据包如下所示,但是作为软件开发而言,当作为主机是Break域是需要发送的,但是从机是不会收到Break包的,实际收到的数据为Synch Byte及其之后的数据,作为软件解析的依据。LIN网络当中,只有主机可以发送完整的数据包或者主机发包头从机回复数据及校验和。从机是不可以主动发数据。ID的取为范围是0x00-0x3F之间,ID字节的 B原创 2021-05-26 15:14:35 · 391 阅读 · 0 评论 -
基于RT1052 Aworks使能U盘功能(十九)
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发# 1. 首先阅读原理图前置知识,一般来说访问U盘,软件上需要满足如下几点功能。USB host 驱动USB host stack 协议栈File system 文件系统。1. 首先阅读原理图2. 设备资源及驱动适配2.1 设备资源的注册硬件上有两个USB口,在硬件设计上只使用USB1,其资源文件在awbl_hwconf_imx1050_usbh1.h当。2.2 设备驱动的注册在aw_prj_conf原创 2021-05-11 14:59:39 · 424 阅读 · 0 评论 -
基于RT1052 Aworks MIPI 2line 显示 (十八)
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发本文主要讲述在RT1052上面,原先的MIPI 4line显示调整为MIPI 2line显示。1. 原理MIPI显示由4line显示调整为2line显示,从原理上需要修改的地方有三处:1) MIPI line数由4改为2。2) MIPI时钟需要调整。3) 需要发送DSC命令让MIPI屏支持2line即可2. 操作过程MIPI line数由4改为2@@ -467,7 +467,7 @@ void LT9211原创 2021-04-28 16:39:38 · 648 阅读 · 0 评论 -
基于RT1052 Aworks SDRAM压力测试(十七)
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发本文主要讲述在RT1052上面,使用i.mxrt-dram-tool-v0.2工具进行压测试。1. 原理i.mxrt-dram-tool-v0.2工具其实是集成memtester工具对SDRAM进行压力测试。2. 操作过程1)MCU进入烧录serial download模式2)接上串口,接上USB线3)打工工具配置界面,打开串口和USB烧录线,选择对应硬件平台测试脚本,选择MCU工作时钟,点击运行即可。4)原创 2021-03-22 15:22:25 · 636 阅读 · 0 评论 -
基于RT1052 Aworks EMC优化 (十六)
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发车载电子设备对EMC的要求比较高,本文主要讲述在RT1052上面,使能spread spectrum功能,通过对实钟使能展频配置,以得到良好的EMC效果。参考文档:EMC design consideration on i.MXRT Series.pdf1. 原理本质上Spread spectrum 功能,通上如上两张图的比较,可以看出其本质就是降低某个频点上面的能量,以达到优化EMC的效果。2. 软件设置通过原创 2021-02-22 18:31:01 · 406 阅读 · 0 评论 -
基于RT1052 Aworks 使能UART功能(十五)
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发在适配UART硬件时,先学习Aworks UART编程的接口,查看Aworks提供的测试demo,才知道其导出什么样的接口供应用层使用。只要在注册UART时,确认其对应的串口的COMID号,编程起来就很轻松了。1. 首先阅读原理图2. 设备资源及驱动适配2.1 设备资源的注册其设备资源在awbl_hwconf_imx1050_lpuart6.h注册所以需要先确认硬件设计上对应的UART引脚,GPIO1_2和GPIO原创 2021-02-04 19:25:03 · 399 阅读 · 1 评论 -
基于RT1052 Aworks 使能snvs模式(十四)
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发本文主要简述,如何在Aworks框架下实现rtc休眠唤醒功能。本质就是通过外部中断及RTC周期性中断实现。1. 首先阅读原理图NA2. 如何测试void demo_snvs_srtc_wakeup(void);Aworks框架下移植原厂的snvs例程,在内部可以自定义外部中断引脚及周期性时间休眠唤醒间隔。测试结果如下所示:3. 总结在进入休眠之前应该提前主动关闭相关的外设,待机功耗才会比较低。...原创 2020-11-24 12:13:07 · 769 阅读 · 0 评论 -
基于RT1052 Aworks 测试PXP图像混合功能(十三)
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发做了这么长的开发以来,从来没有使用过GPU2D,GPU3G进行编程。这次评估RT1052 PXP的图像混合功能,记录了本次的开发日记。1. 首先阅读芯片手册说一下本人粗看该章节之后的感想,很少会极其详细查看芯片的手册,只要在遇到难以解决的问题时,才会详细看芯片手册,但是有一点就是模块的内部架构及相关参数还是要大体了解的,其实和编程接口是相关的,如果不了解这些信息的话,虽然会使用API进行编程,但是实际一旦遇到问题是缺少理原创 2020-11-20 12:37:39 · 1274 阅读 · 2 评论 -
基于RT1052 Aworks SDRAM速率优化(十二)
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发前置知识,对于DDR时钟的调整,无非选择其父类时钟,并进行相应的分频即可,当然还得根据SDRAM手册参数进行相应的调整。本文描述在其默认的父时钟不变下,提高其DDR工作频率,提高SDRAM读写的速度。1. 首先阅读芯片手册SDRAM的时钟如下所示,SEMC_CLK_ROOT 有两个父类时钟PLL2_PFD2及PLL3_PFD1,在SDK里默认选择使用PLL2_PFD2作为其父类时钟。CCM_CBCDR寄存器可选择其父类原创 2020-11-13 09:55:38 · 1109 阅读 · 0 评论 -
基于RT1052 Aworks使能CAN总线(十一)
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发前置知识,首先要can总线协论的相关知识,然后知道上层接口如何访问,比如linux下使用socket can接口对can 总线进行操作。针对aworks本身也有相关的样例可供参数。CAN相关理论知识可参考:https://www.cnblogs.com/lianghong881018/p/10026720.html1. 首先阅读原理图阅读TAJ1043的数据手册之后,想进行正常的CAN数据收发,需要通过相关的IO控制原创 2020-11-13 09:22:28 · 575 阅读 · 0 评论 -
基于RT1052 Aworks 使能TFT-LCD高清显示功能(十)
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发前置知识,对于显示驱动而言,对于不同的接口,如RGB接口,LVDS, MIPI 接口,其本质还是配置像素时钟与时序,如果需要将RGB接口转成HDMI或者MIPI输出时,需要对转换芯片进行初始化。1. 首先阅读原理图硬件上通过RGB接口输出,再经LT9211转成MIPI信号,输出至屏。这当中需要对屏进行通始化,对转换芯片进行初始化,需要阅读手册.需要做的工作:第一、输出所需的像素时钟第二、根据屏幕参数配置所需的时序原创 2020-11-12 20:40:43 · 911 阅读 · 0 评论 -
基于RT1052 Aworks 使能硬件定时器功能(九)
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发在Aworks支持硬件定时器,所有的接口在aw_hwtimer.h当中,我们先通过如下两个函数来入门aw_hwtimer编程。一般来说CPU定时器类多很多种,有周期性中断,输入捕获,输出比较等类型,本文对周期性中断(即定时器)在Aworks下是如何使用的。/** * \brief 从系统分配一个符合指定名字和设备单元号的定时器 * * \param[in] pname 定时器的名字 * \param[in]原创 2020-11-06 19:00:44 · 390 阅读 · 0 评论 -
基于RT1052 Aworks 存储扩容记录(八)
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发1. 首先阅读原理图通过比较发现其硬件上接线是一致的,只是内部容量由8M改为32M.2. 再则比较两颗芯片的参数之前开发过linux spi flash驱动的经验,QSPI flash 一般我们比较关注的是它的工作电压,工作速率,写入大小,擦除大小,地址模式,一般兼容的话,只需要改其容量等参数。3. 查找Aworks配置flash的位置在aworks 框架之下,文件 awbl_hwconf_imx1050_flex原创 2020-11-06 18:59:09 · 332 阅读 · 0 评论 -
基于RT1052 Aworks 使能蜂鸣器(七)
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发前置知识,通过学习Aworks开发框架,对于PWM而关键在于PWM的ID号,只要在注册PWM时,确认了其对应的ID号,编程起来就很轻松了。/*** \addtogroup grp_aw_if_pwm* \copydoc aw_pwm.h* @{*//*** \brief 设置PWM设备的有效时间和周期** \param[in] pid PWM设备通道号* \param[in] duty_ns原创 2020-11-06 18:57:41 · 384 阅读 · 0 评论 -
基于RT1052 Aworks 使能GPIO输入功能(六)
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发其实对于输入型GPIO来说,要么是一个普通的输入引脚,要么当作特定的按键使用,有对应的键值。在本文中我们将其注册成普通的输入GPIO使用。aw_err_t aw_gpio_pin_cfg(int pin, uint32_t flags);aw_err_t aw_gpio_get(int pin);这两个函数就满足了我们的需要,其说明如下所示:/** * \param[in] pin 引脚编号 * \pa原创 2020-11-06 18:53:57 · 259 阅读 · 0 评论 -
基于RT1052 Aworks 使能GPIO输出功能(五)
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发在Aworks支持led_gpios类的驱动,和linux下的gpio-leds类似。在其框架之下只需要记录对应的GPIO的led id号,上层即可调用通用接口进行操作。/** * \brief 设置LED状态 * \param[in] id LED编号, 可用编号由具体平台决定 * \param[in] on LED的点亮状态, true为点亮, false为熄灭 * * \retval AW_OK原创 2020-11-06 18:46:30 · 256 阅读 · 0 评论 -
基于RT1052 Aworks 使能ADC功能(四)
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发在适配ADC硬件时,先学习Aworks ADC编程的接口,查看Aworks提供的测试demo,才知道其导出什么样的接口供应用层使用。只要在注册ADC时,确认了其对应的通道号,编程起来就很轻松了。1. 首先阅读原理图在RT1052上面有两个ADC控制器,每个控制器各16个转换通道,RT1052有些引脚只能当作数字引脚,有些引脚同时支持数字引脚和模拟引脚功能2. 设备资源及驱动适配2.1 设备资源的注册其设备资源均在a原创 2020-11-06 18:43:36 · 561 阅读 · 0 评论 -
基于RT1052 Awroks 使能看门狗记录(二)
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发1. 首先阅读原理图正常来说看门狗超时,CPU会直接复位,有时会要求输出复位脉冲。这个功能可以使能,也可以不使能。在Easy_arm_rt1052 开发板上面不使能复位脉冲也是可以复位成功的。2. 使能Watchdong在Awork框架下面,模块功能的开启都是在aw_prj_params.h文件内修改。而aw_prj_param_auto_cfg.h则是有依懒的,比如说,使能的LCD显示,一般都配置PWM控制背光,或原创 2020-11-06 18:39:23 · 560 阅读 · 3 评论 -
基于RT1052 Aworks 支持EEPROM访问(三)
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发在前几次的开发过程中,向FAE问了很多的问题,主要之前只获得比较少的资料 ,及对Awork缺少一个深入及系统性的认识,可以通过面向AWorks框架和接口的C编程(上).pdf 进行学习。在Aworks框架之下,对于外设一般会有对应一个.h文件。在其内部的AWbus-lite总线上,其实就是驱动与设备资源的匹配过程。其Aworks框架支持通过aw_nvram_set、aw_nvram_get接口进行访问,接下来我们来看一下在A原创 2020-11-06 18:36:56 · 345 阅读 · 0 评论 -
基于RT1052 Aworks 内存扩容记录(一)
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发1. 首先阅读原理图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mADt4vUT-1602837673126)(http://106.13.180.15:4999/server/…/Public/Uploads/2020-10-14/5f8672d8145ac.JPG “rt1052_sdram”)]内存容量由32M扩容至64M。2. 再则比较两颗芯片的参数通过比较32M和64M SD原创 2020-11-06 18:28:53 · 464 阅读 · 0 评论