0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

双核单片机之初体验--3

聚丰开发 2018-10-23 10:08 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

注:本文是作者以前发表在其个人博客,现在发布到“聚丰开发”专栏


10.能否通过一些应用实例来让大家了解应广双核单片机针对某些应用场合的便捷性?


例1:
目前价格低于0.2美元的单片机大都不带UART(串口)硬件,如果用一款低价单片机开发需要支持串口通讯的产品,只能是用IO口软件模拟串口。


用IO口软件模拟串口的代码并不复杂,但如果单片机还要处理其它事情,就会遇到麻烦。假定通讯速率是9600,这样每个位宽大约为104us。


一种方法是直接在主程序中循环完成通讯,这样当有数据收发的时候就无法处理其它事情,每个字节会占用超过1ms的时间,数据越多,占用的时间越长,对于数据发送处理还好,数据接收就会很麻烦,理论上需要程序每52us去查看一次IO状态才行,这样的程序只要简单一想就知道编写起来不是一件简单的事情。


另一种方法是用中断,这种处理方法比循环的要简便一些,但要做到同时收发和兼顾处理其它事情,同样也不是一件简单的事情。


对于普通单片机如果只处理串口数据收发,不做其它事情,不管程序循环还是中断方式,程序相对都不会太过复杂,上面只所以复杂是需要同时处理其它的事情。


使用应广双核单片机就可以很好的解决这个问题,首先价格上不会超过0.2美元;其次代码会相对简单,一个内核处理主程序,一个内核专门负责串口通讯,两者都会有很好的实时性。



例2:
处理38K红外遥控码。
38K红外遥控码是频率38K占空比为1:2的方波,如果单片机硬件不支持IR接口,就需要单片机能连续输出宽度约为9us和18us的高低电平。如果要单片机输出这种周期持续稳定的方波,在发码期间基本上不能使用中断,象东芝码一次发码时间大约需要60ms,这样就会严重影响程序的计时等功能。


红外码的接收相对要好一些,每个码都有几百微秒的时间,采用中断完全可以实现解码,唯一麻烦的是红外码通常都是数据包,而且数据包中间还包含一些特殊格式,不象串口所有的字节码都是固定格式,这样需要程序按照特定流程才能解码,无法象串口一样只要一个字节的接收程序就可以完成所有数据的接收,所以红外的接收解码程序会比较长,中间如果夹入其它事情处理就会变得很复杂。


以我个人的经验,普通单片机完成红外遥控码的处理,大约需要2~3天时间,最终效果不会太好,但如果使用应广双核单片机,半天即可完成,代码数量要少许多,效果则是更理想。


例3:
一个用应广双核单片机做的红外遮挡开光(反射式)全部代码。
IR_SWequpb.1
IR_INPUTequpa.0
IR_OUTPUTequpa.6


byte ir_new
byte ir_old
byte ir_enable
byte i
byte ir_new1
byte ir_new2
byte ir_new3

gotomain0
gotomain1

//----------------FPPA0-------------------
main0:
.ADJUST_OTP_IHRCR8MIPS// IHRC/2 = 8MIPS, WatchDog Disable, RAM 0,1 temporary be used

sp = 0x30

disgint
inten = 0

mova,0b000_11_111//disable timer
movt16m,a

set1pbc.1
set0IR_SW

set0pac.0
set1pac.6
set0IR_OUTPUT

delay200

ir_new = 0
ir_old = 0
ir_enable = 0

mova,0
movintrq,a


set1fppen.1//eanble FPPA1

ir_enable = 1
i = 20
while(i)
{
delay200
i--
}

if(IR_INPUT)
{
ir_old = 1
}
else
{
ir_old = 0
}

ir_enable = 0
i = 5
while(i)
{
delay200
i--
}

clkmd.1 = 1//enable watch dog


main0_loop:
wdreset
callcheck_ir

if(ir_new != ir_old)
{
if(ir_new != 1)
{
togIR_SW
}
ir_old = ir_new
}

