您所在位置: 培训码头 >深圳 > 深圳IT/互联网 >深圳嵌入式开发 >深圳学习嵌入式开发多少钱
粤嵌通信科技股份有限公司

深圳学习嵌入式开发多少钱

教学城市:深圳 授课机构:粤嵌通信科技股份有限公司

报名电话:0755-83625108

深圳粤嵌的嵌入式开发课程面向企业需求,加入热门项目案例。告别填鸭式教学,坚持“从项目中来,到项目中去”,整个课程以商业项目贯穿始终,八大学习阶段都配备不同的应用项目,通过项目

开发实践,使学员切身体会真实项目开发过程,加深对嵌入式系统开发项目的理解领会,获得丰富的项目经验。

全新V12嵌入式课程更是融入热门的人工智能、智能硬件等项目

  • 深圳粤嵌嵌入式开发

    深圳粤嵌嵌入式开发培训

    粤嵌嵌入式开发培训不会让你后悔!

    快速咨询

粤嵌的师资力量

研发出身的大牛讲师,为你指点迷津

  • 冯宝祥

    功底实力

    精通Orcad、PADS等开发工具,精通ARM、MIPS、Blackfin等架构处理器、精通ARM嵌入式系统开发和编程,精通ARM平台上各种外设接口开发、ARM的硬件设计和调试,具有丰富的产品开发经验。 善于解决工程中遇到的疑难杂症,并对嵌入式专业人才的培养体系及培训方法有深入研究。

    教学经验

    有着10年以上嵌入式系统开发经验,资深开发工程师,承担着多项嵌入式系统产品的研发。

  • 邓人铭

    功底实力

    精通Linux、C/C++语言、Android等技术,精通STL和boost库,Java语言和eclipse及其插件开发方法。 具有全面和扎实的计算机科学基础知识,严谨的思维方式,强大的的数据结构和算法设计能力。负责嵌入式课程体系制定与培训,对嵌入式专业人才的培养体系及培训方法有深入研究。

    教学经验

    7年嵌入式开发经验,曾在著名的手机公司从事Symbian手机平台开发和安卓前期预研工作。

  • 周龙

    功底实力

    精通Linux系统开发等开发工具,精通ARM_linux及编译器与调试器,精通线程,内核链表。精通linux系统移植,Linux初级高级设备驱动开发。 曾在国内大型企业做过多个出口嵌入式大型项目,对嵌入式软件开发有很多实际工程经验,对嵌入式专业人才的培养体系及培训方法有深入研究。

    教学经验

    华中科技大学工学硕士,10年以上嵌入式系统开发经验,承担着多项嵌入式系统产品的研发。

  • 林世霖

    功底实力

    精通Linux下C语言编程,精通数据结构算法与实现,有着丰富的银行交易系统开发经验,并且精通SCO系统下shell编程与系统编程。更有着多年的授课经验,他娴熟的授课技巧以及成体系化的教学理论与经验,上课风格多样化,善于并乐于传播IT技术,热衷于教育行业,对学生认真负责。

    教学经验

    7年多嵌入式系统软件开发经验,资深嵌入式Linux研发工程师,致力于嵌入式Linux应用软件等。

在深圳想要学习嵌入式应该怎么做?

  • 深圳嵌入式应用程序开发培训

    想要学嵌入式,如果之前的工作跟计算机编程有关系,那么转行学嵌入式应该也没问题,关键是之前从未接触过编程语言的朋友,学嵌入式就有点难度,但是周星驰说“人没有梦想,那跟咸鱼有什么区别”,想靠学嵌入式翻身,可能吗?


  • 深圳嵌入式linux开发培训

    大部分人考虑学嵌入式,也是畏手畏脚,各种各样的东西都得考虑进去,其实学习没有年龄限制,当下不学,只会越拖越赶不上趟,关键是怎么学,自己适不适合学,能不能找到工作。自己也无法确定,只能是各种猜想。


  • 深圳嵌入式软件架构师培训

    如果你是零基础学嵌入式,最好是选择面授的嵌入式培训,老师跟你面对面交流,有不懂就提问,学习进度也可以进行实时的交流,这对于零基础的朋友来说,相当的重要,视频学嵌入式,只能看有问题不能问,学习进度也没有办法保障,学习效果也没有办法保障,视频学嵌入式最好作为一种辅助的学习方式,对嵌入式技术的快速提升也有很大的帮助。


