admin管理员组

文章数量:1531703

2024年1月11日发(作者:)

飞思卡尔单片机快速上手指南飞思卡尔单片机快速上手指南

飞思卡尔半导体飞思卡尔半导体IMM FAE团队

2014年9月 · 审阅稿

飞思卡尔半导体是全球领先的单片机供应商,其单片机产品包含多种内核,有数百个系列。为支持用户使用这些产品,飞思卡尔提供了丰富的网站资源、文档及软硬件工具,另外,我们还有众多的第三方合作伙伴及公共平台的支持。对于不熟悉飞思卡尔产品和网站的初学者来说,了解和使用这些资源这无疑是一个令人望而生畏的浩瀚工程。本指南的目的,就是给初学者提供一个指导,让他们不被这些海量信息淹没;用户根据本指导提供的操作步骤,能迅速找到所需的资源,了解如何使用相关的工具。

在本指南中,我们以飞思卡尔的新一代Kinetis单片机K22系列为例,介绍了如何获取与之相关的资源,如何对其进行软硬件设计和开发。实际上,这些方法也适用于其它的单片机系列。当然,对于其它有较多不同之处的产品,我们也会继续推出相应的文档,供广大用户参考。

目录

第一章.

如何获取技术资料与支持

第二章.

如何如何选择选择产品选择产品、产品、申请样片及购买少量申请样片及购买少量芯片少量芯片和芯片和开发工具

第三章.

飞思卡尔飞思卡尔单片机的开发环境单片机的开发环境、开发工具和生态系统单片机的开发环境、开发工具和生态系统

第四章.

如何如何阅读飞思卡尔的技术文档阅读飞思卡尔的技术文档

第五章.

飞思卡尔飞思卡尔单片机硬件设计指南单片机硬件设计指南

第六章.

飞思卡尔飞思卡尔单片机单片机软单片机软件开发指南开发指南

第一章

第一章 如何获取技术资料与支持如何获取技术资料与支持

1.1 概述

当用户使用飞思卡尔单片机芯片时,如何获取芯片的数据手册(Datasheet)、参考设计(Reference Manual)和官方例程等资源呢?另外当用户遇到了技术问题该如何获得帮助和解答呢?这里以Kinetis的K22系列芯片为例为大家介绍如何解决这些问题。

1.2 如何查找芯片的如何查找芯片的技术资料查找芯片的技术资料

1) 飞思卡尔芯片的资料全都可以在飞思卡尔的官网上免费下载。进入飞思卡尔官网 ,如果您习惯使用中文,点击右上角Select language下的“中文”,选择显示中文,如图1所示,用户以后再进入该网站时,它就会自动默认为中文显示。

图1. 飞思卡尔网站中文语言选择

2)

然后选择“产品”->“微控制器”->“Kinetis ARM ® MCU”,如图2所示。

图2. 选择Kinetis ARM MCU

3) 在Kinetis微控制器/单片机界面中,在左下方选择K22_120 (120 表示主频为120M),如图3所示。点击此链接,可进入K22_120的产品页面。

图3. 选择K22_120

图4. K22_120资源集合

4) 如图4所示,进入产品页面之后,可以看到这里包含很多资源。在“文档”栏目中能找到芯片的数据手册、参考手册、应用笔记、用户指南等;在“软件和工具”栏目中能找到芯片使用的仿真调试器、评估开发板、软件开发工具等。您可以根据需要进行相关资源的下载。

另外您也可以通过飞思卡尔官方网站的搜索功能进行查找。方法是先进入官网, 在右上角的搜索框中输入K22,然后点击搜索图标或按Enter键进行搜索,如图5所示。

图5. 搜索关键字/芯片型号

搜索后的结果如图6所示,在这里同样可以获取您需要的相关资源。

图6. 搜索结果

另外,在飞思卡尔官网上有一些针对某些应用领域的参考设计,这些参考设计可以帮助您快速进行产品开发。以电表的设计为例,在飞思卡尔官网上点击:应用->工业->智能电网与智能仪表,如图7所示。之后在对应页面可以找到相关的参考设计,如图8所示。

图7. 智能电网与智能电表

图8. 参考设计

1.3 如何得到如何得到技术支持得到技术支持

当您在使用飞思卡尔芯片的过程中遇到问题时,您可以通过以下的途径得到支持:TIC、在线论坛和当地FAE。

1.3.1 TIC (Technical Information Center,技术信息中心技术信息中心)

通过TIC,您可以提交技术服务请求SR(支持使用中文),之后会有专业的技术支持工程师他们分布在飞思卡尔全球各地的机构中,为您在线解答。TIC工程师都是飞思卡尔的资深工程师,专门负责解答客户通过网络提交的问题。每个服务请求完成之后,都会向客户发送满意度调查表。

提交SR的具体操作步骤如下:

1) 进入飞思卡尔官网,点击支持服务与网络社区->销售与技术支持,如图9所示。进入销售与支持页面,点击创建服务请求,如图10所示。

图9. 销售与技术支持

图10. 创建服务请求

2) 选择技术服务类别和主题,如图11所示。

图11. 技术类别与主题 图12. 选择器件

3) 选择器件,如图12所示。

之所以要将问题进行分类,是为了将问题细化归类,从而有利于我们后台的TIC工程师进行问题分拣,进而能找到对所提交问题最有经验的工程师来解答。

4) 录入问题描述,可以添加附件,如图13所示。这里您既可以输入中文,也可以输入英文,我们鼓励用户的描述能尽可能的详细和清楚。

图13. 问题描述

5) 最后提交技术服务请求(需要在飞思卡尔官网注册账号并登陆)。用户可以随时查看SR(服务请求)的处理状态。正常情况下,我们的TIC工程师会在24小时内回复到用户注册的邮箱。之后用户就可以直接通过回复邮件的方式直接跟这个工程师沟通,而不需要再去重新提交问题,直到问题解决。如果是新的问题,则需要重新提交一次。 在用户的问题解决完之后,系统会自动发送一份满意度调查表到用户的邮箱,用户可以给本次服务作一个满意度评估。飞思卡尔也会根据评估来提高服务质量。

1.3.2 在线论坛

论坛包括两大类,一是飞思卡尔自己的官方论坛:/welcome。

在这里用户可以先搜索是否有人曾遇到过类似的问题,或者创建自己的问题。提问时可以用中文,但最好用英文,这样就可以有全世界的技术人员进行解答。如图14所示。

图14. Community搜索与提出问题

还有一类是飞思卡尔第三方中文论坛,主要包括以下三个:

与非网:

21ic:

/bbs/

/

/ 阿莫论坛:

它们的二维码如下:

与非网 21ic 阿莫论坛

都有飞思卡尔的FAE和专门支持论坛的TIC无论是飞思卡尔自己的论坛还是第三方的论坛,而且数量很多。 工程师支持和回复。这里以与非网为例,可以看到版主均是飞思卡尔的工程师,

图15. 第三方论坛的飞思卡尔工程师版主

1.3.3 通过FAE得到技术支持得到技术支持

另外您还可以与代理商FAE或者飞思卡尔原厂FAE进行联系以获取相关的技术支持,建议您先与相应的代理商FAE联系。

分别为Arrow飞思卡尔目前有六家代理商,(艾睿电子)、Avnet(安富利)、WT(文晔科技)、Weikeng (威健国际)、Comtech(科通)和CEAC(中电器材)。

可以通过点击样品与购买->从分销商处购买,查看代理商的相关信息,如图16所示。

图16. 进入代理商信息页面

进入界面之后,选择国家和城市,就可以查看到相应的代理商联系方式,如图17所示。需要注意的是有些代理商现在已经退出了,如Fortune和WPI。这些信息在网站上暂时还没有更新,用户需留意。

图17. 代理商信息

1.4 如何查找如何查找中文文档查找中文文档

飞思卡尔为中国用户提供了很多中文文档,而且更多的中文文档正在陆续发布。为方便用户,部分使用频率比较高中文文档被整理在一起。用户点击“支持服务与网络社区”->“文档”即可看到,如下图18所示。

图17. 飞思卡尔网站的中文文档

第二章第二章 如何选择如何选择产品选择产品、产品、申请样片及购买少量申请样片及购买少量芯片少量芯片和开发工具

2.1概述

购买芯片及开发工具。本本章将介绍如何确定飞思卡尔单片机的具体型号,如何申请样片、章仍以Kinetis K22系列MCU为例进行说明。

2.2芯片选型

飞思卡尔单片机的种类非常多,那么该如何获取合适的芯片呢?飞思卡尔提供了多种不同的方法和工具来帮助用户找到合适的产品。根据对飞思卡尔产品的了解程度和查找目的的不同,用户可以采用不同的方法进行选择。

2.2.1 主页产品查找

