设计与开发

71单片机 Microchip推出基于Arm内核新款单片机

小编 2024-10-06 设计与开发 23 0

Microchip推出基于Arm内核新款单片机

日前,Microchip Technology Inc.(美国微芯科技公司)面向航空航天业,推出首个基于Arm内核的单片机——SAMV71Q21RT耐辐射单片机和SAMRH71抗辐射单片机,将商用现货(COTS)技术的低成本和大型生态系统优势与宇航级器件可调节的防辐射性能相结合。

基于汽车级SAMV71单片机打造的SAMV71Q21RT耐辐射单片机和SAMRH71抗辐射单片机,采用了广泛使用的Arm Cortex-M7片上系统(SoC),有助于提升空间系统的集成度,在降低成本的同时提升性能。

SAMV71Q21RT

SAMRH71

SAMV71Q21RT和SAMRH71允许软件开发人员在迁移到宇航级元件之前着手使用SAMV71 COTS器件进行开发,从而显着缩短开发时间、降低成本。两款器件均可使用SAMV71的完整软件开发工具链,因为它们共享相同的生态系统,包括软件库,板级支持包(BSP)和操作系统(OS)的第一级端口。

初步开发工作在COTS器件上完成后,所有在这个阶段开发的软件都可以被轻松打包并移植到采用高可靠性塑封和宇航级陶瓷封装的耐辐射或抗辐射单片机上。SAMV71Q21RT耐辐射单片机可重用全套COTS掩模组,具有一定的引脚兼容性,从而可立即实现COTS器件到合规宇航级器件的移植。

SAMV71Q21RT-SAMRH71,blockdiagram

SAMV71Q21RT的耐辐射性能是低轨地球卫星星座、太空机器人等NewSpace应用领域的最佳选择, SAMRH71的抗辐射性能则更适合陀螺仪、星体跟踪器等更为重要的子系统。SAMV71Q21RT耐辐射器件可耐受累计达30Krad(Si)的总电离辐射剂量(TID),同时具有闭锁抗扰能力,且不会被重离子破坏。如单粒子闭锁值(SEL)不超过62 MeV.cm2/mg时,SAMV71Q21RT和SAMRH71均不会受到影响。

SAMRH71抗辐射单片机专为外太空应用设计,可满足以下目标辐射性能的抗辐射要求:

· 累计总电离辐射剂量超过100Krad(Si);

· 无单粒子事件翻转(SEU)、传能线密度(LET)不超过20MeV.cm2/mg,无系统缓解;

· 无单粒子事件功能中断(SEFI),确保所有存储器的完整性。

SAMV71Q21RT和SAMRH71以Arm Cortex-M7内核为基础,具有高性能、低功耗的特点,可延长空间应用的运行寿命。为了避免受到辐射影响并管理系统缓解,SAMV71Q21RT和SAMRH71的架构添加了纠错码(ECC)记忆、完整性检查监测器(ICM)、存储器保护单元(MPU)等故障管理和数据完整性功能。

SAMV71Q21,standalone

此外,它们还拥有CAN FD和以太网AVB/TSN功能,可满足不断变化的空间系统连接功能的需求。为进一步支持外太空应用,SAMRH71还专门设置了SpaceWire总线和MIL-STD-1553接口,用于控制和实现高速数据(最高可达到200Mbps)管理。

Microchip航空航天和国防事业部副总裁Bob Vampola表示:“作为行业首款耐辐射、抗辐射的Arm Cortex-M7单片机,SAMV71Q21RT和SAMRH71可为航空航天应用提供在汽车行业久经考验的SoC架构。通过Microchip的“COTS - 耐辐射抗辐射”技术,上述器件可帮助设计人员以相对较低的成本立即着手原型设计,随后再移植至合规的器件。”

为了简化设计流程并缩短产品面市时间,开发人员可使用ATSAMV71-XULT评估板。该器件由Atmel Studio集成开发环境(IDE)提供支持,用于开发、调试,并提供软件库。到2019年年中,两款单片机也将在MPLAB Harmony 3.0中得到支持。

昨日起,采用CQFP256陶瓷封装的SAMRH71于开始提供样片。目前,SAMV71Q21RT已经开始量产,提供四款型号:

· SAMV71Q21RT-DHB-E,采用原型级QFP144陶瓷封装

· SAMV71Q21RT-DHB-MQ,采用空间级QFP144陶瓷封装(或同等QMLQ封装)

· SAMV71Q21RT-DHB-SV,采用空间级QFP144陶瓷封装(或同等QMLV封装)

· SAMV71Q21RT-DHB-MQ,采用符合AQEC 高可靠性要求的QFP144塑料封装

【从NewSpace到关键的太空任务,空间应用设计人员需要减少设计周期和成本,同时根据不同任务的各种防辐射要求,对设计进行调整。此次Microchip所推出的新品,就是为了应对这一趋势。】

调查区域:企业小调查(点击预览可查看效果)

APP商店搜索中关村在线,看2018年最新手机、笔记本评价排行