粤嵌6大课程模块吃透“嵌入式”

  • 深圳嵌入式开发培训公司

    -1-

    嵌入式开发技术基础课程

    搭建嵌入式Linux开发环境

    Linux系统基础入门

    高质量的编码规范

  • 深圳嵌入式Linux应用开发基础

    -2-

    嵌入式Linux应用开发基础

    Linux IO编程

    Linux多线程编程


  • 深圳嵌入式入门培训

    -3-

    Cortex-M4应用开发

    Cortex-M4开发基础

    uC/OS-11操作系统

    Cortex-M4开发高级

  • 深圳哪个嵌入式培训好

    -4-

    嵌入式Linux应用开发高级

    嵌入式web服务器搭建及开发

    Linux音视频编程

    Linux串口编程

  • 深圳嵌入式培训那个好

    -5-

    嵌入式GUI系统编程开发

    C++语法及编程提高

    QT应用开发进阶


  • 深圳嵌入式技术开发培训

    -6-

    嵌入式Linux应用开发高级

    嵌入式平台软硬件架构分析

    Linux设备驱动开发

    系统移植

粤嵌嵌入式开发热门项目案例


  • 1

    GoGo机器人

    从0开始利用人工智能技术,通过与机器人人机日常语音交互、人面识别、手势识别等方式完成指定动作,如智能家居/电器控制、日常交流、播放音乐/电影、查天气、问问题等多种功能。

  • 2

    风飞送货无人机

    风飞送货无人机采用八旋翼飞行器,配有GPS自控导航系统、iGPS接收器、各种传感器以及无线信号发收装置。无人机具有GPS自控导航、定点悬浮、人工控制等多种飞行模式,集成了三轴加速度计、三轴陀螺仪、磁力计、气压高度计等多种高精度传感器和先进的控制算法。

  • 3

    VR/AR虚拟驾校

    项目通过人机交互技术,借助VR头盔、驾驶模拟器、三轴动感平台,对基本驾驶功能进行模拟,如点火、倒车、手刹等功能的实现,给人现实的驾驶体验。一比一复制练习场地,如倒车入库等,还会有虚拟教练针对驾考科目进行指导。

  • 4

    智能汽车控制系统

    项目集中运用人工智能及自动控制技术,采用功能强大的嵌入式ARM对小车进行模块化设计,在普通车辆的基础上增加了先进的传感器(雷达、摄像)、控制器、执行器等装置,实现遥控器控制、超声波智能避障、运行轨迹自动优化等功能。

深圳报名嵌入式培训班,会有专业的辅导,清晰的技术知识结构,明确的学习方向,良好的学习氛围,优质的项目提供给你做,有老师时刻帮你解决学习中遇到的问题。这两种方式基本是99%的嵌入式系统开发工程师的成才之路,自学缺少足够的学习资料和技术辅导以及学习氛围,学习效率也比较低,成功率不高,所以对于大多数人来说,选择培训是一个很好的出路,学习效率也会非常高。

粤嵌用数据证明实力

  • 深圳嵌入式软件工程师培训

    14年 教学经验累计


  • 深圳嵌入式培训课

    20次 课程更新迭代


  • 深圳0基础学嵌入式

    50000名 毕业学员


  • 深圳嵌入式开发培训哪家好

    136家 合作高校


  • 深圳软件工程师开发培训

    120名 架构师级大牛讲师


  • 深圳学习嵌入式什么机构比较靠谱

    1764家 合作企业


  • 深圳嵌入式开发学习课程

    50天 总项目实战天数


  • 深圳嵌入式开发学习培训

    175款 自主研发产品及技术方案


