发 帖  
原厂入驻New

【大联大世平 NXP i.MX RT1064开发板试用体验】1-简介+开箱+上电+编译环境搭建+电灯

2020-9-24 21:49:45  59
分享
(一)简介
RT1064
RT10XX系列几乎是世界上首个M7系列跨界处理器,当其他M7内核芯片还在200Hz挣扎的时候,RT1060系列已经冲到600MHz。
RT1064是RT10xx系列的最强型号,拥有丰富的外设,包含DCI摄像头、LCD接口,支持RGB、8080的多种格式裸屏直驱。
另外值得注意的是这个芯片还拥有两个主从两用的接口。并且能完整支持USB2.0,最高能支持到FS。这在相当多芯片上需要外挂芯片才能够实现。
USB.png
值得一提的是,RT1064还支持一个基本的硬件加速2D像素处理单元PXP,能够进行基本的色彩处理和图像旋转,这对于有这类图形应用需求的应用来说能够极大地缩短像素遍历带来的时间开销。


EVK开发板
RT1064的EVK开发板有丰富的外设,包括上面提到的HS、FS的USB接口,以太网、板载仿真器音频接口、摄像头接口、SDIO TF卡接口。
配置.png
同时还拥有高达1M的片上SRAM,这意味着对于480*272的双缓冲RGB接口屏幕,直驱的时候根本不需要外部SDRAM加速,一半空间足以对付这个让大部分单片处理器头疼的缓存问题。
还能够通过拨码选择启动方式。
实拍.jpg
背面预留了标准RGB 40P接口以及FT5XXX系列电容触摸6P排线接口。与我之前的使用过的LPC54xxx开发板的接口一样,都是支持官方RK043屏幕,
只是这个屏幕官方售价高达180RMB,市场上大部分都是gt911的触摸,若是不使用官方屏幕可能需要额外适配。



(三)上电
一条micro USB线接到仿真器接口就可以上电了。没有屏幕部分的功耗,仿真接口的完全能提供足够的电流。
上电之后是一个基本的LED闪烁灯程序。
PC上有好几个设备。
设备1.png
仿真器识别为DAP-LINK,支持虚拟串口,还有一个存储设备,不知道是不是支持拖拽烧录。
设备2.png


(四)创建开发环境
第一次接触NXP还是四年前的事情了,当时NXP刚刚收购了飞思卡尔,产品线一片混乱,开发环境各种各样,最后只能使用万金油的MDK。至于开发包也是难找,大多是LPCOPEN库,每个还不一样,甚至到了前段时间使用LPC4337的时候依然还是LPCOPEN库,体验非常郁闷。
这种情况持续到上两年左右有了转机,NXP正式推出自己独家的MCUXpresso IDE开发环境以及统一的MCUXpresso SDK库正式迎来翻盘。个人而言,MCUXpresso无论是图像配置功能还是代码风格、编译环境都比比他更早出CUBEMX体验更好,这让我对NXP的产品骤然有了极大的好感。

到NXP官网可以配置出需要的 MCUXpresso SDK包:https://mcuxpresso.nxp.com/en/welcome


编译下载之后拖进IDE里面就完成安装了。
SDK安装.png

(五)创建工程
一个简单的工程基本不需要做任何修改。
不过里面的配置还是相当的多,可以预先设置程序信息打印的semihost,也可以添加功能丰富的组件,实际上组件可以在创建工程之后再额外配置添加。
创建2.png
另外,可以看到,有几个可用的RAM分区,前两个128K的RAM以及一个高达768K的内部RAM,外挂的SDRAM则达到30M和2M,基本上是一个MMU SOC支持的水平了。
创建1.png

首先来点个闪烁灯。
1-板子上唯一一个可以点的LED灯饰GPIO1的9,配置软件上表现为GPIO_AD_B0_09,一开始点了GPIO_B0_09,半天没亮。
IO配置1.png
2-配置GPIO口
IO配置2.png
IO配置3.png
生成配置代码:
IO配置4-更新代码.png

3-反转GPIO的函数:

  1. void GPIO_PinWrite(GPIO_Type *base, uint32_t pin, uint8_t output)
复制代码


GPIO_Type 找到其定义:

  1. typedef struct {
  2.   __IO uint32_t DR;                                /**< GPIO data register, offset: 0x0 */
  3.   __IO uint32_t GDIR;                              /**< GPIO direction register, offset: 0x4 */
  4.   __I  uint32_t PSR;                               /**< GPIO pad status register, offset: 0x8 */
  5.   __IO uint32_t ICR1;                              /**< GPIO interrupt configuration register1, offset: 0xC */
  6.   __IO uint32_t ICR2;                              /**< GPIO interrupt configuration register2, offset: 0x10 */
  7.   __IO uint32_t IMR;                               /**< GPIO interrupt mask register, offset: 0x14 */
  8.   __IO uint32_t ISR;                               /**< GPIO interrupt status register, offset: 0x18 */
  9.   __IO uint32_t EDGE_SEL;                          /**< GPIO edge select register, offset: 0x1C */
  10.        uint8_t RESERVED_0[100];
  11.   __O  uint32_t DR_SET;                            /**< GPIO data register SET, offset: 0x84 */
  12.   __O  uint32_t DR_CLEAR;                          /**< GPIO data register CLEAR, offset: 0x88 */
  13.   __O  uint32_t DR_TOGGLE;                         /**< GPIO data register TOGGLE, offset: 0x8C */
  14. } GPIO_Type;
复制代码


在相同的文档内搜索 GPIO_Type;
#define GPIO1                                    ((GPIO_Type *)GPIO1_BASE)

在main函数里面配置:
  1.         GPIO_PinWrite(GPIO1, 9 , 0);
  2.         delay();
  3.         GPIO_PinWrite(GPIO1, 9 , 1);
  4.         delay();
复制代码
为了让灯能够闪烁,需要有个延时效果,这时候我才发现好像没有所以systick?暂时先用轮询顶一下:
  1. void delay(void)
  2. {
  3.     volatile uint32_t i = 0;
  4.     for (i = 0; i < 30000000; ++i)
  5.     {
  6.         __asm("NOP"); /* delay */
  7.     }
  8. }
复制代码


插上仿真器USB,下载程序。
一开始使用这个IDE的时候可能感觉每次下程序都必须点那个小虫子,进入debug状态,很麻烦,实际上这个IDE里面有一个直接烧录下载的方式:
下载.png
下拉第三个选项即时。

下载进去,成功闪烁!
1
2020-9-24 21:49:45   评论 分享淘帖

只有小组成员才能发言,加入小组>>

89个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /8 下一条

快速回复 返回顶部 返回列表