单片机的独立按键学习,实现60秒循环数字的启动暂停与清零

想要学习单片机必须要准备单片机开发板一块,和单片机C语言版本的书籍,我会把每天录制视频的源代码到头条,并且录制相同文章名字视频到西瓜视频,如果你再学习独立按键这一块有不明白的地方可以点开我的头像,进入我的主页,点击视频观看学习。

目前视频录制了9个左右,没学过的结合书本,结合我的视频,都可以学会。

话不多说先上今天的仿真效果图:

然后下面是本仿真图的源代码:如果有错误,请大神指教。

#include<reg52.h> //头文件,把芯片的数据地址编译成C语言可以调用的句子。

#define uchar unsigned char //宏定义 把后面的长句 给他们一个新定义,实现同样的功能。

#define uint unsigned int //宏定义 把后面的长句 给他们一个新定义,实现同样的功能。

sbit dula=P2^0; //把p2.0给他一个新名字叫dula 用于数码管锁存器段选位置

sbit wela=P2^1;//把p2.1给他一个新名字叫wela 用于数码管锁存器位选的位置

sbit key1=P3^0; //同样的,给按键1和按键2分别找两个串行口来对接。

sbit key2=P3^1;

uchar code table[]={0x3f,0x06,0x5b,0x4f, //定义的一个数码管的编码表。

0x66,0x6d,0x7d,0x07, //阴极数码管

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

void delayms(uint); //延时子程序

void display(uchar,uchar); //显示子程序

void keyscan(); //独立按键子程序

uchar num,shi,ge,num1; //定义四个无符号字符

void main() //主程序

{

TMOD=0x01; //中断确定工作方式,和选择定时器0

TH0=(65536-45872)/256; //装初值,

TL0=(65536-45872)%256; //对这一块不太明白的,可以看我上一个视频

EA=1; //开启总的中断

ET0=1; ////开启定时器/计数器寄存器中断 开启中断具体定时器中断

while(1) //循环式判断,

{

keyscan(); // 调用按键子程序,对按键子程序进项不断地扫描

display(shi,ge);//调用显示子程序,对显示子程序,进行不断地刷新显示

}

}

void display(uchar shi,uchar ge) //显示子函数,并且调用形式参数

{

P0=0x00; //为了在仿真电路让P0口没有其他的数据来影响段选显示的/阴极数码管,高电平有效。让数码管变得干净。

dula=1; //锁存器开

P0=table[shi]; 把十位的数字送到P0

dula=0; //锁存器关闭// 段选位置

P0=0XFF; //低电平有效,让位选的位置变得干净。

wela=1; //位选锁存器开启。//低电平有效。

P0=0xfe;//送入位选的 选位。

wela=0; 位选锁存器关闭。

delayms(5); /延时5毫秒。

P0=0x00;

dula=1;

P0=table[ge];

dula=0;

P0=0xff;

wela=1;

P0=0xfd; //选择数码管的第一个位置 来显示数字

wela=0;

delayms(5);

}

void delayms(uint xms) //延时子程序

{

uint i,j; //定义两个无符号字符

for(i=xms;i>0;i--)

for(j=110;j>0;j--);

}

void keyscan() //今天的重点:按键扫描子程序

{

if(key1==0) //判断按键1 有没有按下

{

delayms(10); //延时10毫秒,延时去抖动

if(key1==0) //在判断一次按键1有没有按下

{

while(!key1); //等待按键释放,如果没有释放那么按键始终等于0,也就是低电平。按键按下去了,

TR0=~TR0; //定时器的开启与关闭,开启 开始计数,关闭就会暂停

}

}

if(key2==0) //判断按键2是否按下

{

delayms(10); //延时去抖动

if(key2==0) //再次判断

{

num1=0;// num1是送给数码管的数值,0-60根据定时器变化的值。

while(!key2);//判断按键2时候松开,没有松开始终等于低电平。

}

}

}

void T0_time() interrupt 1 //定时器的子程序

{

TH0=(65536-45872)/256; //重装初值,这一块如果听不懂,可以去看上个视频。

TL0=(65536-45872)%256;

num++;

if(num==20) //定时器每次50毫秒,这里加个20次的循环,用来凑足1秒钟。

{

num=0;

num1++;

if(num1==60) //给num1进行每一秒钟数值变化送数值。

num1=0;

shi = num1/10; //求模的数,送到shi

ge = num1%10;

}

}

相关问答

单片机 在使用定时器时是用到了哪些引脚?一定是这些吗? - 懂得

单片机使用定时器时,不用到任何引脚,因为定时器就好比一个时钟,它被安装在单片机内部,在接收到信号之后,就开始运行,一般使用定时器,通过编程的方案...

怎么用三极管做互锁开关电路?

1、这个不太清楚,不过最好还是按配对的来,不配对的在一起使用可能时序匹配很麻烦,也可能还有其他麻烦(请问是不是2249接收模块啊,好像查不到2294)2、若你...

猜你喜欢