粤嵌全方位教学服务体系


  • 深圳嵌入式开发编程培训费用

    课程大纲,定期升级

    课程研发团队时刻关注前沿技术和市场需求的变化,一年两次更新课程大纲,及时吸纳新的行业技术、

    项目案例,并根据实际教学效果进行调整,保证学员学得扎实且不落伍。

  • 深圳小白学习嵌入式开发

    创新教学,善于启发

    拒绝复制代码敲键盘等硬编程方式,粤嵌注重培养你的“编程思维”。粤嵌讲师也不仅仅给你传授知识,

    更教你如何拆解分析项目难题,提升解决实际问题的能力。

  • 深圳嵌入式软件编程培训课程

    课堂课下,全程陪伴

    课上有资深讲师授课,课余有技术工程师全程陪伴,只要你不懂就问,

    就会有技术老师随时随地答疑,帮你解决所有技术难点,不让难题陪你过夜。

  • 深圳嵌入式硬件开发培训课程

    严管严控,定期测试

    每个学习阶段结束,都会进行阶段测试 ,确保每个学员听懂学会。

    整个学习过程绝不会放任自由,考试不过,毕业无门,对每一个学员负责到底。

  • 深圳嵌入式开发培训学费

    认真学习,多彩生活

    从学员学习状态调整,到生活中的困难协助,

    从课上班级氛围塑造到课下多彩的班级活动,都有班主任家人般的鼓励支持。

  • 深圳嵌入式软件开发学校

    企业内推,就业无忧

    粤嵌拥有上千家合作企业,每年几十次专场招聘会为粤嵌学员提供海量就业机会。

    从简历设计到笔试复习计划、面试培训,都有就业老师全程指导,让学员轻松砍获高薪Offer!

深圳嵌入式项目就业培训

高级嵌入式工程师

学习了前两个阶段的知识,你已经可以胜任大部分嵌入式工作了,但是距离大咖仍有一定的差距这部分更多涉及系统层面,没有全方位的知识将会很难下手。要想成为高级嵌入式工程师除了Linux外,嵌入式操作系统还有ARM、WINCE、uC/OS II、Vxworks、uClinux等,不同的系统有着不同的使用环境,你需要学习掌握系统的各个模块,为底层平台搭建做好准备。熟悉各个操作系统的特点以及系统的内核移植,确保操作系统能在某个微处理器或微控制器上运行。随着手机智能硬件的快速兴起,Android操作系统开发也越来越重要。另外就是驱动开发驱动程序设计是嵌入式Linux开发工作中非常重要的一部分。不仅要熟悉Linux的内核机制、驱动程序与用户级应用程序的接口,掌握系统对设备的并发操作。还要具备ARM硬件接口的基础知识,熟悉ARM Cortex处理器各资源、掌握Linux设备驱动原理框架,以及工程中常见Linux高级字符设备、块设备、网络设备、USB设备的驱动开发。

相关问答

  • 深圳信盈达靠谱吗?

    我在深圳信盈达教育报了嵌入式开发这一课程,经过一个月的学习,发现学习效果很不错。老师教学很有方法,采用实践与理论相结合的方式,让我们掌握了很多设计知识。如果有不.....

  • 深圳信盈达老师上课怎么样?

    刚开始学嵌入式时的自己还是会有些小担心,怕自己学不会跟不上老师的进度,但现在发现信盈达的老师课程讲解很有一套也会耐心地辅导,会站在学员的角度上想问题,自己的一切.....

  • 深圳嵌入式培训学费是多少?

    首先,大家想要去参加嵌入式培训机构的时候都要认清一个事实,参加嵌入式培训机构就只是可以快速帮我们学会嵌入式技术的一个途径,管不管用的话是有两个因素的。一是.....

  • 深圳信盈达培训好不好?

    信盈达培训是非常不错的计算机IT培训机构,这里有专业的计算机IT人才任教,信盈达金牌讲师,具有丰富的嵌入式系统软件开发经验,资深嵌入式ARM、Linux研发工程.....

考试资讯

嵌入式产品开发的各个阶段步骤详解 - 21IC中国电子网


