星空体育官方网站 逐飞科技贡献:i.MX RT1064开源库
一、图书馆的由来
NXP近年来推出了i.MX RT系列高性能跨界MCU,其超高性能吸引了众多微控制器开发者的关注。
全国大学生“恩智浦杯”智能汽车大赛也拥有不少粉丝。参赛大学生表现出了极大的热情,尤其是对于i.MX RT1060系列,大家都想用上这款史上最强大的MCU。作为本次活动的第三方硬件模块供应商,“筑飞科技”希望能为参赛学生更快地使用这款高性能MCU做一些事情。所以我们开发了“RT1064库”,不仅可以满足智能车比赛的需求,还可以适合其他产品的开发。
库的主要工作就是将单片机的功能模块封装成符合大家使用习惯的功能。同时还做了一些优化工作来提升RT1064的性能,比如:外部SDRAM加速、优化TCM空间分配、指定代码运行位置、支持快速GPIO和ROM API等。这就是RT1064的由来《朱飞i.MX RT1064开源库》。
该库已通过 Git 开源。开源库的代码云链接如下:
。
2. 库结构
上图就一目了然了!
这是目录结构图:
Example文件夹下是库例程,主要展示如何使用库来实现单片机内部的外围功能。内容如下图所示:
nxp_libraries文件夹下放置的是NXP官方提供的SDK。内容如下图所示:
放在seekfree_libraries文件夹下的是筑飞科技精心编写的底层驱动。底层驱动采用NXP官方SDK重新封装,简化各模块的使用步骤,使用更加方便。
如果您不是参加比赛的用户,您可以利用这一层驱动快速上手RT系列,也可以通过查看我们的代码来学习如何使用SDK。
该部分目前支持ADC、FLEXIO_Camera、CSI接口、片上Flash读写操作、GPIO、IIC、PIT、PWM、QTIMER、ROM API(用于操作FLASH)、SPI、SYSTICK和UART。如果需要其他功能,可以直接调用SDK实现其他功能。内容如下图所示:
各种常用的模块驱动都放在seekfree_peripheral文件夹下。使用这些模块时,只需要调用函数即可实现相应的功能,非常简单方便。
目前已实现1.8英寸TFT、ICM20602六轴陀螺仪、IIC通信协议(模拟IO)、1.14英寸IPS液晶屏、2.0英寸8位并行屏、L3G4200D三轴陀螺仪、MMA8451三轴陀螺仪。轴加速度。仪表、MPU6050六轴陀螺仪、总风摄像头(Flexio和CSI可同时采集)、NRF24L01无线模块、OLED显示屏、彩色摄像头(即将推出)、虚拟示波器通信协议、无线转串口模块。内容如下图所示:
项目文件放置在IAR和MDK文件夹下。根据您使用的软件,您可以从相应的文件夹中打开整个项目。支持两种软件打开项目,让用户更自由地选择IDE。
用户自己添加的代码文件放在CODE文件夹下。当用户自己添加文件时星空体育官方网站,我们建议将它们全部添加到此文件夹中。
main.c isr.c 文件放在 USER 文件夹下。
3. 库应用示例1
例如,我们需要使用单片机的D13引脚输出50Hz、占空比为10%的PWM波形。
我们可以在seekfree_libraries文件夹中找到zf_pwm.c文件。在该文件中我们可以找到pwm_init函数来实现我们想要的功能。如果是第一次使用该库,函数的功能可能不是很清楚,可以查看写在函数上方的备注信息中,可以了解该函数实现的功能以及参数的含义的函数。如下图:
参数指定引脚。参数不能随意设置。必须选择相应的枚举值,以方便引脚的选择。枚举定义如下图所示:
第二个参数是要输出的频率,单位为 Hz。
第三个参数是pwm的占空比。占空比为5000%/PWM_DUTY_MAX*100。 PWM_DUTY_MAX位于fsl_pwm.h文件中,默认为50000。
根据需要调用初始化函数时,编写如下 pwm_init(PWM1_MODULE0_CHB_D13,50, 5000);
如果要修改占空比,可以使用 voidpwm_duty(PWMCH_enum pwmch, uint32 duty) 函数。第一个参数是引脚,第二个参数是需要达到的占空比值。
4. 库使用示例2
利用CSI接口采集总钻风摄像头并显示在1.14英寸IPS液晶屏上。
我们可以在seekfree_peripheral文件夹中找到全钻风(MT9V03X)和1.14英寸IPS的驱动。我们只需要调用相应的初始化函数和相应的显示函数就可以完成一个相对复杂的采集项目。具体操作如下图所示:
5. 特性介绍
对于“筑飞i.MX RT1064开源库”来说,最初的设计初衷就是为了高效利用这款高性能MCU。因此,我们从以下几个方面来提升RT1064的性能。
外部SDRAM加速:
该开源库在上电后自动将用户代码+中断函数+中断向量表加载到外部SDRAM中。与官方库相比,可以实现更快的中断响应和中断处理速度。大大提高运行速度。
优化TCM空间分配:
i.MX RT系列微控制器内部,RAM分为ITCM、DTCM和OCRAM,但只有ITCM和DTCM可以运行在600M的频率上。 OCRAM的频率只有150M。可见中医是最快的。
因此星空体育app官方下载,库将DTCM空间从默认的128KB增加到448KB,可以提供更多高性能的TCM空间。方便保存更多较大的变量或数组。
指定代码运行的位置:
提供了一种简单的方法来指定要在不同 RAM 中运行的代码。当计算一些大型复杂运算时,可以将代码放在ITCM中以获得最高的运行速度。具体可以参考开源库中的库例程。
支持快速GPIO和ROM API:
提供对快速GPIO的支持星空·体育中国官方网,可达到高达150M的IO翻转速率,实现更高的IO操作速率。
提供ROM API支持,可以方便地操作片上Flash保存数据。
六、结论
这里先介绍一下RT1064的库。如果您在使用库时遇到任何问题,可以在QQ群中讨论:QQ群技术交流平台【筑飞科技__智能汽车③部824575535】
也欢迎提出改进建议。
我要评论