如果用户已经知道要查找的产品的基本信息,例如已经知道要找带USB功能的K22系列具体步骤如下: 的MCU,但是需要找到一个具体的芯片型号,最常用的方法是在主页进行查找,1) 进入飞思卡尔官网,选择“产品”->“微控制器”->“Kinetis ARM

® MCU”,之后就会进入到Kinetis微控制器/单片机主页。如图1所示。

图1. Kinetis微控制器/单片机主页

2) 在主页的左下方Kinetis微控制器处,可以进入到每个系列MCU的各个子系列,在这里我们选择K22_100,如图2所示。这里100表示芯片的主频为100MHz。

图2. 选择K22_100子系列

3) 进入K22_100主页之后,选择购买/参数,就会出现该系列所有芯片的参数信息,如管脚数量,封装形式,内存大小等,可通过这些参数选择最合适的芯片,如图3所示。

图3. K22_100购买/参数

2.2.2辅助选型工具辅助选型工具

如果用户并不清楚需要查找的芯片基本信息,飞思卡尔还提供了一些辅助的选型工具来帮助用户进行芯片的选型,分别介绍如下。

2.2.2.1参数选型工具

如果用户知道需要什么内核的产品,则可以通过“参数选型工具”来辅助进行芯片选型。步骤如下:

如图4所示。 1) 进入飞思卡尔官网 ,点击页面上方的参数选型工具。

图4. 参数选型工具

2) 选择微控制器->Kinetis MCU(基于Cortex-M内核),如图5所示。

图5. 选择Kinetis MCU

3) 在器件类型中,我们选择K2x USB MCU,如图6所示。

图6. 选择器件类型

4) 之后您可以进行多种操作,以辅助您选取到合适的芯片。比如您可以通过显示/隐藏参数来调整页面的参数显示类型,如图7所示。您还可以通过调整参数的范围来进行芯片的选取,如图8所示。

图7. 显示/隐藏参数

图8. 调整参数范围

2.2.2.2选型神器选型神器Cross Check

您还可以通过选芯神器Cross Check(目前最新版本为V3.0)来帮助您快速找到合适的飞思卡尔芯片,该软件具有以下功能:

1) 根据输入的芯片型号或参数特性来显示飞思卡尔相关器件的预算价,并能够订购样品或购买器件。

2) 根据用户输入的竞争对手的芯片型号,给出4款最适合的飞思卡尔器件。

该软件的下载地址为:

/zh-Hans/webapp/sps/site/?nodeId=05D8D7194A&uc=true&lang_cd=zh-Hans

打开该网页后,可以扫描右侧的二维码进行下载手机应用软件,如图9所示。

图9. Cross Check软件下载

您也可以使用网页版的工具,方法是先登陆飞思卡尔官方网站,在我的账号-安全应用下,包括部件预算价和竞争对手交叉参考两个工具,如图10所示。图11可以找到选型神器的应用,和12是两个工具的使用界面。

图10. 部件预算价和竞争对手交叉参考

图11. 部件预算价工具

图12. 竞争对手交叉参考工具

位置在Kinetis微控制器/单片机主页, 注:对于竞争对手交叉参考,可以不用登陆就能使用,右侧的辅助工具-交叉参考工具以及下方的设计资源-支持和专业服务-MCU竞争对手交叉参考。如图13所示。或者通过网址/crosscheck进入。

图13. 竞争对手交叉参考工具

2.2.2.3 解决方案顾问Solution Advisor

飞思卡尔解决方案顾问是一款基于Web的互动式应用向导和动态产品选型工具。如果用户完全不知道要使用哪个芯片,则可以通过这个工具来查找合适的芯片。使用步骤如下:

1) 通过/solutionadvisor/进入到解决方案顾问的主页,如图14所示:

图14. 解决方案顾问主页

2) 选择产品选择器,如图15所示。在这里按照提示的先后步骤您可以快速找到最合适的处理器和工具。

图15. 产品选择器

3) 此工具还提供了电机控制向导,如图16所示。它可以帮助您快速找到最合适的电机控制解决方案。

图16. 电机控制向导

图17. HMI向导

4) 您还可以使用HMI向导,如图17所示。它可以帮助您快速找到最合适的HMI解决方案。

2.3 申请免费样片与购买芯片

2.3.1 申请免费样片

1) 在官网点击样品与购买-索要样品,可以进行免费样片的申请,如图18所示。

图18. 免费样片申请

2) 选择微控制器,以K22举例,经过检索可以找到K22的相关样品,或者您可以直接通过微控制器 -> Kinetis -> K系列-> K2x -> K22的方式找到该芯片,检索界面如图19所示。

图19. 检索样品

3) 检索到样片之后,点击黄色的“样品”按钮。如图20所示。

图20. 选择样品

注:我们的样品在一定数量内为免费样品,并且快递费用全免。关于样片具体申请的个数及费用等相关信息,可以在常用问题简答中得到相关解释。如图21所示。

图21. 常见问题解答

2.3.2 如何购买如何购买少量购买少量芯片少量芯片

2.3.2.1在飞思卡尔官网上飞思卡尔官网上购买

1) 在飞思卡尔官网上注册。如果您已经是会员,请登录网站。

2) 搜索器件。找到可订购器件的 “直接购买”按钮,该图标位于器件号右侧。如图22所示。

图22. 直接购买图标

当您将产品添加到购物车后,3) 点击“直接购买”按钮图标,将产品添加到您的购物车中。您可以更新您的购物车,继续购物或结帐。如图23所示。

图23. 购物车

目前,我们支持支付宝、VISA和Master卡来进行网上直接在线支付。但是客户需要自己负责清关(手续并不麻烦,但是在海关要求的情况下需要客户自己处理。因为是小批量订单,而且我们不知道客户的具体用途,所以需要客户自己清关)

4) 您在下订单之后,将会收到一封确认电子邮件。您可以对已注册用户主页进行个性化定制,随时跟踪订单情况。 (到货时间视产品供货情况和配送方式而定。)

2.3.2.2 第三方供应商第三方供应商小批量芯片购买供应商小批量芯片购买

除了飞思卡尔官网之外,客户还可以用过以下与飞思卡尔有官方合作的芯片在线销售公司来购买小批量芯片:

Element14:

E络盟:

周立功:

DigiKey:

Mouser:

/community/welcome

/

/

/

/

2.3.3 购买开发板

当您需要购买开发板时,可以在飞思卡尔官网上进行购买,步骤如下:

1) 点击MCU界面的软件与工具,在硬件开发工具中查看该系列MCU有哪些开发板。这里还以K22举例说明,如图24和25所示。

图24. 软件与工具

图25. 硬件开发工具

2) 点击相应的开发板之后,可以进入这个开发板的主页,这里以FRDM-K22F为例。可以看到相关的各种资源,在“文档”栏目中能找到开发板的用户指南等;在“下载”栏目中能找到如图26所示。 开发板的原理图、Sample code、快速开发包等;选择购买/规格 就可以进行购买。

图26. 购买开发板

另外从飞思卡尔的第三方合作伙伴,如uCDragon(优龙科技)、Manley(万利电子)、周立功和lierda(利尔达),同样可以购买到他们为飞思卡尔芯片定制的开发板。

他们的网址分别为:

优龙科技:

万利电子:

周立功:

利尔达:

以优龙科技为例,首先进入官网,在产品分类中的ARM开发板中可以找到飞思卡尔相关的开发板。如图27所示。

图27. uCdragon freescale开发板

点击相应的开发板之后,可以获得该开发板的信息,通过页面左下方的联系方式,你可以购买到该开发板,如图28所示。

图28. 优龙的销售联系方式

第三章 飞思卡尔单片机的开发环飞思卡尔单片机的开发环境单片机的开发环境、开发工具开发工具和工具和生态系统

3.1 概述

在根据需求完成选型之后,用户应开始了解相关的开发环境、开发工具和生态系统,评估飞思卡尔提供的工具和资源是否能够满足用户的开发需要。本章节将会介绍集成开发环境(IDE)、评估板(EVM)、调试器(Debugger)、参考代码与设计(Sample code with documents & Existing

Reference Design)以及生态系统 (ecosystem)。希望本章节的内容能让用户快速准确地找到相关资源来完成这一过程。