嵌入式产品开发的各个阶段步骤详解 时间:2019-07-23  关键字:嵌入式   物联网   硬件设计   软件设计

随着我们进入普及的物联网(IoT)世界,嵌入式设备的连接性是必不可少的。嵌入式产品,与普通电子产品一样,开发过程都需要遵循一些基本的流程,都是一个从需求分析到总体设计,详细设计到最后产品完成的过程。但是,与普通电子产品相比,嵌入式产品的开发流程又有其特殊之处。它包含嵌入式软件和嵌入式硬件两大部分,针对嵌入式硬件和软件的开发,在普通的电子产品开发过程中,是不需要涉及的。嵌入式产品的研发流程具体如下图:

下面,针对嵌入式产品的开发过程中的各个阶段,我们进行详细探讨。

阶段1:产品需求

在这一个阶段,我们需要弄清楚的是产品的需求从何而来,一个成功的产品,我们需要满足哪些需求。只有需求明确了,我们的产品开发目标才能明确。在产品需求分析阶段,我们可以通过以下这些途径获取产品需求:

1)市场分析与调研,主要是看市场有什么需求,还有就是前沿的技术是什么(站在做一款产品的角度);2)客户调研和用户定位,从市场广大客户那获取最准确的产品需求(要注意分析市场,产品生命周期,升级是否方便);3)利润导向(成本预算);

4)如果是外包项目,则需要我们的客户提供产品的需求(直接从客户那获取,让客户签协议);当一个项目做完的时候,如果客户突然又增加需求,增加功能,将导致你的项目周期严重拖延,成本剧烈上升,并且测试好的产品可能要全部重新测试,原本的设计可能将不会满足当前的要求,所以做项目之前,最好要跟客户把需求确定下来,并且签定一份协议,否则,你辛苦多少个日日夜夜,得到的将是一个无法收拾的烂摊子!

阶段2:产品规格说明

在前一个阶段,我们搜集了产品的所有需求。那么在产品规格说明阶段,我们的任务是将所有的需求,细化成产品的具体的规格,就比如一个简单的USB转串口线,我们需要确定产品的规格,包括:

- 产品的外观;

- 产品支持的操作系统;

- 产品的接口形式和支持的规范;

等等诸如此类,切记,在形成了产品的规格说明后,在后续的开发过程中,我们必须严格的遵守,没有200%的理由,不能随意更改产品的需求。否则,产品的开发过程必将是一个反复无期的过程。

《产品规格说明》主要从以下方面进行考虑:

- 考虑该产品需要哪些硬件接口;

- 产品用在哪些环境下,要做多大,耗电量如何。如果是消费类产品,还跟设计美观,产品是否便于携带,以确定板子大小的需求,是否防水;- 产品成本要求;

- 产品性能参数的说明(例如交换机,如果是百兆的速率,用于家庭和一般公司;如果是用于整个省的交换,那设计的速率肯定数十万兆以上了)所以说,产品性能参数的不同,就会影响到我们设计考虑的不同,那么产品的规格自然就不同了;- 需要适应和符合的国家标准,国际标准,或行业标准;阶段3:产品总体设计方案。

在完成了产品规格说明以后,我们需要针对这一产品,了解当前有哪些可行的方案,通过几个方案进行对比,包括从成本、性能、开发周期、开发难度等多方面进行考虑,最终选择一个最适合自己的产品总体设计方案。

在这一阶段,我们除了确定具体实现的方案外,我们还需要综合考虑,产品开发周期,多少人月的工作量,需要哪些资源或者外部协助,以及开发过程中可能遇到的风险及应对措施,形成整个项目的项目计划,指导我们的整个开发过程。

阶段4:产品概要设计

产品概要设计主要是在总体设计方案的基础上进一步的细化,具体从硬件和软件两方面入手:

硬件模块概要设计

