历史上的今天
返回首页

历史上的今天

今天是:2025年02月20日(星期四)

正在发生

2020年02月20日 | 无线路灯项目——STM32L151概述

2020-02-20 来源:eefocus

STM32L151RCT 256KB 属于Cat.3 
在stm32l1xx.h文件中,有下面一幅图,说明了不同容量的MCU应该用哪个startup.s文件 
这里写图片描述
有关density和Cat名称的问题,ST官方给出下面的说法: 
Replaced “Low density”, “Medium density”, “Medium+ density” and “High density” categories by Cat.1, Cat.2, Cat.3, Cat.4 and Cat.5 in all document.

下面是STM32L1系列中Cat.3的系统结构图 
这里写图片描述
FLITF指的是The Flash memory interface。 
在系统reset后,除了Flash和SRAM的时钟Enable,其他外设时钟都Disable,所以我们在初始化时,要Enable相应外设的时钟,这时要注意这个外设是挂在AHB还是APB总线上。

 
STM32F103的GPIO挂在APB2上,而在STM32L151中,GPIO挂在AHB上,当时调试L151时没注意到这点,导致在这上面花了点时间。


ST在Datasheet中用Non-volatile memory(NVM)代替了原来的Flash,NVM指的是非易失性的存储器,即断电不丢失,在L151中,NVM包括以下3个方面: 
1.Flash,放置程序 
2.EEPROM,放置用户数据 
3.Information,包括bootloader等 


STM32L151有0x0000 0000~0xFFFF FFFF共4GByte线性空间,外设、SRAM、FLASH等各种资源都集中在这4GByte中。


这里的AHB和APB都是全速,CPU最高32M,总线最高也能达到32M 
APB(Advanced Peripheral Bus)一般是低速总线 
AHB(Advanced High performance Bus)一般是高速总线


Bit-band 
CM3的存储器系统支持所谓的“位带”(bit-band)操作。通过它,实现了对单一比特的原子操作。位带操作仅适用于一些特殊的存储器区域中。例如下面的图,是将1MByte的SRAM的膨胀成了32MByte,由于要进行bit级操作,所以需要将1bit扩展成32bit(即1word),在位带区中,每个比特都映射到别名地址区的一个字——这是个只有 LSB才有效的字。 
位带区与位带别名区的膨胀关系图 
这里写图片描述

这里写图片描述

这里写图片描述

位带操作的优越性 
1.位带操作对于硬件 I/O密集型的底层程序最有用处了 
2.位带操作还能用来化简跳转的判断。当跳转依据是某个位时,以前必须这样做: 
● 读取整个寄存器 
● 掩蔽不需要的位 
● 比较并跳转 
现在只需: 
从位带别名区读取状态位 
● 比较并跳转 


3.以前修改一个值需要经过“读-改-写”3条指令,导致这中间留有两个能被中断的空档,这在多任务系统中会引起系统紊乱。通过使用 CM3的位带操作,就可以消灭上述的紊乱。CM3把这个“读-改-写”做成一个硬件级别支持的原子操作,不能被中断。


请注意:当使用位带功能时,要访问的变量必须用volatile来定义。因为C编译器并不知道同一个比特可以有两个地址。所以就要通过 volatile,使得编译器每次都如实地把新数值写入存储器,而不再会出于优化的考虑,在中途使用寄存器来操作数据的复本,直到最后才把复本写回——这会导致按不同的方式访问同一个位会得到不一致的结果。


对于STM32L151,ST提供的库函数中,大部分还是没有使用bit-band,在stm32l1xx.h中,有下面的宏定义,能进行bit-band操作的有外设和SRAM两个部分,他们非位带操作的地址是(uint32_t)0x40000000 和 (uint32_t)0x20000000


#define SRAM_BB_BASE          ((uint32_t)0x22000000) /*!< SRAM base address in the bit-band region */

#define PERIPH_BB_BASE        ((uint32_t)0x42000000) /*!< Peripheral base address in the bit-band region */


GPIO 
当GPIO配置为input时,无需考虑是推挽(PP)还是开漏(OD);无需考虑速度,这个速度是描述输出速度;无需考虑输出寄存器的值,因为它输出不了0或1。 
这里写图片描述
这里写图片描述

【Reference】 
《Cortex-M3权威指南》 
http://blog.chinaunix.net/uid-26285146-id-3071387.html

推荐阅读

史海拾趣

亿佰特(EBYTE)公司的发展小趣事

亿佰特在发展过程中,荣获了多项荣誉和奖项。公司成功入选2022年度四川省“专精特新”中小企业名单,这是对公司在细分市场专业化、企业管理精细化、产品或服务特色化、科技成果新颖化等方面的认可。同时,亿佰特还积极履行社会责任,关注环保和公益事业,展现了企业的良好形象和责任感。

以上五个故事方向涵盖了亿佰特在电子行业中的发展过程中的重要方面,希望能够帮助您了解该公司的成长历程。

COMPUTAR公司的发展小趣事

进入90年代,电动变焦镜头逐渐成为市场的新宠。CBC株式会社紧跟时代潮流,于1992年成功推出电动6倍系列镜头。这款镜头采用电动变焦设计,操作简便、速度快捷,极大地提高了拍摄效率。电动6倍系列镜头的全球上市,不仅进一步扩大了CBC的市场影响力,也为公司的未来发展奠定了坚实的基础。

