EDN China > 其它文章 > 微处理器与DSP > 正文
?

(多图) 基于MC9S08QG4的烟雾传感器应用设计

来源:師英 飞思卡尔半导体公司8/16位应用工程師  来源:中国电子器材有限总公司提供?? 2007年11月01日 ?? 收藏0


  ·使用内部模块的电流供应

  每个内部模式在工作时都从电源获得电流,可以禁止某些未使用的模块以节约电源,但是已使用的模块的电流供应必须考虑系统的电源损耗,以下是QG4内部模块的电流供应列表。

  ·RTI: 300 nA
  ·LVD: 70 uA
  ·ACMP: 20 uA
  ·ADC: 120 uA(取样时间长,低电流模式)
  ·OSC: 5 uA(范围低、低电源模式)
  ·IRG: 100 uA
  ·FLL: 210 uA ~ 300 uA(根据频率和电压的供应决定)
  ·FLL: 210 uA ~ 300 uA(根据频率和电压的供应决定)

  MCU的I/O 针脚必须正确设置来节约电源。所有未使用的I/O必须通过挂起或下拉的输入来设置,或

简单的输出模式可输出禁止外部电路的状态。

  带有闪存的EEPROM仿真

  烟雾探测器使用EEPROM存储数据,如地址和系统配置。16位对于这些数据足够了。QG4的闪存可轻松用于模拟EEPROM。通过内部Vpp充电泵,无需外部Vpp。QG4的闪存可擦写/编程10000次,是HC08 Flash MCU的10倍还多。而且建议采用一些解决方案来延长闪存的生命周期。

  ·闪存擦写/编程代码样本

  如何消除/编程闪存的样本代码可在CW5·x的样本目录中找到。

基于MC9S08QG4的烟雾传感器应用设计


  在Vpp状态时,CPU使用不安全,那些闪存擦写/编程代码必须在RAM上执行,而不是在闪存上执行,为此用户可以限定一个阵列,包含上述 C语言源代码所编辑的二位代码,并且称RAM中的这个阵列为子程序。

基于MC9S08QG4的烟雾传感器应用设计


  PGM[21]总是闪存操作命令。以下macros操作可以被定义以使RAM中的这些代码更容易做为子程序而被调用。

基于MC9S08QG4的烟雾传感器应用设计


  以下实例显示如何调用函数。

基于MC9S08QG4的烟雾传感器应用设计


  在闪存可以正确擦写或编程前,FCLK必须设置在150KHz到200 KHz之间的正确值。

  ·在227·5 KHz FCLK 下正确操作。

  QG4的Ffclk特性是在150KHz到200 KHz之间。FCDIV的注册器必须被写入正确的值以设置正确的Ffclk。如果是PRDIV8,此寄存器的六位必须被清除。

  ·fFCLK = fBus / (DIV + 1)

  通过外部455 KHz FBE模式,在此模式中总线频率是227·5KHz。Ffclk只能被设置为227·5 KHz(不分开)或113·75 KHz(两分),它最接近特定的Ffclk。

  对于可靠的操作来说,建议采用带有113·75 KHz Ffclk的突发编程模式闪存。请注意突发编程与byte编程略有不同,所以源代码应该为突发模式重写。

  另一方面,当闪存编程/擦写时电源消耗更大,FLL加法器的供应电流可以被忽略,所以另一个建议是使FLL获得更高的总线频率,然后在完成闪存操作后回到正常的设置。

  ·模拟EEPROM的生命周期延长

  闪存只能被擦除为页。QG4闪存的页面大小是512个字节,由于只有少量字节用于烟雾探测器,所以可采用一些解决方案来延长模拟EEPROM的生命周期。解决方案之一就是存储记录数据在整个EEPROM上(参考图5)。每个记录有n个字节数据和1个字节标记组成,这个标记字节说明这n+1个字节地址是否被使用。如果没被使用,用户代码可将新的数据写入此位置;如果已被使用,那么将数据写入下一个位置。当阅读虚拟EEPROM时,用户代码应该首先检测这个标记,然后从最后一个已使用位置上读取数据,它包含最新的数据。当所有的地址(页面尺寸/记录尺寸)被使用时,下一个写操作应该从页面的第一个地址重新开始,结果闪存这一页的生命周期就被(页面尺寸/记录尺寸)成倍延长了。

图5存储配置数据作为记录


  如果15个字节被要求存储地址代码和配置数据,那么要使用额外的一个字节作为标记,所以记录的尺寸是16个字节,一页可被使用512/16=32次,其生命周期可延长至32*100,000=3,200,000循环。

  ·当闪存擦写/重新编程时的电流

  当删除/编程闪存时要考虑提供电流。当Vdd = 3·2V, Ffclk = 227·5 kHz,擦除页使用5·78 mA,并且花费4000Tfcyc,也就是17·58 ms。

表3闪存编程/擦写时间


  ·闪存块保护

  由于Flash编程/删除代码包括在用户代码中,所以闪存必须被块保护以避免由于程序运行错误所导致的意外内存操作。要块保护闪存,用最后一个未被保护内存的地址来设置NVPROT寄存器。例如,要通过0xFFFF保护0xFA00,0xF9FF是最后一个未保护地址,所以0xF8必须向NVPROT写为15位到9位的内存地址(8位到0位都是逻辑1)。


?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

MC9S08QG4? 烟雾传感器? 微控制器? 火警安全系统?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