硬件模块概要设计,主要从硬件的角度出发,确认整个系统的架构,并按功能来划分各个模块,确定各个模块的的大概实现。首先要依据我们到底要哪些外围功能以及产品要完成的工作,来进行CPU选型(注意:CPU一旦确定,那么你的周围硬件电路,就要参考该CPU厂家提供的方案电路来设计)。然后再根据产品的功能需求选芯片,比如是外接AD还是用片内AD,采用什么样的通讯方式,有什么外部接口,还有最重要的是要考虑电磁兼容。

一般一款CPU 的生存周期是5-8年,你考虑选型的时候要注意,不要选用快停产的CPU,以免出现这样的结局:产品辛辛苦苦开发了1到2 年,刚开发出来,还没赚钱,CPU又停产了,又得要重新开发。很多公司就死在这个上面。

软件模块概要设计

软件模块概要设计阶段,主要是依据系统的要求,将整个系统按功能进行模块划分,定义好各个功能模块之间的接口,以及模块内主要的数据结构等。

阶段5:产品详细设计

硬件模块详细设计

主要是具体的电路图和一些具体要求,包括 PCB和外壳相互设计,尺寸这些参数。接下来,我们就需要依据硬件模块详细设计文档的指导,完成整个硬件的设计。包括原理图、PCB的绘制。

软件模块详细设计

功能函数接口定义,该函数功能接口完成功能,数据结构,全局变量,完成任务时各个功能函数接口调用流程。在完成了软件模块详细设计以后,就进入具体的编码阶段,在软件模块详细设计的指导下 ,完成整个系统的软件编码。

一定要注意需要先完成模块详细设计文档以后,软件才进入实际的编码阶段,硬件进入具体的原理图、PCB实现阶段,这样才能尽量在设计之初就考虑周全,避免在设计过程中反复修改。提高开发效率,不要为了图一时之快,没有完成详细设计,就开始实际的设计步骤。

阶段6&7:产品调试与验证

该阶段主要是调整硬件或代码,修正其中存在的问题和BUG,使之能正常运行,并尽量使产品的功能达到产品需求规格说明要求。

硬件部分:

- 目测加工会得PCB板是否存在短路,器件是否焊错,或漏焊接;- 测试各电源对地电阻是否正常;

- 上电,测试电源是否正常;

- 分模块调试硬件模块,可借助示波器、逻辑分析仪等根据。

软件部分:

验证软件单个功能是否实现,验证软件整个产品功能是否实现。

阶段8:测试

功能测试(测试不通过,可能是有BUG);

压力测试(测试不通过,可能是有BUG或哪里参数设计不合理);性能测试(产品性能参数要提炼出来,供将来客户参考,这个就是你的产品特征的一部分);其他专业测试:包括工业级的测试,例如含抗干扰测试,产品寿命测试,防潮湿测试,高温和低温测试(有的产品有很高的温度或很低的温度工作不正常,甚至停止工作)。

有的设备电子元器件在特殊温度下,参数就会异常,导致整个产品出现故障或失灵现象的出现;有的设备,零下几十度的情况下,根本就启动不了,开不了机;有的设备在高温下,电容或电阻值就会产生物理的变化,这些都会影响到产品的质量。这里要引出一个话题,工业级产品与消费类产品有什么区别呢?工业级的产品就要避免这些异常和特殊问题,有的产品是在很深的海里工作,或者在严寒的山洞工作,或者火热沙漠工作,或者颠簸的设备上,比如汽车;或者是需要防止雷击;所以这就是工业级产品跟消费类产品的区别,消费类的产品就不需要做这么多的测试。

阶段9:产品

通过上一阶段完整测试验证,在此阶段,即得到我们开发成功的产品。在此阶段,可以比较实际的产品和最初的形成的产品规格说明,看经过一个完整的开发过程,是否产品完全符合最初的产品规格说明,又或者,中途发现产品规格说明存在问题,对它进行了多少修改呢?

附录:嵌入式硬件开发流程

之前,我们详细讲述了嵌入式产品的研发流程,那么在这一节,我们具体以嵌入式产品的硬件部分为例,再次讲解其开发过程,希望通过这一节,大家能对嵌入式硬件开发流程有更深刻的认识,在以后的学习和工作中,更加规范化和标准化,提高开发技能。嵌入式硬件开发流程一般如下图,分为8个阶段:

嵌入式产品的硬件形态各异,CPU 从简单的4 位/8位单片机到32 位的ARM处理器,以及其他专用IC。另外,依据产品的不同需求,外围电路也各不相同。每一次硬件开发过程,都需要依据实际的需求,考虑多方面的因素,选择最合适的方案来。

硬件阶段1:硬件产品需求

和普通的嵌入式产品需求一样。阶段1:产品需求。

硬件阶段2:硬件总体设计方案

一个硬件开发项目,它的需求可能来自很多方面,比如市场产品的需要或性能提升的要求等,因此,作为一个硬件设计人员,我们需要主动去了解各个方面的需求并分析,根据系统所要完成的功能,选择最合适的硬件方案。

在这一阶段,我们需要分析整个系统设计的可行性,包括方案中主要器件的可采购性,产品开发投入,项目开发周期预计,开发风险评估等,并针对开发过程中可能遇到的问题,提前选择应对方案,保证硬件的顺利完成。

硬件阶段3:硬件电路原理图设计

在系统方案确定后,我们即可以开展相关的设计工作,原理设计主要包括系统总体设计和详细设计,最终产生详细的设计文档和硬件原理图。

原理设计和PCB设计是设计人员最主要的两个工作之一,在原理设计过程中,我们需要规划硬件内部资源,如系统存储空间,以及各个外围电路模块的实现。另外,对系统主要的外围电路,如电源、复位等也需要仔细的考虑,在一些高速设计或特殊应用场合,还需要考虑EMC/EMI等。

电源是保证硬件系统正常工作的基础,设计中要详细的分析:系统能够提供的电源输入;单板需要产生的电源输出;各个电源需要提供的电流大小;电源电路效率;各个电源能够允许的波动范围;整个电源系统需要的上电顺序等等。

为了系统稳定可靠的工作,复位电路的设计也非常重要,如何保证系统不会在外界干扰的情况下异常复位,如何保证在系统运行异常的时候能够及时复位,以及如何合理的复位,才能保证系统完整的复位后,这些也都是我们在原理设计的时候需要考虑的。

同样的,时钟电路的设计也是非常重要的一个方面,一个不好的时钟电路设计,可能会引起通信产品的数据丢包,产生大的EMI,甚至导致系统不稳定。

原理图设计中要有“拿来主义”!现在的芯片厂家一般都可以提供参考设计的原理图,所以要尽量的借助这些资源,在充分理解参考设计的基础上,做一些自己的发挥。

硬件阶段4:PCB图设计

PCB设计阶段,即是将原理图设计转化为实际的可加工的PCB 线路板,目前主流的PCB 设计软件有PADS,Candence 和Protel几种。

PCB设计,尤其是高速PCB,需要考虑EMC/EMI,阻抗控制,信号质量等,对PCB 设计人员的要求比较高。为了验证设计的PCB是否符合要求,有的还需要进行PCB 仿真。并依据仿真结果调整PCB 的布局布线,完成整个的设计。

硬件阶段5:PCB加工文件制作与PCB打样

PCB绘制完成以后,在这一阶段,我们需要生成加工厂可识别的加工文件,即常说的光绘文件,将其交给加工厂打样PCB 空板。一般1~4层板可以在一周内完成打样。

硬件阶段6:硬件产品的焊接与调试

在拿到加工厂打样会的 PCB空板以后,接下来我们,需要检查PCB空板是否和我们设计预期一样,是否存在明显的短路或断痕,检查通过后,则需要将前期采购的元器件和PCB空板交由生产厂家进行焊接(如果PCB 电路不复杂,为了加快速度,也可以直接手工焊接元器件)。

当PCB 已经焊接完成后,在调试PCB之前,一定要先认真检查是否有可见的短路和管脚搭锡等故障,检查是否有元器件型号放置错误,第一脚放置错误,漏装配等问题,然后用万用表测量各个电源到地的电阻,以检查是否有短路,这样可以避免贸然上电后损坏单板。调试的过程中要有平和的心态,遇见问题是非常正常的,要做的就是多做比较和分析,逐步的排除可能的原因,直致最终调试成功。