3.2 集成开发环境(集成开发环境(IDE)

集成开发环境就是针对可编程器件的集编辑、编译和调试功能于一体的开发调试工具。以Kinetis系列MCU为例,通用的IDE均可支持,例如IAR、Keil等。另外飞思卡尔也有自己的IDE,分别是Kinetis Development Studio(KDS) 和CodeWarrior,本节将会主要介绍这两个工具及内嵌在这两个IDE中的代码生成工具Process Expert(处理器专家)。

3.2.1 Kinetis Design Studio (KDS)

KDS是飞思卡尔在2014年刚刚推出的专门用于支持Kinetis系列MCU的一款集成开发环境软件,能够提供代码编辑到调试的完整功能。KDS的特点如下:

• 支持目前Kinetis全系列的产品,并将不断更新对新产品的支持;

• 开源免费,且不受软件代码大小的限制(提醒:Keil、IAR等IDE均需要收费);

• 支持在32/64位的Windows 7/8的操作系统上运行;

• 使用Elipse界面风格,并且支持其他可下载的插件,如Processor Expert;

• 支持SEGGER J-Link/P&E USB Multilink Universal/CMSIS-DAP/OpenSDA等调试接口;

• 专门为Kinetis系列MCU开发,因此具有内核编译器小、响应速度快的优势。

3.2.1.1

KDS软件下载与安装

目前KDS的最新版本是V1.1.1,以下描述均以该版本为例。软件与相关说明文档的下载路径如下:

软件:中文首页->软件和工具->软件中心->IDE-调试、编译与构建工具->微控制器->Kinetis Design Studio->下载

(/zh-Hans/webapp/sps/site/prod_?code=KDS_IDE&fpsp=1&tab=Design_Tools_Tab)

文档:中文首页->软件和工具->软件中心->IDE-调试、编译与构建工具->微控制器->Kinetis Design Studio->文档

(/zh-Hans/webapp/sps/site/prod_?code=KDS_IDE&fpsp=1&tab=Documentation_Tab)

在Windows系统上安装KDS很简单,只需双击,根据向导即可完成。另外,飞思卡尔还提供了一个工具,叫做Kinetis软件开发套件(KSDK),它可以嵌入KDS中使用,为用户提供丰富的外设驱动代码、协议栈代码、中间件代码和示例代码。关于KSDK的详细介绍,请参见第六章的内容。

在完成KDS的安装后,如果需要在KDS中嵌入KSDK,则还要下载和安装KSDK软件包,软件与文档的下载路径如下:

软件:中文首页->软件和工具->软件中心->中间件->用于Kinetis MCU的软件开发套件->下载

(/zh-Hans/webapp/sps/site/prod_?code=KINETIS_SDK&fpsp=1&tab=Design_Tools_Tab)

文档:中文首页->软件和工具->软件中心->中间件->用于Kinetis MCU的软件开发套件->文档

(/zh-Hans/webapp/sps/site/prod_?code=KINETIS_SDK&fpsp=1&tab=Documentation_Tab)

在下载安装KSDK后,要嵌入KDS中使用要完成以下步骤:

1) 启动KDS并在“Help”选项中选择“Intall New Software”

图1. 在KDS中安装KSDK步骤一

2) 在“Available Software”的窗口中,点击“Add”并找到KSDK安装目录中的.zip文件,点击OK。

图2. 在KDS中安装KSDK步骤二

3) 找到文件位置后,在“the Processor Expert Software category”的项目下显示有“Eclipse Update for KSDK”;在勾选框内打勾,并点击“Next”并完成安装。

图3. 在KDS中安装KSDK步骤三

另外,如果需要在KDS中使用Processor Expert,还需要安装一个更新补丁。该补丁名为Processor Expert for KDS 1.1-Updata 1,下载路径与KSDK相同,安装方法也与安装KSDK相同,可参照上述步骤进行操作。

3.2.1.2

在KDS中新建工程与导入已有工程

在KDS中新建一个工程可参考以下步骤:

1) 在打开KDS后,选择新建工程:File->New->Kinetis Design Studio Project。

2) 输入工程名,并在选择工程的存储位置后,点击“Next”。

图4. 在KDS中新建工程步骤二 图5. 在KDS中新建工程步骤三

3) 选择需要评估的芯片型,点击“Next”。

4) 在“Rapid Application Development”中,可以在新建工程中加入Process Expert和KSDK来简化底层驱动代码的编写工作。Processor Expert已包含在KDS中,但加入KSDK需要按照3.2.1.1节中的步骤手动安装。

图6. 在KDS中新建工程步骤四 图7. 在KDS中新建工程步骤五

5) 在完成上述配置后,点击“Finish”可以看到如图7所示的Project Explorer界面。

6) 在工程中,可以通过右击项目名选择New->Source File来新建文件,也可以通过配置拖拽功能将已有的源文件、头文件和目录等加入到工程中。

导入已有工程可参考以下步骤:

1) 在打开KDS后,选择File->Import。

2) 在Import页中,选择Existing Projects into Workspace并点击“Next”。

3) 在Import Projects页中,选择Select root directory并点击“Browse”来选择已有工程的目标文件夹,选好后点击“OK”。

图8. 在KDS中导入已有工程

4) 在Projects框中会列举出目标文件夹中所有的工程,在需要导入的工程前的选项框内打勾,并点击“Finish”。

3.2.1.3

编译与调试

在开始编译程序之前,需要预先配置好工程的一些编译参数。右击要编译的Project并选择Properties,在Proporties for example页中可以看到工程的所有参数。点击展开“C/C++Build”后如需修改,请参照说明文在Settings中可以看到跟编译有关的参数,默认的参数一般无需修改,档。

图9. 在KDS中配置编译参数

在点击编译图标后,在相应的工程文件中看到编译生成的.elf文件,如下图所示。

图10. 编译后生成的可下载文件

在开始下载之前,需要先配置相关调试参数,如选择调试接口等。右击需要调试的工程并选择Debug As->Debug Configurations进入Debug配置页面,如图11所示。也可以点击调试按键右侧的下拉箭头来进入此配置页面。在“Main”选项卡中,需保证C/C++ Application一栏中所选的.elf文件为需要调试的工程对应产生的编译文件。对于“Debugger”和“Startup”两栏,根据调试器的不同,需要进行不同的配置,如图11所示。这部分内容会在第3节中作具体介绍。

图11. 在KDS中调试配置

图12. 在KDS中进行调试

将目标板与PC机通过USB线和相关调试器连接起来,依次点击Apply和Debug

配置完成后,两个按键进入Debug Perspective,如12图所示,可以程序已暂停在main()函数的初始处。这样就可以实际调试程序了。下表列出了工具条中各按键的主要作用。

表1. 在KDS中调试按键 功能

按键 说明

开始/继续执行

按键 说明

单步返回函数

暂停执行

复位

使能汇编单步执行

断开仿真器

单步执行

结束调试

单步进入函数

开始下载与调试

3.2.1.4

下载

在程序调试完成后,需要将调试好的程序下载到FLASH中。

点击下载按钮 ,进入Flash Configurations界面。配置可参考2.1.3小节中的要求相同。在完成配置后,依次选择Apply和Flash,等待程序下载完成后,重新上电或手动复位后程序开始运行。

3.2.2 CodeWarrior集成开发环境集成开发环境

CodeWarrior(简写为CW)原是Metroworks公司的产品,后来该公司被飞思卡尔收购,因此CW也就成为了飞思卡尔自己的IDE系统,目前已在业内使用多年。从10.0版本以后,CW开包括ColdFire、始使用Eclipse界面,能够支持不同架构的芯片,ColdFire+、DSC、Kinetis、PowerPC、Qorivva、RS08、S08和S12Z等。

目前针对飞思卡尔单片机的CW的最新版本是CodeWarrior for Microcontrollers v10.6。另外根据客户的用途和需求不同分为评估版、基础版、标准版和专业版,其中评估版是免费的,其以Kinetis系列MCU为例,支持代码和数据大小也是有限制的。K系列的限制为128KB,E/L/M/V系列的限制为64KB,如超出限制,则需要申请更高级的版本。

另外需要提醒的是,对于v10.6以后的版本,CodeWarrior不会再支持其后发布的Kinetis系列的产品,因此对于使用Kinetis新产品的用户,需要将软件平台逐步转移到其他IDE上,由于CodeWarrior与KDS所建立的工程兼容,因此推荐使用KDS完成IDE平台的切换。

CodeWarrior软件的安装包和相关文档的下载路径为:

软件:飞思卡尔中文首页->软件和工具->软件中心->IDE-调试、编译与构建工具->微控制器->CodeWarrior for

MCUs->下载

(/zh-Hans/webapp/sps/site/prod_?code=CW-MCU10&fpsp=1&tab=Design_Tools_Tab)

文档:飞思卡尔中文首页->软件和工具->软件中心->IDE-调试、编译与构建工具->微控制器

->CodeWarrior for MCUs->文档

(/zh-Hans/webapp/sps/site/prod_?code=CW-MCU10&fpsp=1&tab=Documentation_Tab)

在支持的调试接口、新建工程与导入工程、调试与编译等方面,CodeWarrior与KDS基本相同,此处就不作介绍,具体细节可以参照相关说明文档。