通过以上五个故事,我们可以看到COMPUTAR公司(前身为CBC株式会社)在电子行业中的发展历程。从创立之初的艰苦创业,到逐步拓展国际市场;从手动变焦镜头的研制成功,到非球面高速镜头和电动6倍系列镜头的诞生与上市,每一步都凝聚着COMPUTAR人的智慧和汗水。正是这些不懈的努力和持续的创新,使得COMPUTAR在电子行业中脱颖而出,成为一家备受尊敬的企业。

Faraday Technology公司的发展小趣事

COMPUTAR公司的前身是日本CBC株式会社,成立于1925年,总部设立在繁华的东京。自创立之初,CBC便致力于光学技术的研究与应用,为后续的镜头制造奠定了坚实的基础。在随后的几十年里,CBC不断积累技术经验,逐步在光学领域建立起自己的声誉。

HBH-Microwave公司的发展小趣事

面对日新月异的电子技术和不断变化的市场需求,HBH-Microwave始终保持对技术创新的热情和投入。公司每年都会投入大量资金用于研发新产品和新技术,以确保在激烈的市场竞争中保持领先地位。同时,HBH还积极与高校和研究机构合作,共同开展前沿技术的探索和研究。这种持续的技术创新和研发投入为公司的长远发展提供了源源不断的动力。

Alpha 3 Manufacturing公司的发展小趣事

在技术创新的基础上,Alpha 3 Manufacturing公司开始积极拓展市场。公司参加了多个国际电子展会,与全球客户建立了广泛的联系。同时,公司还加强了对市场的调研和分析,针对不同地区和客户的需求,推出了定制化的产品和服务。这些举措不仅提高了公司的市场份额,还进一步提升了公司的品牌知名度和影响力。

ept Connectors公司的发展小趣事

EPT Connectors公司一直注重产品品质的管理和提升。公司建立了严格的质量管理体系,从原材料采购到产品制造、检测等各个环节都进行严格把关。同时,EPT还积极引进先进的生产设备和技术,不断提升产品的质量和性能。这些努力使得EPT的产品在市场上赢得了良好的口碑和客户的信任。许多知名电子企业都选择EPT作为他们的连接器供应商,这也进一步推动了EPT的发展。

问答坊 | AI 解惑

检测绝缘栅极双极型晶体管(IGBT)好坏的简易方法

1、判断极性首先将万用表拨在R×1KΩ挡,用万用表测量时,若某一极与其它两极阻值为无穷大,调换表笔后该极与其它两极的阻值仍为无穷大,则判断此极为栅极(G)。其余两极再用万用表测量,若测得阻值为无穷大,调换表笔后测量阻值较小。在测量阻值 ...…

查看全部问答>

很奇怪的问题 wince 串口测试应用程序 writefile(...)函数没有执行完就失败了,然后程序死掉了。

串口测试的writefile(...)函数没有执行完就失败了,没有任何返回结果。writefile的下一个语句做断点,没有执行到。 if(hComm!=INVALID_HANDLE_VALUE&&dwCharToWrite!=0)         {           &nbs ...…

查看全部问答>

终于研发成功

终于研发成功,cpu是s3c2410,64M   SDRAM,网口为cs8900 flash(k9f1208 64m)   实现了只用nand flash 就可以启动引导vxworks. 公司送bsp及全套开发文档 ,另可配公司的开发板 有意着QQ联系641328010 请注明 arm…

查看全部问答>

STC12LE5206AD 程序将引脚置为0 却检测到为高

有谁能够帮忙解决下啊? 本人qq:853887107…

查看全部问答>

RT_THREAD中的异常与中断

  异常是导致处理器脱离正常运行转向执行特殊代码的任何事件,如果系统不及时处理,系统轻则出错,重着导致系统毁灭性的瘫痪。所以正确地处理异常避免错误的发生是提高软件的鲁棒性重要的一方面,对于嵌入式系统更加如此。 异常可以分成两类 ...…

查看全部问答>

DIY导航避障车规整贴

DIY导航避障车小组今日下午展开第一次例会,在本次例会中大家集中讨论了无线的选择,避障的选择等等部分,并对小车进行了前景规划,以谷歌的自动驾驶车为终极目标,大家积极发言例会持续了一个半小时,并表示未来会采用各种新技术。下次再来把细节 ...…

查看全部问答>

11.06【每周讨论】软文——春风化雨、润物无声

您知道“软文”的含义吗?什么,不知道。赶紧百度一下吧,别被OUT了 [ 本帖最后由 longxtianya 于 2011-11-6 20:19 编辑 ]…

查看全部问答>

分享一些收集的msp430方面的书籍

最近接触了一下msp430的单片机从网上搜集了一些书籍希望对大家有帮助。…

查看全部问答>

泰克2012年度春季创新论坛北京站见闻

    4月24日阴雨天气,阿牛哥上午9点去北京朝阳区五洲皇冠大酒店参加泰克2012年度春季创新论坛。热情的工程师们朋友已经在会场里聆听泰克的测试测量行业趋势观点,泰克领先测试测量方案,还有一些工程师朋友在展厅参观泰克最新 ...…

查看全部问答>

全球智能机Q2出货1.5亿部 中兴进前五

本帖最后由 jameswangsynnex 于 2015-3-3 20:01 编辑 …

查看全部问答>