在硬件调试过程中,需要经常使用到的调试工具有万用表和示波器,逻辑分析仪等,用于测试和观察板内信号电压和信号质量,信号时序是否满足要求。

硬件阶段7:硬件产品测试

当硬件产品调试通过以后,我们需要对照产品产品的需求说明,一项一项进行测试,确认是否符合预期的要求,如果达不到要求,则需要对硬件产品进行调试和修改,直到符合产品需求文明(一般都以需求说明文档作为评判的一句,当然明显的需求说明错误除外)。

硬件阶段8:硬件产品

我们最终开发的硬件成功。一个完整的,完成符合产品需求的硬件产品还不能说明一个成功的产品开发过程,我们还需要按照预定计划,准时高质量的完成。才是一个成功的产品开发过程。   在PIC的单片机中有多种型号有内部RC振荡器的功能,从而省去了晶振,不但节省了成本,并且我们还多了两个IO端口可以使用。

但是,由于RC振荡器中电阻、电容的离散性很大,因此,在有内部RC振荡器的单片机中,它的内部RAM中都会有一个名为OSCCAL的校准寄存器,通过置入不同的数值来微调RC振荡器的振荡频率。并且,单片机的程序存储器中,也会有一个特殊的字来储存工厂生产时测得的校准值。下面我以常用的12C508A和12F629为例加以说明。

PIC单片机RC振荡器的使用及校准方法

12C508A的复位矢量是程序的最高字0x1FF,这个字节生产商已经固定的烧写为MOVLW 0xXX,指令执行后,W寄存器中即为校准值XX,当我们需要校准时,那么,在紧接着的地址0x0应该是一条这样的指令:MOVWF OSCCAL。接下去RC振荡器就会以标准的振荡频率运行了。

12F629的校准值也存放在最高字--0x3FF中,内容是RETLW 0xXX,但它的复位矢量却是0x0。这样,在我们需要校准RC振荡器时,在初始化过程中要加上下面两句:

CALL 0x3ff

MOVWF OSCCAL

当然,你还要注意寄存器的块选择位。

以前,我在做项目时,没太注意这个问题,这是因为在使用12C508A时,HI-TECH在进行编译时已经偷偷地替我们做了这项工作。它会在程序的0x0处自动加一条MOVWF OSCCAL。用12F629做接收解码代替2272时也没发生什么问题,但是在用被它作滚动码解码器时却发现接收距离的离散性很大。经多次试验终于找出是没对振荡器的振荡频率进行校正所至。

因此,需要另外编写用于校正的语句,我用了两种方法来实现这个目的:

1、用内嵌汇编的形式

#asm //此段汇编程序用于将位于程序段3FFH的call 3ffh //内部RC振荡器的校准值放入校准寄存器,bsf _STATUS,5 //在进行C语言调试时应屏蔽这段程序movwf _OSCCAL#endasm

2、用C语言标准形式

const unsigned char cs @ 0x3ff; //在函数体外。..

OSCCAL=cs; //仿真时屏蔽此句

用这两种方法都有一个小缺陷--仿真时,程序无法运行,这是由于C编译器并没有为我们在0x3FF放置一条RETLW 0xXX的语句。因此,程序运行到这里之后,并没有把一个常数(校准值)放入W寄存器然后返回,而是继续执行这条语句的下一句--0x0及其之后的程序,也就是说程序到此就乱了。因此如程序后面注释所示,在仿真时,应先屏蔽这几句程序。在程序调试完成后,需要烧写时,把注释符去掉,再编译一次就可以了。

我还有一种想法,不用屏蔽语句,那就是用函数来实现,就是在0x3FF起建立一个函数,函数体内只有一条语句,如下:

char jz()

{

return 0;

}

当然,还要考虑C函数返回时,一定会选择寄存器0,实际上这个函数的起始地址应小于0x3FF。但是我找了我所能找到的参考资料,并上网找了多次,也没找到为函数绝对定位的方法,希望有知道的朋友指点一下。

