|
1、安森美半导体推出蓝牙低功耗多传感器平台,使免电池IoT 成为现实
https://www.onsemi.cn/PowerSolutions/newsItem.do?article=4309
免电池,免维护一直是物联网设计中的一个重要突破点。对此,安森美推出两款设计套件
(1)太阳能电池供电套件
该平台结合RSL10 SIP、太阳能电池和Bosch的许多低功耗传感器,包括BME280多功能一体环境传感器(压力、温度、湿度)和BMA400超低功耗3轴加速度计,使开发人员和制造商可创建完整的IoT节点,完全由可再生能源或从传感器周围采集的能量供电。
(2)还有一款能力搜集方案套件,由安森美和采埃孚开发的蓝牙开关,蓝牙每一传输信号只消耗20微焦(μJ)
该开关将能量从动能转换为电磁能,并储存起来供RSL10 SIP使用。而用户每次按下及松开按钮,可以搜集300μJ能量。
关于安美森半导体推的蓝牙SIP--RSL 10系列
即使是最有经验的硬件工程师,系统级射频设计也是一个复杂的过程,需要具备天线选择、网络匹配和PCB布局的知识。一旦设计了应用,就必须测试并提交以符合国际无线标准,如美国FCC、加拿大IC、欧洲CE等。
鉴于此,安美森半导体推蓝牙SIP方案RSL 10模块,集成的天线,无需任何额外的RF设计,大大减少了上市时间。
RSL10系列凭借蓝牙5可实现2兆位每秒(Mbps)的速度与业界最低功耗,提供先进的无线功能,而不影响电池使用寿命。RSL 10在深度睡眠模式下的功耗仅62.5纳瓦(nW),峰值接收功耗仅7毫瓦(mW)。RSL10的高能效最近获EEMBC ULPMark™验证,成为基准史上首款突破1,000 ULP Mark的器件,Core Profile分数高出前行业领袖两倍以上。
2、一款软硬件全开源的智能小手表设计
开源地址:
https://github.com/S-March/smarchWatch_PUBLIC/
硬件配置:
主控用的Dialog Semiconductor DA14683,带BLE5.0
效果:
https://imgur.com/a/FSBwD3g
3、 支付宝POS机硬件配置
今年年初开始,支付宝的小pos机开始出现在大街小巷的小超市,小饭馆。
除了常用的二维码支付,多了个刷脸支付,今天特地在超市里面测试了下,仅仅需要绑定下手机,以后直接刷脸就行,的确是方便,不用带手机了。
晚上就搜集了下相关硬件资源,下面是那种小个头的POS机,基本情况如下,貌似是联发科MT6735系列方案,硬件由第三方生产,自己再配套Android方面的软件支持。
4、ST发的STM32CubeIDE简单上手视频
https://v.qq.com/x/page/j0867kmpa79.html
5、华为泰山服务器二代,基于去年年末推出的鲲鹏920
2019华为智能计算机大会杭州站展示了二代泰山服务器。
ps:当前服务器领域还是X86的天下,TOP500的天梯排名中仅一块是基于ARM核的,ARM服务器还有很长的一段路要走。
泰山二代:
鲲鹏家族:
服务器效果:
6、 SEGGER推出新的压缩组件emCompress-ToGo视频介绍
视频:https://v.qq.com/x/page/z0867uqlkug.html
这是一款为资源受限系统量身定制的新型无损压缩算法,可用于固件压缩,无线数传,数据流压缩等方向。
之前发的一篇普及贴:【技术贴】解读SEGGER最新一篇博文《适用于MCU的高效压缩算法,DEFLATE,LZMA,LZJU90,LZ4和SMCS的性能PK》
http://www.armbbs.cn/forum.php?mod=viewthread&tid=82448&fromuid=58
7、硬件bug无处不在,M7内核r0p1版本的bug以及FreeRTOS和uCOS的处理机制
FreeRTOS:
There are two options for running FreeRTOS on ARM Cortex-M7 microcontrollers.
The best option depends on the revision of the ARM Cortex-M7 core in use. The
revision is specified by an 'r' number, and a 'p' number, so will look something
like 'r0p1'. Check the documentation for the microcontroller in use to find the
revision of the Cortex-M7 core used in that microcontroller. If in doubt, use
the FreeRTOS port provided specifically for r0p1 revisions, as that can be used
with all core revisions.
The first option is to use the ARM Cortex-M4F port, and the second option is to
use the Cortex-M7 r0p1 port - the latter containing a minor errata workaround.
If the revision of the ARM Cortex-M7 core is not r0p1 then either option can be
used, but it is recommended to use the FreeRTOS ARM Cortex-M4F port located in
the /FreeRTOS/Source/portable/RVDS/ARM_CM4F directory.
If the revision of the ARM Cortex-M7 core is r0p1 then use the FreeRTOS ARM
Cortex-M7 r0p1 port located in the /FreeRTOS/Source/portable/RVDS/ARM_CM7/r0p1
directory.
意思是说对于r0p1版本的bug,有一个专门的移植文件(有一个微小的修正),当然,这个文件可以用于所有M7内核,含已经解决此bug的高版本内核。
对于高版本M7内核,推荐使用M4F里面的移植文件。
uCOS:
- ;********************************************************************************************************
- ; HANDLE PendSV EXCEPTION
- ; void OS_CPU_PendSVHandler(void)
- ;
- ; Note(s) : 1) PendSV is used to cause a context switch. This is a recommended method for performing
- ; context switches with Cortex-M. This is because the Cortex-M auto-saves half of the
- ; processor context on any exception, and restores same on return from exception. So only
- ; saving of R4-R11 & R14 is required and fixing up the stack pointers. Using the PendSV exception
- ; this way means that context saving and restoring is identical whether it is initiated from
- ; a thread or occurs due to an interrupt or exception.
- ;
- ; 2) Pseudo-code is:
- ; a) Get the process SP
- ; b) Save remaining regs r4-r11 & r14 on process stack;
- ; c) Save the process SP in its TCB, OSTCBCurPtr->OSTCBStkPtr = SP;
- ; d) Call OSTaskSwHook();
- ; e) Get current high priority, OSPrioCur = OSPrioHighRdy;
- ; f) Get current ready thread TCB, OSTCBCurPtr = OSTCBHighRdyPtr;
- ; g) Get new process SP from TCB, SP = OSTCBHighRdyPtr->OSTCBStkPtr;
- ; h) Restore R4-R11 and R14 from new process stack;
- ; i) Perform exception return which will restore remaining context.
- ;
- ; 3) On entry into PendSV handler:
- ; a) The following have been saved on the process stack (by processor):
- ; xPSR, PC, LR, R12, R0-R3
- ; b) Processor mode is switched to Handler mode (from Thread mode)
- ; c) Stack is Main stack (switched from Process stack)
- ; d) OSTCBCurPtr points to the OS_TCB of the task to suspend
- ; OSTCBHighRdyPtr points to the OS_TCB of the task to resume
- ;
- ; 4) Since PendSV is set to lowest priority in the system (by OSStartHighRdy() above), we
- ; know that it will only be run when no other exception or interrupt is active, and
- ; therefore safe to assume that context being switched out was using the process stack (PSP).
- ;
- ; 5) Increasing priority using a write to BASEPRI does not take effect immediately.
- ; (a) IMPLICATION This erratum means that the instruction after an MSR to boost BASEPRI
- ; might incorrectly be preempted by an insufficient high priority exception.
- ;
- ; (b) WORKAROUND The MSR to boost BASEPRI can be replaced by the following code sequence:
- ;
- ; CPSID i
- ; MSR to BASEPRI
- ; DSB
- ; ISB
- ; CPSIE i
- ;********************************************************************************************************
- OS_CPU_PendSVHandler
- CPSID I ; Cortex-M7 errata notice. See Note #5
- MOV32 R2, OS_KA_BASEPRI_Boundary ; Set BASEPRI priority level required for exception preemption
- LDR R1, [R2]
- MSR BASEPRI, R1
- DSB
- ISB
- CPSIE I
复制代码
8、基于V7开发板的uCOS-III,uCOS-II,RTX4,RTX5,FreeRTOS原版和带CMSIS-RTOS V2封装层版全部集齐
(1)、基于V7开发板的最新版uCOS-II V2.92.16程序模板,含MDK和IAR,支持uC/Probe
http://www.armbbs.cn/forum.php?mod=viewthread&tid=93552
(2)、基于V7开发板的最新版uCOS-III V3.07.03程序模板,含MDK和IAR,支持uC/Probe,与之前版本变化较大
http://www.armbbs.cn/forum.php?mod=viewthread&tid=93553
(3)、基于V7开发板的最新版FreeRTOS V10.2.0程序模板,含MDK和IAR,支持串口打印任务执行情况
http://www.armbbs.cn/forum.php?mod=viewthread&tid=93554
(4)、基于V7开发板的最新版RTX4 V4.81.1程序模板,不使用CMSIS-RTOS封装层,继续保持超强战斗力
http://www.armbbs.cn/forum.php?mod=viewthread&tid=93555
(5)、基于V7开发板的RTX5和FreeRTOS带CMSIS-RTOS V2封装层的模板例程下载,AC6和AC5两个版本
http://www.armbbs.cn/forum.php?mod=viewthread&tid=93238
这里主要注意uCOS-III,与之前版本有较大的变化。
移植说明如下:
(1)、MDK使用MDK5.26及其以上版本。
(2)、IAR使用IAR8.30及其以上版本。
(3)、由于Mircium当前仅提供了IAR的底层移植文件,参考修改制作了个MDK版本的。
(4)、新版的底层移植文件比较好用,支持M3,M4和M7,含浮点支持。
(5)、制作了一个滴答定时器和PendSV中断入口汇编文件os_cpu_isr.asm,以后不用繁琐的修改启动文件的中断入口函数名,直接添加此贴文件即可。
(6)、新版的中断管理分为Kernel Aware和Non-Kernel Aware
Kernel Aware 表示受到uCOS-III管理的中断服务程序。
Non-Kernel Aware 表示不受管理的中断服务程序,中断使用跟裸机一样,但不可调用uCOS-III的API。
(7)、uCOS-III进入V3.07.00版本后与之前的版本变化较大,确切的说是更好用了。新的内核部分越来越向uCOS-II靠拢,之前臃肿的功能和不合理方案都已经放弃。
uCOS-III刚推出的时候,搞了不少功能,什么中断延迟提交,多事件等待,专门搞一个滴答定时器任务等新功能。升级到当前的V3.07.00后,都被干掉了,不实用。
新版uCOS-III V3.07.03的动态时钟模式在STM32H7上面也测试成功,的确是非常爽的一种方式,下周一分享给大家。
这里的动态滴答模式类似RTX,FreeRTOS的tickless,都是用于低功耗的。
正常滴答和动态滴答的效果对比:
|
评分
-
查看全部评分
|