3.2.3 处理器专家处理器专家(专家(Processor Expert)

Process Expert (简称PE) 是一款支持Kinetis、Coldfire等多种不同内核的MCU的快速应用开发软件。该软件以图形化界面的方式快速配置MCU的内核及外设,生成相应的初始化及应用代码,省去手动编写底层驱动代码的繁复工作,从而大大提高了软件工程师的工作效率。其生成的代码可以支持KDS、CodeWarrior、IAR和Keil等多种IDE;另外,PE还以嵌入到基于Eclipse架构的IDE中,例如在KDS和CodeWarrior,可以直接使用嵌入的PE功能,PE所产生的代码将自动放置在相关工程下,然后在此基础上修改主程序就可以进行编译和调试。

KDS和CodeWarrior这两种IDE安装后都带有内置的PE,无需再额外安装。因此其安装过程就不再介绍。

3.2.3.1

新建基于新建基于PE的工程

下面以Kinetis K22为例,创建一个使用PE的KDS工程。工程所需的具体配置如下:

1) 首先 在KDS的选项栏中,点击File栏并选择New->Bareboard Project来创建一个新的工程。

2) 出现工程向导界面如下,输入工程名并点击Next。

图13. 工程设置向导

3) 选择芯片类型,此处选择Kinetis K Series->K2x Family ->K22。点击Next。

4) 在Language and Build Tool Options页中,选择C语言并 点击Next。

5) 在Rapid Appliation Developmen页中,在Rapid Appliation Developmen组中,选中Processor

Expert并点击Finish。至此一个包含PE功能的工程已建好,下面开始添加元件来配置所需的外设。

6) 在Component Library中,找到相应组件(如FTM)并右击选择Add to project选项。

7) 点击打开添加的组件,其具体配置显示在Component Inspector 中。

8) 根据所需要求进行以下配置初始化等参数。

9) 在配置完成后,点击图标产生相应代码。

10) 所产生的代码存放在Generated_Code文件夹中。可以看到FTM的相关初始化代码已自动完成,点击功能键即可编译运行后。

图14. 在KDS中使用Processor Expert生成代码

3.3 调试工具(调试工具(Debugger)

调试工具是开发工具链中的重要一环,方便耐用的开发工具对用户非常重要。接下来就介绍三种常用的调试工具。

3.3.1

OpenSDA调试功能

OpenSDA是飞思卡尔自主开发的一种调试平台。在该平台中烧写不同的调试固件,可以使其兼容不同的调试工具(如实现PEMicro Segger的JLink接口等)。下面介绍如何在FRDM-K22F板上使用OpenSDA来实现Jlink调试。

1) 在Segger的官网上下载用于OpenSDA的固件库。下载地址为:/

2) 如果FRDM-K22板通过USB线连接到PC机上,请将其拔下。

3) 按住SW1键,然后用USB线连接PC机与板上的SDA USB接口。

4) 松开 SW1键,可见板上一个LED灯在有规律地闪烁,且在PC机上能看到一个移动存储设备,其盘符为BOOTLOADER,表示目标板进入了bootloader模式。

图15. OpenSDA处于BOOTLOADER模式下的显示

5) 将步骤1)中所下载的压缩包Jlink_OpenSDA_V2_解压缩,得到Jlink_OpenSDA_V2_文件。

6) 将上述.bin文件复制粘贴到BOOTLOADER设备中并拔下USB线。

7) 重新插上该USB线,在设备管理器中可见到如下设备,表示固件烧写成功。

图16. 固件下载成功后设备管理器中显示

这样在IDE中就可以选择以Jlink调试下载程序了。另外OpenSDA还带有虚拟串口调试功能,串口格式如下。

波特率:115200 bps; 1位起始位;8位数据位;无校验位;1位停止位。

在KDS中关于使用OpenSDA设置如下图所示。

图17. 在KDS中使用Jlink调试配置

3.3.2

JLink

Jlink是SEGGER公司为支持仿真ARM 内核芯片推出的JTAG仿真器,支持Cortex

M0/M1/M3/M4等内核芯片,并与KDS、CodeWarrior、IAR 和keil等多种开发环境无缝连接,使用方便。

Jlink驱动的下载地址如下:/,该驱动软件不仅提供了程序下载功能,另外J-Flash软件还可以不需要IDE软件独立地擦除与烧写程序,以及实现查看芯片的ID、RAM/FLASH大小、解锁芯片等功能。

下图为Jlink的20脚的接口图。

图18. JLink的标准20芯接口

3.3.3

Multilink

(USB Multilink Universal

P&E推出的USB Multilink Universal(FX)是一款高速一体化开发接口FX比USB Multilink Universal下载速度更快),它支持Kinetis、DSC等多种MCU。因此其包含多种调试接口以匹配不同种类的MCU,下图为支持Kinetis系列相关的三种调试器。

在使用时,其连接顺序如下:

1) 确保目标板断电,并断开USB Multilink Universal与外部的连接。

2) 打开Multilink的塑料外壳,选择合适的接口将其与目标板的调试接口连接起来。

3) 将Multilink与PC机通过USB线相连。此时蓝灯亮。

4) 将目标板上电,此时黄灯亮。

在断开连接时,请先将目标板断电。使用时请遵守连接顺序,否则可能到损坏调试器。

3.4 评估板(评估板(EVB)

为了缩短用户评估所选芯片以及提供硬件设计参考,飞思卡尔提供了大量的评估板,大部分评估板不仅包含了MCU的最小系统、引出的通用IO口、提供JTAG调试接口、板载调试器OpenSDA,还针对不同应用的芯片配置了USB口,触摸滑条和液晶显示等功能电路和接口。另外,这些外设的驱动程序在官网上也都一应俱全。针对Kinetis系列的评估,评估板按结构分为两种,分别是FRDM板和Tower板(塔式系统板)。一般来说FRDM板相对便宜,功能简单,而Tower板功能更加丰富。如下图所示。

图19. FRDM板与Tower板

如何根据所选的MCU型号找到最适合用于评估的EVM板是评估的第一步。下面以K22为例,用两种方法来找到所需的评估板。

1) 首先找到介绍K22的官网主页,路径为产品->Kinetis ARM@ MCU->K系列->K2x USB

MCU->K22_120MHz。在该主页的右栏中间可以可以看到“推荐软件和工具”,其中可以看到针对K22有FRDM-K22F和TWR-K22F120M两种评估板。

图20. 搜索合适的评估板的方式一

2) 在飞思卡尔的中文首页中,在“软件和工具”一栏中选择硬件开发工具。在该页面中,可以找到针对Kinetis系列的评估,有塔式系统模块化开发平台和飞思卡尔Freedom开发平台。这里选择塔式系统模块开发平台。在该页中,选择展开MCU与处理器模块->Kinetis

MCU模块,如下图所示。可见所有的Tower板都已列举出,在其中总可以找到跟您所选用的型号相同或相近的评估板。

图21. 搜索合适的评估板的方式二

下面就以FRDM-K22F和TWR–K22F120M为例,介绍如何使用评估板。

3.4.1 Freedom开发平台(开发平台(FRDM板)

飞思卡尔Freedom开发平台是一种小型化、低功率和高性价比的评估和开发系统,十分适合针对Kinetis MCU系列器件进行快速应用原型设计和制作演示。关于FRDM-K22F的原理图/软件包和说明文档的下载路径如下:

下载路径:中文首页->产品->Kinetis ARM@MCU->K系列->K2x USB MCU->K22_120->推荐软件与工具(FRDM-K22)->下载

(/zh-Hans/webapp/sps/site/prod_?code=FRDM-K22F&fpsp=1&tab=Design_Tools_Tab)

文档路径:中文首页->产品->Kinetis ARM@MCU->K系列->K2x USB MCU->K22_120->推荐软件与工具(FRDM-K22)->文档

(/zh-Hans/webapp/sps/site/prod_?code=FRDM-K22F&fpsp=1&tab=Documentation_Tab)

K22的FRDM板上基本硬件单元包括:

• 电源电路

板上K22F的输入5V电源可由直流插座J23或用SDA的USB口提供,输入的5V电源经过LDO输出3.3V供给板上主MCU及其他外设。在测量MCU功耗时,可将R62和R63两电阻取下,将J15线引出即可测量供给MCU的电流值以便测量功耗。

• JTAG调试电路

板上引出了SWD的调试接口,只需通过拿掉J10和J13的跳线来断开OpenSDA与主MCU的连接即可。J11的封装为标准的10脚封装(脚间距0.05’’)。

• 晶振电路

MCU上电后初始化为使用内部时钟源,可以通过修改软件选择外部时钟源,所支持的外部

主晶振的频率范围为32~40KHz以及3~32MHz。该板上的晶振频率为8MHz。另外板上的32.768KHz的晶振用于给RTC提供时钟源。

• 复位电路

板上按键SW2给主芯片提供复位信号,同时SW2也与OpenSDA连接,长按SW2也可使

OpenSDA进入booloader模式。

3.4.2 塔式系统模块化开发平台(塔式系统模块化开发平台(Tower板)

飞思卡尔塔式系统是一个为8位、16位和32位微控制器设计的模块化开发平台,基于该平台,研发人员可通过开速原型技术进行样机研制。通过这个平台,用户可以采用搭积木的方式将各种功能板组合在一起,实现用户需要的各种功能。它为设计者提供了基本的模块单元,关于TWR-K22F120M的原理图/软件包和说明文档的下载路以满足微控制器进一步开发的需要。径如下:

下载路径:中文首页->产品->Kinetis ARM@MCU->K系列->K2x USB MCU->K22_120->推荐软件与工具(TWR-K22F12M)->下载

(/zh-Hans/webapp/sps/site/prod_?code=TWR-K22F120M&fpsp=1&tab=Design_Tools_Tab)

文档路径:中文首页->产品->Kinetis ARM@MCU->K系列->K2x USB MCU->K22_120->推荐软件与工具(TWR-K22F12M)->文档

(/zh-Hans/webapp/sps/site/prod_?code=TWR-K22F120M&fpsp=1&tab=Documentation_Tab)

3.4.3 如何申请EVB

关于如何得到相关的评估板,有两种方法。

1) 直接联系代理商,向其索要评估板。代理商的具体联系方法请参见1.3.3节的介绍。

2) 在飞思卡尔网上订购,如下图所示。