还有,12C508A是一次性编程的,并且0x1FF处的内容,我们是无法改变的,也就是说你在此处编写任何指令,编程器都不会为你烧写,或者说即使烧写了也不会改变其中的内容。

可12F629是FLASH器件,可多次编程,如果你没有故意选择,正品的编程器(如Microchip的PICSTART PLUS)是不会对存有校准值的程序空间进行编程的。即使你无意中对这个程序空间进行了编程,你也可以用一条RETLW 0xXX放在0x3FF处再编程一次就可以了,但这个XX值可能是不正确的,需经实验确定(请参考后面说明)。

为了检验OSCCAL的值对振荡器频率的影响,特编写了下面一个小程序进行验证:

#include

//*********************************************************__CONFIG(INTIO & WDTDIS & PWRTEN & MCLRDIS & BOREN & PROTECT & CPD);//内部RC振荡器普通IO口;无效看门狗;上电延时;内部复位;掉电复位;代码保护;数据保护//*********************************************************#define out GPIO0 //定义输出端#define jc GPIO3 //定义检测端

//*********************************************************void interrupt zd(); //声明中断函数//主函数***************************************************void main(){

CMCON=7;

OPTION=0B00000011; //分频比为1:16,

TRISIO=0B11111110;

GPIO=0B00000000;

WPU=0;

T0IF=0;

GIE=1;

T0IE=1;

while(1){

if(jc)OSCCAL=0xFF;

else OSCCAL=0;

}

}

//中断函数*************************************************void interrupt zd(){

T0IF=0;

out=!out;

}

程序其实很简单,就是在中断中让out脚的电平翻转,翻转的时间为4096个指令周期,电平周期为8192个指令周期。而指令的周期又决定于RC时钟频率。在主程序中,不断的检测JC端口的电平,然后根据此端口电平的值修改OSCCAL寄存器的值。当然,最后从OUT脚的波形周期上反映出了OSCCAL寄存器的值改变。

经用示波器测量(抱歉,手边没有频率计),JC端接地时,OUT端的电平周期为9.5毫秒左右;而JC端接正电源时,OUT端的电平周期为6毫秒左右。也就是说OSCCAL的值越大,单片机的时钟频率越高。并且,这个变化范围是很大的,因此,如果使用PIC单片机的内部RC振荡器时,对其振荡频率进行校正是十分必要的。这也是我在做滚动码接收解码器时,产品离散性很大的原因。望大家以后使用内部RC振荡器时能够注意到此点。

但还有一点要注意,即使你对RC振荡器进行了校正,你也别指望这个4MHz的RC振荡器肯定会很标准,实际上它还是一个RC振荡器,它的振荡频率是电压、温度的函数,也就是说这个振荡频率会随着电压和温度的变化而变化,只是经校正后的值更接近4MHz罢了,这在产品开发的一开始就要注意的。


粤嵌众创空间打造出集研发、生产、培训、销售于一体的自主研发基地,目前已拥有技术研发工程师150多名,成功自主研发产品140多项,开发平台设备90多款,大型商业实训项目50多个,并获得荣誉与认证50多项,现今研发产品已遍布全国,使用用户已突破百万,创客团队已经在项目研发上取得阶段性成果,其中悟空学车、旷视科技、宏友电子、杰马科技等多个创客团队已经成功开发出包括VR虚拟驾驶、智能机器人、车载互动多媒体、智能仓储系统、无线远程控制系统、云视频会议系统等多个产品项目和解决方案,并应用于国内大型物联网示范项目。目前已引领30000多人走上高新技术人才之路,每年为上千家IT企业输送数千位优秀研发工程师,还相继与全国上千所高校达成合作共建校园众创空间,每年举办近百场各式的创业技能大赛、创业沙龙、创业大讲堂等活动。依托众创空间免费申请政策扶持,可获得数万元政策补贴。在这里既是技术人才汇聚中心,扶持政策导向的前沿,更是创新理念孵化的温床。

最新文章

今日有2356人申请