i = 100
while(i)
{
delay200
i--
}
gotomain0_loop

check_ir:
ir_enable = 1
i = 20
while(i)
{
delay200
i--
}

if(IR_INPUT)
{
ir_new1 = 1
}
else
{
ir_new1 = 0
}

i = 5
while(i)
{
delay200
i--
}

if(IR_INPUT)
{
ir_new2 = 1
}
else
{
ir_new2 = 0
}

i = 5
while(i)
{
delay200
i--
}

if(IR_INPUT)
{
ir_new3 = 1
}
else
{
ir_new3 = 0
}

if((ir_new1 == ir_new2) && (ir_new2 == ir_new3))
{
ir_new = ir_new1
}
else
{
ir_new = ir_old
}

ir_enable = 0
i = 20
while(i)
{
delay200
i--
}
ret

//----------------FPPA1-------------------
main1:
sp = 0x38
delay200
main1_loop://output 38k IR signal
if(ir_enable)
{
set1IR_OUTPUT
delay33
set0IR_OUTPUT
delay67
}
else
{
set0IR_OUTPUT
delay10
}
gotomain1_loop



11.应广双核单片机存在哪些不足?


回答:
到目前为止已经上市的所有型号最低工作电压为2.5V,这个电压值有点高,不适合电池供电的产品,如果能做到2.2V会更具竞争力。了解到的信息是应广科技有计划推出更低工作电压的版本。


编译工具存在一些不足,对C语言的支持并不是很理想,仿真时选择3.3V工作电压容易产生低电压复位(此时需要保证工作电压大于3.3V)。对于有经验的工程师这点不是关键问题,开发过程可以绕过这些不足。
部分型号的ADC精度略微偏低,但可满足大部分场合的应用需求。


某些功能上存在个别瑕疵,不过应广科技在其网页上已经将这些瑕疵全部列举出来,并提出了相应解决方法。这一点比其它公司要做得好,其它公司往往是用到最后才发现有这样那样的问题,还有可能是无法解决的问题,让用户进退两难。

12.应广科技对客户的技术支持是否及时?


回答:
应广科技作为一家成立时间不长的公司,非常重视客户服务,无论大小客户,只要你在使用应广科技的产品进行开发,所有技术问题都有专人进行回复,通常会在第二个工作日回复电子邮件。

13.应广的双核单片机保密性怎样?花多少钱可以解密?


回答:
相较其它台系单片机,应广有着良好的保密性,目前市场上暂无提供针对应广单片机的解密服务。

14.如果我想用应广的单片机开发产品?什么地方可以买到芯片和开发工具?


回答:
这个需要联系当地的代理商,如果不知道代理商可以直接联系应广科技进行咨询,应广科技网址www.padauk.com.tw
我这里不提供应广单片机裸片,但可以根据客户需求用应广双核单片机完成产品开发,并且不收开发费。

15.哪些产品适合选用应广的单片机?