图22. 获取评估板的方式

3.5 Kinetis Software Development Studio (Kinetis软件开发套件软件开发套件)

Kinetis SDK是针对于Kinetis系列MCU所做的软件开发套件,又称为KSDK。它由强大的外设驱动代码库,协议栈库与示例代码库等部分组成,能够简化和加快对于Kinetis 系列MCU的应用开发。另外,Kinetis SDK是免费的工具,而且所有的硬件抽象和外设驱动软件均开放完整源代码。目前最新版本为1.0.0,支持K22、K24、K63、K64和KV3x这五种型号的MCU,随后会不断更新完善,直至能覆盖支持所有的KInetis系列MCU。

3.5.1 KSDK的下载与安装

以下是Kinetis SDK的下载路径及相关文档路径。

下载路径:中文首页->软件和工具->软件中心->软件开发套件->用于Kinetis MCU的软件开发套件->下载

(/zh-Hans/webapp/sps/site/prod_?code=KINETIS_SDK&fpsp=1&tab=Design_Tools_Tab)

文档路径:中文首页->软件和工具->软件中心->软件开发套件->用于Kinetis MCU的软件开发套件->文档

(/zh-Hans/webapp/sps/site/prod_?code=KINETIS_SDK&fpsp=1&tab=Documentation_Tab)

下载安装包后,只需根据向导即可完成安装。在安装结束后,可以安装路径中可看到如下文件夹,这些就是Kinetis SDK的主要内容。

图23. KSDK的完整文件

开始使用SDK之前,还需要完成以下两个步骤:

1) 在KDS中安装SDK有关的eclipse插件。这部分内容在2.1.1节中有介绍,这里不再重复。

2) 设置环境变量。右击“我的电脑”,依次点击“属性”、“高级系统设置”和“环境变量”可以看到如何添加新的环境变量,并按下图所示方式相应设置。

图24. 设置环境变量

3.5.2 KSDK的结构介绍

Kinetis SDK的结构如下所示,它包含了由底层头文件到硬件抽象和外设驱动软件、以及用户应用的完整功能。由图中不同模块的放置位置,可以看出模块之间调用与被调用的关系。下面对各个模块逐一进行介绍。

图25. KSDK的总体结构

1) CMSIS Core Header Files/SOC Header, IP Extension Header Files/CMSIS DSP

这一层是芯片主要寄存器的地址定义,包含了与CMSIS兼容的内核定义头文件和DSP运算库。此外,还有针对不同型号芯片的外设定义头文件。所在位置路径为:安装目录->platform->CMSIS。

2) Hardware Abstraction Layer

这一模块称为硬件抽象层,简称HAL,主要负责基础模式的设置,可以理解为对底层寄存器针对每个外设IP,的设置,省去了手工配置寄存器的麻烦。都有相应的HAL文件与之对应。同时每个HAL文件也只负责与该外设IP的配置。因此,HAL层具有一定底层驱动的抽象意义,但所完成的功能相对简单。所在位置路径为:安装目录->platform->hal。

3) System Services

时钟管理、功耗管理和定时器系统服务模块主要涉及一些常见的系统功能,包括中断管理、管理。这一模块常与HAL配合使用,提供给上层的OSA和Perpheral Drivers模块以完成更多的功能。所在位置路径为:安装目录->platform->system。

4) Peripheral Drivers

这一模块称为外设驱动层,简称PD。PD所完成的功能比HAL更加丰富,主要通过调用HAL和System Svevices来实现,通常PD可能调用一个以上的HAL模块。它们两者是不同的,以UART模块举例来说,UART的HAL模块只是完成了字节形式的收发功能,而其PD模块则能或将DMA与UART配合使用。目前PD模块支持了多数的典型支持基于中断的数据流传送,用法,但也没有列举完全,如UART的PD模块不支持智能卡等,这些应用会在以后更新中陆续加入。所在位置路径为:安装目录->platform->drivers。

5) OSA

OSA的全称为Operating System Abstraction,操作系统抽象层。OSA用于设置SDK在一些操作系统上运行,当然也支持裸板模式。其包含了操作系统Kernel的大多数服务的抽象,这些操作系统包括MQX、FreeRTOS、μC/OS-II、μC/OS-III。所在位置路径为:安装目录->platform->osa。

6) Stacks and Middleware

这一层包含了一些软件堆栈与协议等,如USB协议栈、TCP/IP协议栈和文件系统等。

7) Board Configration

针对不同的EVM板,都有相应的SDK例程与之对应。这一模块用于配置不同EVM上的管脚复用、外设时钟给定等来实现兼容。安装目录->boards。

另外,KSDK提供了许多完整例程,可以基于EVM板运行,帮助用户学习KSDK的结构与功能,所在位置路径为:安装目录->demos。关于如何移植KSDK来完成用户应用的开发,请参考第六章的介绍。

3.6 如何获取如何获取参考代码获取参考代码和参考代码和参考设计参考设计

在开发应用软件时,用户不仅可能需要针对底层单个外设的驱动,还需要比较复杂功能的软件实现,甚至是一个产品或应用的整体方案。飞思卡尔有许多资源能够帮助用户在不同的开发状态下顺利完成项目。

3.6.1 例程代码(例程代码(Sample Code)

例程代码对于MCU软件开发上手十分重要。下面给出四种找到相关代码例程的方法。

• Kinetis SDK(适合于已涵盖型号的MCU)

如上述介绍,KSDK是一种功能强大的软件开发套件,但目前还没有覆盖所有的型号。对于已经涵盖的型号,除了通过前面介绍的路径直接找到外,也可从所涵盖型号的主页下的“软件与工具”选项页中找到。

• Sample Code Package(SC,适合于尚未被SDK包含的MCU)

对于目前还没有被SDK涵盖的MCU型号,会由包含了针对某个型号的几乎所有模块驱动库的例程代码来支持。相比较SDK而言,SC的结构简单,更易于上手,但功能较弱。另外其一般被放置在对应型号的Tower板的主页中,以K64为例,路径如下:

下载路径:K64主页->软件和工具->TWR-K64F120M->下载->软件开发工具

图26. 在对应MCU下的sample Code

• IDE安装路径下的Sample Code(适合于安装CodeWarrior等IDE的用户)

对于安装了CodeWarriord的用户,在其安装目录下也能找到针对不同系列的许多Sample

Code。对于Kinetis的K系列为例,其路径如下:

CodeWarrior的安装根目录->MCU->CodeWarrior_Examples->Kinetis_Examples

图27. CodeWarrior安装目录下的Sample Code

• 代码片段等

同样在某个型号MCU的主页中的软件开发工具中也有相应的实现某个具体功能的代码片段、引导代码等可供参考。例如:

图28. 代码片段

3.6.2 应用笔记

对于比较复杂功能的软件实现,例如如何在Sigma-Delata ADC上实现FFT、如何使用DMA和GPIO来模拟PWM等,有关实现的功能原理与实现步骤都会以应用笔记的形式记录下来,而且一部分应用笔记还带有示例程序。

要准确快速地找到相关应用笔记,首先应该在所选芯片的文档中查找,对于带有例程的应用笔记,也会有图标显示。

图29. 搜索应用笔记的方式一

另外,使用文档搜索功能,能够更全面地查找到已有的AN。下面以K22为例给出搜索所有相关AN的步骤。

1) 点击首页上的搜索按键

图30. 搜索应用笔记的方式二步骤1

2) 点击左边栏中的“文档”。

3) 在“过滤方式”中,依次选择Kinetis_MCU、K2x_USB_MCU。文档类型中选择应用说明。

图31. 搜索应用笔记的方式二步骤2、3

3.6.3 参考设计

参考设计通常是针对某个应用的完整解决方案,包括硬件设计、软件代码和原理说明等。使用“软件和工具”中的高级搜索功能能够帮助您找到最合适的参考设计。下面介绍如何搜索与Kinetis 的K系列相关的DRM(Design Reference Manual)。

。 1) 点击飞思卡尔官网主页上的“软件和工具”。在中间一栏的下方找到该功能“高级搜索”。 2) 在软件和工具一栏中选择“参考设计”。 3) 在支持的器件中递进式地选择“微控制器”->“Kinetis MCU”->“K系列”4) 在应用领域中选择 “工业”,如下图所示。

图32. CodeWarrior安装目录下的Sample Code

在选择提交后,就能看到应用K系列MCU在工业领域中的参考设计。需要用户注意的是,由于飞思卡尔网站上的中文搜索功能不是很完善,建议用户使用英文进行搜索。这样搜索到的结果如图33所示:

图33. 参考设计的搜索结果

3.7 飞思卡尔单片机的生态系统飞思卡尔单片机的生态系统(单片机的生态系统(Ecosystem)

飞思卡尔积极与嵌入式企业合作,为方便MCU的开发与应用,建立了工具链、操作系统、中间件等不同合作联盟,此外在汽车、通信、工业与消费电子等领域企业合作,为客户提供了强大完善的生态体系。

图34. 飞思卡尔单片机的生态系统

上述不同企业根据其擅长领域的不同,为飞思卡尔提供了诸多支持,有的提供了基于CAN和TCP/IP的协议栈,有的提供了适用于物联网的WiFi技术,还有的提供了车载信息娱乐系统的解决方案。这些技术领先的企业对于飞思卡尔产品广泛深入的支持使得这个生态系统愈发丰富和强大,也使得用户的产品开发更加得心应手。

用户可以在飞思卡尔网站上查询到相关合作伙伴和生态合作系统如图35所示,的信息。点击“支持服务与网络社区”中的“Freescale Connect合作伙伴计划”,就出现了搜索页面。

图36. 搜索飞思卡尔和合作伙伴和生态系统

第四章第四章 如何阅读飞思卡尔的技术文档如何阅读飞思卡尔的技术文档

4.1 概述

在嵌入式系统的研发过程中,技术文档的阅读是一个基础。对一款芯片或者一个开发平台从入门到熟悉再到深入的研究,都离不开对其相关文档的查阅。而如今不同的半导体厂家针对其自家的芯片或者开发平台都有其自己一套风格的文档体系结构,这就给一些客户的平台移植或者新手的学习入门都带来了一定程度的障碍和门槛。

本章节以飞思卡尔的Kinetis K22系列MCU为例,详细介绍了飞思卡尔公司提供的包括Datasheet、Reference Manual、User Guide、Application Note以及一些其他相关技术文档的组织结构和阅读方法,提高客户阅读文档的效率,从而进一步帮助缩短客户的研发周期。

4.2 数据手册数据手册Datasheet

与一些其他的半导体厂商不同,飞思卡尔提供的数据手册和参考手册是分开的,即两个独立的技术文档,其中数据手册(Datasheet)可以查阅到芯片相关的电气参数和封装尺寸等信息,而参考手册(Reference Manual)则主要介绍芯片具体的架构、技术细节和寄存器配置等内容,这种结构有效地避免了单一文档的臃肿庞杂,有助于客户清晰地进行芯片选型和电气性能评估。本节主要介绍数据手册(Datasheet)的结构和阅读方法,参考手册(Reference Manual)的内容将在下一小节再做介绍。

4.2.1 Datasheet的命名规则

Datasheet,即芯片的数据手册,也跟芯片一样有其相应的命名规则。飞思卡尔根据芯片的家族系列、最大管脚数和主频高低对Datasheet进行了细分和命名,例如对型号为MK22FN512VLH12的芯片,与其对应的Datasheet的最新文档为K22P121M120SF7,其中K22为家族系列,P121为最大121管脚(涵盖64 Pin、100pin),M120为120M主频,SF为Sub-Family最新的版本号命名规则相较之前版本号做了些改变,的缩写,数字7则为文档的版本号(注意:加入了根据Flash大小的分类)。

4.2.2 Datasheet的文档结构介绍

Datasheet的内容包括Ratings、General、Peripheral Operating Requirements and Behaviors、Dimensions、Pinout和Part Identification等几个部分。其中:

Ratings:即额定值参数,介绍了包括温湿度额定值和芯片的工作电压电流等额定值参数。其中特别需要注意的是,针对本文档芯片MK22FN512VLH12的最高焊接温度建议不要超过260°C,客户在焊接操作和工艺设计的时候需要参考此部分内容。

General:即芯片的通用参数,既介绍了芯片的电压电流工作范围、低功耗模式下的唤醒时间和功耗参数、工作模式下的功耗/频率比和EMC特性等非开关量参数,也介绍了芯片内部时钟范围和一些外部接口的时序约束等开关量参数。

Peripheral Operating Requirements and Behaviors:即芯片的外设模块的工作参数,是我们做软硬件开发时最常用的部分,该部分给出了内核模块、时钟模块、内存接口、模拟外设模块和通信接口的工作参数,其中常用到的包括MCG和Oscillator时钟模块的时钟约束范围(用于倍频或者分频的配置和外部晶振的选择等)、Flash模块烧写的时间、EzPort/FlexBus的时序要求、ADC模块的采样率和有效精度、Comparator模块的带宽、DAC的有效精度和USB/SPI/I2C/UART/I2S等通信接口模块的工作参数,可以帮助客户最大程度地有效利用芯片内部的功能模块,并做相应的功能实现的预评估和测试。

Dimensions:芯片的封装尺寸,客户在PCB layout的过程中如果需要手工画出该芯片PCB封装的话,可以根据该部分提供的对应封装的文档序号到飞思卡尔官网搜索并下载,再参照该文档给出的封装尺寸手工画出相应芯片的封装。以MK22FN512VLH12为例,其封装为LQFP-64,Datasheet给出的对应封装的文档号为98ASS23234W。

Pinout:管脚分配表,K22F内部提供了丰富的外设资源,由于管脚数量的限制,其外部管脚一般需要复用成多个外设功能,除了电源管脚、晶振管脚和个别的模拟输入管脚。该管脚复用分配表可以结合Reference Manual中的管脚复用模块寄存器配置,根据客户的实际功能需求做相应的复用功能配置。

Part Identification:芯片具体型号的命名规则,以MK22FN512VLH12为例,M表示量产型号,K22表示Kinetis家族K22系列,F表示带浮点运算单元FPU,N表示只有Program Flash没有FlexMemory,512表示Flash空间大小为512字节,V表示工业扩展级温度-40~105°C,LH表示芯片封装为LQFP-64,12则表示芯片的主频为120MHz。

4.3 参考手册参考手册Reference Manual

Reference Manual,即芯片的参考手册,详细介绍了芯片的内核结构、内存映射、时钟分配、电源管理、安全加密、烧写调试、管脚复用以及所有外设模块等的技术细节,是客户开发软件必须了解也是最常需要查阅的技术手册。但是动辄上千页的参考手册,包容了如此多的技术信息,要从里面找到自己想要获取的相关资料对一个新手来说实属不易,因此有必要理清整个参考手册的结构,有针对性的攫取相关信息,掌握阅读FSL参考手册的方法。本章节以系统时钟配置、管脚复用和中断管理这三个难点也是重点的部分为例介绍飞思卡尔Reference Manual的阅读方法。

4.3.1

“万金油”万金油”之第三章 Chip Configuration

在介绍上述三部分的配置之前,需要重点提一下飞思卡尔参考手册非常重要的一章,即第三章 Chip Configuration,这也是飞思卡尔文档的特色之一。几乎其所有的Reference Manual中,第三章的地位一直很稳固;作为一个统领全篇的章节,其内容概述了芯片各个模块配置所需要参考的信息和功能架构并给出了一些模块更详细的配置信息和注意事项,所以我们在进行软件编程对某个外设进行配置的时候除了查看该外设相应的章节之外,第三章也是最常需要参考的一章。这里仍然以MK22FN512VLH12为例列出第三章中我们常需要参考的一些模块的配置信息:

(1)ARM Cortex-M内核的System Tick Timer的时钟源;

(2)系统中断优先级的配置和中断向量表的分配;

(3)低功耗异步唤醒管理模块(AWIC)的唤醒源;

(4)极低功耗唤醒单元(LLWU)的唤醒源;

(5)DMA模块的多路请求信号源;

(6)系统内存Flash和SRAM空间分配和相关注意事项;

(7)FlexBus信号线的复用管理;

(8)ADC模块采样通道号及硬件触发信号的分配;

(9)内部模拟比较器输入通道的分配;

(10)Flex Timer的通道数、硬件触发机制和输入捕捉等参数配置;

(11)USB模块的工作机制;

(12)SPI模块发送和接收FIFO深度;

(13)UART模块的中断源分配;

(14)GPIO高驱动能力管脚的分配。

以对ADC模块进行软件配置为例,在ADC模块的章节中,ADCx_SC1n寄存器中ADCH位即定义了ADC模块对模拟输入采样的通道号,而具体涉及到相应通道号的映射分配则可以在第三章的ADC Configuration中找到,如下图1所示:

图1. ADC通道分配图

4.3.2

系统时钟配置

系统时钟的配置是入门一款芯片平台的敲门砖,不同于以前的8位机和16位机简单的时钟管理,ARM平台提供了非常强大而丰富的时钟管理机制,满足其内部各个功能模块的正常运行和低功耗机制的实现,但由此带来的是复杂且繁琐的时钟配置,这让很多新手望而却步只能用拿来主义的方法去使用封装好的函数库,但是出现问题或者根据实际需要进行微调配置的时因此通过参考手册深入地了解ARM平台的时钟管理机候就会常常束手无策或者拆西墙补东墙,制之后,用户才能熟练地对系统的时钟进行配置。

图2. 系统时钟总体框图

通常的建议是以图文结合的形式去了解和熟悉系统的时钟管理机制。如图2所示,将MK22FN512VLH12参考手册中“第五章 Clock Distribution”的系统时钟总体框图,拆分开来,就可以清晰的了解其平台的时钟管理机制主要是由MCG模块、SIM模块、System Oscillator模块,RTC模块、IRC48M internal oscillator和PMC这六个子模块构成。

图3. MCG模块内部框图

从总体到局部的角度来看,在对总体结构有了全局的认识之后,则可以通过查看上图1对应的六个子模块来深入了解其寄存器级的配置实现,以MCG子模块为例,可以在与其对应的章节里找到该模块的结构框图如图3所示,图中给出了与System Oscillator和SIM这两个子模块的而且最重要的是还清晰地接口,对MCG内部的寄存器级的实现也给出了详细的比特位的配置,描绘出了时钟Clock从输入到输出的路径配置,帮助用户理清整个系统时钟管理的结构。

4.3.3

管脚复用

ARM平台丰富的外设资源与有限的管脚封装之间的矛盾造成了其管脚复用的必然性(除了个别敏感的管脚外),而不同于时钟管理部分的复杂,飞思卡尔对其芯片管脚复用的配置却非常简单。对芯片管脚复用的配置需要结合Datasheet中“Pinout”章节的管脚分配图如下图4,而所需要配置的寄存器可以在“Port Control and Interrupt”这一章中找到,即PORTx_PCRn(其中x表示A、B、C、D、E、F等管脚组,而n则表示0~31之间的管脚号),如下图5所示,通过这种PORT分类的方式来映射芯片所有管脚。该寄存器中3位MUX即表示复用功能的选择如下图6,最多8个复用的选项一般足够了。当然,根据所选择的复用外设的需要也可以通过该寄存器使能上拉下拉电阻功能,还有相应的I/O外部中断也需要在此寄存器里做相应配置。

图4 Pinout管脚复用分配图

图5 PORTx_PCRn寄存器映射

图6 管脚复用配置位

结合上述三图,以配置64 pin LQFP封装的芯片MK22FN512VLH12的PTE0和PTE1这两个管脚为UART功能为例,它们默认的配置为ADC的模拟输入端口功能,通过图4管脚复用分配图找到UART1的复用索引号为ALT3选项,则只需要将PORTE_PCR0和PORTE_PCR1这两个寄存器中MUX位写入3即可实现UART1_TX和UART1_RX端口的配置,操作代码如下:

PORTE_PCR0 |= 3 << 8;

PORTE_PCR1 |= 3 << 8;

4.3.4

中断管理

图7 NVIC模块框图

ARM平台的中断管理引入了NVIC即嵌套向量中断控制器这个模块,其负责接管芯片运行状态下所有的中断源,是ARM内核不可分离的一部分,它与内核的逻辑紧密耦合完成相应的中断处理工作。而且由于其为内核的一部分,因此关于NVIC相关寄存器的配置需要结合ARM公司的架构技术文档,具体见4.5.3节。不过,NVIC对中断的管理是建立在中断向量表上的,这张表的数量是固定的,但是除了前16个内核中断之外,剩余的IRQ中断不同的半导体厂家可以根据自己的需要来定制映射不同的外设中断,也就是说各大半导体厂家定义的这个中断向量表可能不一致,飞思卡尔 ARM平台的中断向量表映射可以在其Reference Manual的“第三章 Chip

Configuration”中Core Modules的Nested Vectored Interrupt Controller (NVIC) Configuration小节中找到,用户可以根据这张表的索引号来使能或者禁用相应的IRQ中断。

4.4 用户指南用户指南User Guide

为了方便新用户快速入门和熟悉飞思卡尔的产品、开发工具和开发环境,飞思卡尔针对其相关产品提供了相应的用户指导手册,包括部分外设资源模块的编程指导手册和相应的开发板工具使用手册。

4.4.1 Peripheral Quick Reference User Guide-外设模块快速参考用户指南

外设模块用户参考手册详细介绍了芯片常用模块的技术特性,并针对该模块资源的部分功能给出了相应的代码例程作为编程参考,可以加快用户上手时间,提高用户开发的效率,在软件开发时可以结合该用户手册和芯片的Reference Manual文档中相应外设模块的章节进行外设资源的配置。飞思卡尔为ARM平台Kinetis家族的部分系列提供了相应的外设用户参考手册,如下表1所示:

表1 Kinetis家族外设模块用户参考手册

MCU系列

Kinetis K

Kinetis L

Kinetis V

文档名称及链接

KQRUG

KLQRUG

KVQRUG

4.4.2 Freedom & TWR Tool User Guide-评估板用户指南

飞思卡尔提供了两套评估板 为方便用户评估芯片的性能和熟悉飞思卡尔产品的开发流程,供用户评估和开发测试,其中Freedom板为廉价的评估板,自带板载调试器,用户可以直接通过自己的PC机快速搭建开发环境并进行测试和评估芯片简单的外设资源,另外塔式系统Tower板为可扩展性比较强的评估板,板载资源比较丰富且通过构建塔式系统可以灵活的添加和裁剪外设资源,用户可以进行更高级的功能测试。飞思卡尔为这两套评估板均提供了相应的用户指导手册帮助用户快速入门飞思卡尔产品的开发,以MK22F系列为例,Freedom板的用户手册为FRDMK22FUG,TWR板的为TWRK22F120MUG,它们均可以直接在飞思卡尔官网搜索下载。

4.5 其它的技术文档其它的技术文档

除了上述Datasheet、Reference Manual和User Guide之外,飞思卡尔还提供了其他的丰富的技术文档供用户参考,本章节重点介绍一下用户还经常参考的应用笔记、Errata勘误表和内核架构的参考文档。

4.5.1

应用应用笔记笔记Application Notes

Application Note,即应用笔记,是飞思卡尔内部专家工程师针对飞思卡尔产品的具体应用所撰写的心得笔记。飞思卡尔官网系统提供了大量的中英文应用笔记供客户工程师参考和学习,一些应用笔记也会附上相应的代码例程工客户下载。飞思卡尔应用笔记均以其英文大写字母“AN”开头,后面数字为文档的序列号,用户可以直接在飞思卡尔官网搜索相应的文档序号或者具体应用的关键字进行下载,此外针对某款芯片相关的应用笔记则可以直接在该芯片的产品页中Document一栏中找到,如下图所示:

图8 应用笔记列表

4.5.2

勘误表Mask Set Errata

芯片的Errata勘误表是客户在使用相关芯片进行项目开发时必须要查阅的参考文档,在一款芯片从发布到量产再到最后停产的整个生命周期里,半导体厂商会非常负责任地针对芯片在应用过程中出现的一些功能的局限性或者某些参数的不准确性等问题不定时的发布相应的勘误表,帮助用户在项目开发过程中规避相应的问题和进行风险把控。此外,需要用户注意的是,(芯片Package封装上打的标号,Errata勘误表是以Mask Set即芯片的掩膜硅版本号进行分类的比如2N03G),所以用户可以根据所使用芯片的版本号在飞思卡尔官网查询相应的Errata勘误表文件,同样用户也可以直接到相关芯片的产品页中Document一栏中找到该芯片系列所有Mask

Set的Errata勘误表,以K22F 120M产品为例,其所有子系列的Errata勘误表如下图9所示:

图9 K22F_120M 勘误表

4.5.3

内核内核架构参考手册架构参考手册Architecture Reference Manual

由于飞思卡尔Kinetis家族系列的平台是基于ARM Cortex-M内核的产品,其内核的知识产权为ARM公司所有,所以关于该平台内核架构部分的包括指令集、中断管理和调试组件等详细由于飞思卡尔目前的技术信息则需要到ARM公司官网下载相应内核架构的技术文档作为参考,的Kinetis产品系列主要为ARM Cortex-M0+和Cortex-M4内核,其在ARM官网相应的内核参考文档可以直接搜索得到,其相应的文档链接如下:

(1)

(2)

ARM Cortex-M4内核技术参考手册ARM Cortex-M0+内核技术参考手册(/help/topic/0439d/DDI0439D_cortex_m4_processor_r0p1_)

(/help/topic/0484c/DDI0484C_cortex_m0p_r0p1_)

此外,关于飞思卡尔的自有内核架构包括DSP56800E/EX和Coldfire等相关内核架构的文档则可以直接在飞思卡尔官网下载。

(1)DSP56800E/DSP56800EX内核技术参考手册(/files/dsp/doc/ref_manual/)

第五章第五章 飞思卡尔单片机硬件设计飞思卡尔单片机硬件设计指南单片机硬件设计指南

5.1 概述

在进行嵌入式系统设计时,硬件电路设计的好坏不仅关系到整个系统的功能实现和可靠性,还会对系统软件的复杂程度产生影响。本章节以Kinetis K22芯片为对象,介绍采用Kinetis MCU进行最小系统硬件设计时,需要了解的一些硬件设计注意事项和设计原则。

在本章节中,除了会介绍电源电路、时钟电路、复位电路、调试电路等MCU常见外围硬件设计外,还会针对使用Kinetis系列芯片时需要了解的设计做一些探讨,如NMI引脚配置、High

current driver引脚分布、IO输出方式(Open-drain/Pull-Push)支持、RTC、USB、ADC电路设计和参考电压的选择以及板级EMC性能改善等。

5.2 电源电路的设计电源电路的设计

5.2.1 K22的电源引脚分配和功能描述的电源引脚分配和功能描述

Kinetis K22支持1.71-3.6V宽电压输入,为了提供稳定的电源,芯片使用多组电源引脚分别为内部电压调节器、IO引脚驱动、AD转换电路等供电,并且提供多处电源引出脚,便于用户外接滤波电容,改善系统的电磁兼容性。对于本文档中使用到的K22 LQFP-64 pin封装,其电源引脚名称、分布和功能描述如下表1所示。

表1 K22 LQFP-64 pin封装电源引脚名称、分布和功能描述

引脚名称

电源输入

功能描述

数字电源输入正/负

AD模块的电源输入正/负

AD模块参考电压输入高/低

RTC模块的备用电源输入

USB模块输入参考电压

USB模块电源稳压器输出

内部参考电压输出

典型值

3.3V、0V

3.3V、0V

3.3V、0V

3.3V

5V

3.3V

1.2V

引脚号(LQFP-64)

3/4、30/31、48/47

13、16

14、15

21

8

7

17

VDDx/VSSx[1]

VDDA/VSSA

VREFH/VREFL

VBAT

VREGIN

电源输出

VOUT33

VREF_OUT

[1]. 文中VSSx指的是芯片的地。

5.2.2 MCU主电源供电引脚

VDDx/VSSx是芯片的主电源供电引脚,Kinetis K22 LQFP 64 pin封装的芯片上一共包含3对,在电路设计时需要在每对引脚外部分别放置至少一个去耦电容(0.1uF的陶瓷电容)。并且旁路电容的放置必须尽量靠近 MCU 电源引脚,从而最大限度地缩小 VDD和 VSS 引脚之间的电容所形成的环路。

在芯片内部,这三对电源的引脚是互相连通的。理论上说,只要将任意一个VDDx引脚和任意一个VSSx引脚连接到电源上,整个芯片就可以正常工作了。但在实际的设计中,我们建议将三组电源引脚都可靠地连接到电源上,这样对改善芯片内部的电源回路以及提高整个系统的EMC性能都更有好处。

5.2.3

模拟模拟外设外设电源外设电源及参考电压电源及参考电压引脚及参考电压引脚

VDDA/VSSA是芯片内部ADC、DAC以及CMP等模拟外设的电源输入引脚,为使芯片的模拟外设有稳定的电源,从而得到更好的转换精度,通常需要在靠近VDDA引脚的地方并联两个外部稳压电容(10nF陶瓷电容+1μF钽电容)。另外,为限制电源中的高频噪声,在设计时,可以将VDDA通过电感、磁珠等阻塞元件与数字电源VDDx进行隔离。

另外,大部分Kinetis MCU还提供了一对模拟参考输入引脚VREFH/VREFL,用户可以连接一个独立的外部电压基准作为模拟电压的参考(该基准的电压范围为1.13V~ VDDA)。客户也可以使用片内产生的内部ADC参考源,一般为1.2V。为保证能得到更好的精度,建议使用外部的3V电压作为参考。当然,用户也可以直接连接到外部电源引脚VDDA上,使用过程中,建议在VREFH引脚上连接一个10nF和一个1μF的电容。对于一些小封装的芯片,可能没有VREFH和VREFL,实际上它们分别在内部被直接连接到ADC的供电电源VDDA和VSSA。

5.2.4 RTC后备电源引脚

VBAT引脚是RTC模块的备用电源输入,用于在系统掉电和低功耗模式下为 RTC 和一个 32

字节寄存器供电,该引脚通常被连接到外部电池 (1.71V < VBAT < 3.6V)。如下图1所示,一个简单的电池隔离器由一个共阴极的双肖特基阵列组成,在主系统电源VDD关闭时,通过器件D1提供备用电池。建议在尽可能靠近 MCU 的地方放置一个 100 nF 旁路电容,以便最大限度地降低电源切换事件的影响。

备备备备GNDVDD_P3V312R80ΩDNPD1VBATC8100nFD2GNDBT1J10

图1. RTC后备电源连接

5.2.5 USB模块电源引脚模块电源引脚

VREGIN是芯片内部USB模块的供电引脚,为避免外部瞬态浪涌电压的影响,建议在此引脚的线路上串连一个内阻为330欧姆的磁珠,并在靠近该引脚处并联一个10uF电容,如果成本允许,考虑在此供电线路靠近USB物理接口侧并联一个TVS管,作为热插拔和外部浪涌电压的保护电路。

5.2.6 VREF_OUT和VOUT33电压输出引脚

为方便用户使用,Kinetis K22还有两个电压输出引脚,用户可以通过程序配置分别对外输出一个1.2V电压和一个3.3V电压。其中,VREF_OUT引脚是芯片内部1.2V基准电压的输出引脚,该电压可以作为芯片内部ADC,DAC或者CMP作为电压基准,同时也可以作为外部电路的电压源。需要注意的一点是,无论是在内部或者外部使用该1.2V电压作为参考,都需要在VREF_OUT引脚连接一个100nF的负载电容。

VOUT33引脚是芯片内部3.3V电压的输出引脚,该电压是由芯片内部USB Voltage Regulator产生,该电压除了可以用来提供给内部的USB Transceiver完成USB功能外,用户还可通过VOUT3.3引脚输出到外部,提供给板上的其它芯片作为供电电源,其最大输出电流为120mA。并且通常建议在靠近该引脚外部加一个2.2uF电容。

5.2.7 电源电路的PCB设计建议

电源系统的布线是整个硬件版图最重要的部分,其基本思想是确保 MCU 和其他数字器件通过低阻抗路径接至电源,并且有一些常规可以遵循:

1) 分割不同的电源域,将交流电源与直流电源分开,数字部分与模拟部分分开。实际电路设计中可以选择使用物理隔离和去耦滤波器,对于后者的使用如下图2所示,串联隔离元件通常选择小电感或阻抗较小(100 MHz时约 100Ω)的铁氧体磁珠。去耦电容一般选择10nF

到1uF,具有高频成分的一端应选择较低的值。

图2. 数字和模拟电源隔离示意图

2) 在MCU的每个VDD电源引脚旁边放置去耦电容,画板时一定要尽量使去耦电容靠近MCU

电源引脚放置,并尽量缩小VDD和VSS 引脚之间的电容所形成的环路。

3) 合理使用电源层和接地层,接地布线应优先于任何其他布线,电源走线尽量使用较宽走线和较少的层变换。在系统允许的情况下,建议在 MCU 封装的正下方使用一个接地层,以便降低 RF 辐射并提高瞬变抑制性能,提高板级的EMC性能(更多关于电源硬件设计和EMC的知识请参看AN2764)。

5.3 时钟电路

5.3.1 K22的时钟源

为满足用户不同的应用,飞思卡尔Kinetis MCU提供多个时钟源选择,如图3所示是K22的系统时钟框图,它包括多种时钟源,可以通过MCG模块灵活地配置使用。其中内部时钟源的优点是成本低,不易受外部影响,而外部时钟源的优点在于能产生非常精确的主时钟。

1) 内部时钟源:

本文标签: 芯片飞思用户需要模块