回答:
这个问题有点不好回答,其实蛮多场合都挺适合的,可以这么说,相信你一旦使用过应广的产品,就会喜欢上它。
在我看来,用义隆153做有点难,用松翰和合泰单片机做有点贵,这类产品最适合应广的单片机;当然,那种带有通讯等实时性强功能的低成本方案应广更是不二选择。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单机片
    +关注

    关注

    0

    文章

    52

    浏览量

    12826
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    怎么学好单片机

    繁殖出来的,不会太难。一下子搞太难的东西,不单学不会,还会打击自己的脆弱的心灵。 选好了单片机,那就搭开发平台,首先是软件开发平台,针对不同的单片机内核或者型号,有不同平台,通用性51
    发表于 12-04 07:16

    STM32H755单片机的使用疑问求解?

    我再使用STM32H755单片机时候,想用M7内核和M4内核,分时操作串口,可以这样使用吗? 还有就是全局变量可以同时被两个操作嘛?
    发表于 11-11 07:16

    第1章 如何学习单片机

      在错误的道路上日夜兼程,最终也无法成功,方法和思路绝对是最重要的。本章节讲到的学习单片机的方法,都是作者学习单片机的无数经验和教训总结出来的瑰宝。通过作者前面的披荆斩棘,开辟了道路,可以告诉读者
    的头像 发表于 10-10 10:32 238次阅读

    如何在rt-thread studio上开发STM32H747这类单片机

    如题,我希望在rt-thread studio上开发STM32H747IIT6这款单片机,在keil里两个的代码是完全隔离的,分别在两个工程中编写。 但是在rt-thread s
    发表于 09-19 08:08

    单片机用什么封装

    单片机封装是将芯片内部电路与外部引脚连接并包裹保护的结构,不仅影响单片机的安装方式、适用场景,还与电路设计的紧凑性、散热性能密切相关。不同封装类型各有特点,适配从简单电路到复杂系统的多样化需求
    的头像 发表于 08-01 13:47 896次阅读

    什么单片机比较耐用

            在工业控制、户外设备、医疗仪器等场景中,单片机的耐用性直接决定了设备的稳定运行与维护成本。耐用的单片机通常具备宽温工作范围、强抗干扰能力、稳定的电源适应性和长寿命的硬件设计。深圳市安
    的头像 发表于 07-31 13:48 556次阅读

    怎么测单片机系统频率

    单片机系统频率是指单片机工作时的时钟频率,它直接影响单片机的运行速度和处理能力,准确测量系统频率对单片机应用开发、程序调试和性能优化具有重要意义。测量
    的头像 发表于 07-25 11:39 477次阅读

    单片机怎么驱动电机?

    在各类自动化设备和智能装置中,电机是重要的执行部件,而单片机作为控制核心,需要通过特定的方式驱动电机运转。单片机驱动电机并非直接连接即可,而是要根据电机类型和功率,搭配合适的驱动电路,才能实现稳定
    的头像 发表于 07-25 09:31 439次阅读

    单片机怎么烧程序

    单片机烧程序是将编写好的程序代码写入单片机内部存储单元,让单片机按照预设逻辑工作的过程,是单片机应用开发中不可或缺的环节。无论是简单的灯光控制程序,还是复杂的工业控制算法,都需要通过烧
    的头像 发表于 07-23 11:47 651次阅读

    KF32A136系列单片机产品介绍

    F32A136 系列单片机是基于 KF32 内核架构开发的单片机
    的头像 发表于 06-27 11:42 1681次阅读
    KF32A136系列<b class='flag-5'>单片机</b>产品介绍

    单片机科普总结,建议收藏!

    单片机(MicrocontrollerUnit,MCU)作为嵌入式系统的核心之一,在现代电子产品中无处不在。从智能家居、汽车电子,到工业控制、医疗设备,单片机支撑着无数智能化应用的发展。对于初学者
    的头像 发表于 04-07 11:58 4479次阅读
    <b class='flag-5'>单片机</b>科普总结,建议收藏!

    HOLTEK发布HT32F67595低功耗蓝牙单片机

    Holtek新推出HT32F67595(Arm Cortex-M33/M0+)低功耗蓝牙单片机,通过蓝牙SIG BT5.3认证。
    的头像 发表于 03-26 17:11 1179次阅读

    什么是单片机的ADC接口

    在嵌入式系统和工业自动化领域,单片机(Microcontroller)作为核心控制单元,承担着数据采集、处理和控制的重要任务。其中,模数转换器(Analog-to-Digital Converter
    的头像 发表于 02-03 11:27 3728次阅读

    51单片机pwm和spwm

    51单片机pwm
    发表于 01-08 15:54 3次下载

    单片机Debug工具性能对比 单片机调试常用命令

    单片机(Microcontroller Unit, MCU)调试是嵌入式开发中的一个重要环节,它帮助开发者发现和修复代码中的错误,优化程序性能。不同的单片机和开发环境可能使用不同的调试工具和命令
    的头像 发表于 12-19 09:56 2166次阅读