0

关于投票
避免MCU死机后LED条屏某行烧屏的电路(作者 pheavecn)

特点是用三极管构成。

看到菜农发的74HC123应用,就把这个电路共享给大家

原图:

http://bbs.21ic.com/upfiles/img/200711/20071110224816960.gif

谢谢pheavecn

系统分类: 汽车电子
用户分类: 非典应用怪潭
标签: 无标签
来源: 转贴
发表评论 阅读全文(240) | 回复(0)

0

关于投票
苍天呀!!!maychang真不明白俺"月亮的心"~~~倒塌万年!!!

原贴讨论入口: http://bbs.21ic.com/club/bbs/bbsview.asp?essenceID=8857

hotpower 发表于 2007-11-9 13:09 电源技术 ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖

36楼: 苍天呀!!!maychang真不明白俺"月亮的心"~~~倒塌万年!!!

看来俺没说明白~~~

通俗说:

本例只需控制光耦的正负极,PWM信号控制正极,负极直接接地.---对否???

那么我们只要不让关耦在死机时负极为高电平或高阻即可保证被控系统关断.---对否???

故问题的重点只要将关耦的负极受控即可.

采用将123的输出接关耦的负极,平时或出错时非低电平,有PWM信号(时刻翻转!!!)时关耦的负极为低电平.

将PWM的信号接入123的输入!!!---这个会影响PWM脉宽吗???难道123要倒"灌水"不成?????????

将RC取值>=PWM的周期,实际只要大于PWM的工作脉宽即可.

在无PWM信号或PWM信号没变化时,由于123的输入脉冲没变化,故123的输出!Q比为高电平.---对否????

当有PWM有效信号时,123立即展宽输出.RC开始"定时"
  有PWM无效信号时,123由于RC的展宽继续延时...

再有PWM有效信号时,123立即展宽输出(实际已在输出).RC重新开始"定时"
  有PWM无效信号时,123由于RC的展宽继续延时...

死机后:
  有PWM无效信号时,123由于RC的展宽继续延时...此时123保持输出.
  有PWM无效信号时,123由于RC的展宽延时停止...此时123切断输出!!!!

哈哈~~~对否?????????

总之它和我们说的软件控制的"硬件狗"是不同的~~~
软件的要"喂狗"(指令)---与MCU的喂狗间隔有关!!!
硬件的也"喂狗"(信号)---与MCU的喂狗间隔无关!!!
                       与信号的翻转间隔有关!!!

俺的"月亮之心"表白的"清晰"吗????

系统分类: 电源技术
用户分类: 非典应用怪潭
标签: 无标签
来源: 整理
发表评论 阅读全文(331) | 回复(0)

0

关于投票
模拟菜鸟正解PWM失控带来的安全隐患和"治疗方法"

更多讨论见: http://bbs.21ic.com/club/bbs/ShowAnnounce.asp?v=&ID=2737315

模拟菜鸟正解PWM失控带来的安全隐患和"治疗方法"
hotpower 发表于 2007-11-9 19:27 电源技术 ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖举报该贴

和"月亮人"maychang的表白中,俺还是坚持74HC123.因为它应用更加广泛.

在本例中,由于昨晚到现在才迷糊了3小时,实在来不及表白第'3'个例子.

实际是首例中设置RC时间常数的技巧和它所带来的:
1.防止死机即PWM刚好锁定到PWM工作电平时自动断开PWM控制.
2.防止电流电压采样失控或误差导致PWM工作电平趋于满PWM周期时自动限制PWM脉宽.

大家知道123的脉宽是收到RC的控制的,而与PWM工作电平宽度无关!!!
它的脉宽起始位置实际就是PWM的触发位置(有效的跳变沿).

当我们设计PWM工作电平宽度为PWM周期的3/4时,RC时间很容易通过阻容元件决定.

这样就保证了PWM工作电平宽度失控时永远不会超过RC时间!!!

1.PWM工作电平宽度<=RC时间时一切正常.(差别见下面的表白)

2.RC时间<PWM工作电平宽度<PWM周期时,这时实际输出的是RC时间!!!

3.PWM工作电平宽度>=PWM周期时,实际就是不工作或死机.这个太简单就不再表白了.

4.PWM周期<RC时间<2*PWM周期时,前贴已表白.

本贴主要讨论1,2与3,4最大的区别.

3,4主要是从替代GND1的观点来考虑的,即正常工作保护机制不作用,出错作用.
而1,2是从更高的层次来考虑问题的~~~

可能会有人质问PWM触发"有时延",我就会晕了~~~

因为RC时间为0时,74HC123的输出输入是一致的,它实际就是一般的门电路.

不知我的PWM失控带来的安全隐患和"治疗方法"是否"正界"???

下帖俺将回复菜鸟和494,3842等PWM器件.

哈哈~~~这些菜农俺都用过~~~但俺喜欢用MCU/ARM/DSP上的PWM模块~~~

系统分类: 电源技术
用户分类: 非典应用怪潭
标签: 无标签
来源: 原创
发表评论 阅读全文(478) | 回复(0)

0

关于投票
关于电流分档测试提高分辨率的技巧问题
贴子主题:请问有谁用ATtiny26做过显示10000个数的AD转换? 回复数:13 (其中0条已删除)
相关链接: 本贴没有相关链接
【楼主位】 Qiuxian
积分:20
派别:
等级:------
来自:
我要做一个100A的功率表,显示电流的精度是0.01A,这样就要显示10000个数。怎么用Tiny26实现呢?

 

【12楼】 hotpower 菜农

积分:2119
派别:
等级:------
来自:西安大雁塔村
100A在0.001欧姆上将只能会产生0.1V的压差.
如果采用20倍的差分增益,电压基准应该选用0.1*20=2V.
(若选用内部2.56V基准会比2V的分辨率更低)

即形成简单的比例关系:
电流-->压  差-->ADC结果(0~1023)
100A-->    2V-->1023
  1A--> 0.02V-->10.23
0.1A-->0.002V-->1.023

即此时(在最大100A)的分辨率为0.1A.

所以要想得到楼主说的"电流的精度是0.01A",难~~~

而且即使用M16L(200倍的差分增益)也难,因为它的ADC对于差分而言实际是9位的.

0.01A~100A的跨度(量程)太大,分档(采样电阻不同)测试还勉强可以~~~

__________________________
●█〓██▄▄▄▄▄▄ ●●●●●●→ '''',,;;
▄▅██████▅▄▃▂ 灌水入坛,传播非典!; 
██████████████ '''',,,;,.,,,;,;;
◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲◤ '''',,,;,.,,,;,;;
','''',''',,,;,.',''',,',,,'.╭⌒╮⌒╮,,',,;;
⌒╮'╭⌒╮⌒╮.╭WWWW╮'''',,',,',,.,.,,.,.;;
╱◥██◣'';',( ●_●),,,,东戳一下西顶一下;;
︱田︱田田| ⌒╮''/▇\ '','''',,,;,.,,,;,.,,;;
╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬
2007-08-19,03:19:28
资料 邮件 编辑 删除
【13楼】 hotpower 菜农

积分:2119
派别:
等级:------
来自:西安大雁塔村
关于电流分档测试提高分辨率的技巧问题:

大家都知道电压是分档并联的关系,那么电流肯定是串联分档了~~~

所以我们可以采用"程序分档":

在电流回路中串联几个不同阻值的采样电阻,例如0.001欧姆和0.01欧姆.
(当然如果你愿意,还可继续串联0.2欧姆或00.5欧姆的采样电阻等
只要串联的总压差不超过你所许可的范围即可)

AD电路用2组差分电路组成.

这里再把0.01欧姆的对应关系列出:

10A在0.01欧姆上将只能会产生0.1V的压差. 
如果采用20倍的差分增益,电压基准应该选用0.1*20=2V. 
(若选用内部2.56V基准会比2V的分辨率更低) 

即形成简单的比例关系: 
电 流-->压  差-->ADC结果(0~1023) 
  10A-->    2V-->1023 
   1A-->  0.2V-->102.3 
 0.1A--> 0.02V-->10.23 
0.01A-->0.002V-->1.023 

即此时(在最大10A)的分辨率为0.01A. 

故在  10A~100A时采用0.001欧姆对应的差分电路测试.
  在0.01A~ 10A时采用 0.01欧姆对应的差分电路测试.

"程序分档":

每次先测测试0.01欧姆对应的差分电路再测试0.01欧姆对应的差分电路.
前者溢出时AD转换结果为0x3ff.!!!后者此时应该大于等于102.3.

所以就很容易实现"程序分档",完成"电子切换"~~~

注意2个测试通道的临界点(10A)问题!!!

故实际应用中选取(随便点,肯定要取<10A):
  在0.01A~ 9.5A时采用 0.01欧姆对应的差分电路测试.
  在  9.5A~100A时采用0.001欧姆对应的差分电路测试.

实际上小电流档的结果为1023时结果就不对了(可能遇到对的一次).应该做切换~~~

系统分类: 测试测量
用户分类: 非典应用怪潭
标签: 无标签
来源: 原创
发表评论 阅读全文(1103) | 回复(1)

0

关于投票
俺来非典非典---利用UDRIE实现"手动触发"
hotpower 发表于 2007-8-18 14:34 AVR 单片机 ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖

楼主: 倒塌了~~~ 吵吧闹吧.俺来非典非典---利用UDRIE实现"手动触发"

在51中我们常用TI来认为地"手动触发"发送中断,使程序未等发送结束就会进入
串口的发送中断.
即TI = 1;//"手动触发"发送中断

这种"手动触发"发送中断机制的最大好处是发送中断处理程序与发送命令程序分离.互不干扰,发送命令程序也不需要知道发送是如何进行或实现的.

在LPCARM中,俺模拟51实现了类似功能:
    VIC->SoftInt = (1 << VICIntSel_UART0);//软件中断模拟激活UART0中断

在AVR上实际也能实现如此功能,如下图所述.
UCSRB |= (1 << UDRIE);//"手动触发"发送中断(发送数据寄存器空中断)

在中断中处理如下:
#pragma vector="USART"_UDRE_vect
extern "C" __interrupt void UartTxUDREISR(void)
{
    if (Uart.SendWritePtr != Uart.SendReadPtr) {
        UDR = Uart.SendBuffer[Uart.SendReadPtr ++];
        UCSRB |= (1 << UDRIE);
    }
    else
    {
        UCSRB &= ~(1 << UDRIE);
    }
}

#pragma vector="USART"_TXC_vect
extern "C" __interrupt void UartTxISR(void)
{
    if (Uart.SendWritePtr != Uart.SendReadPtr) {
        UDR = Uart.SendBuffer[Uart.SendReadPtr ++];
        UCSRB |= (1 << UDRIE);
    }
}


总结:
    这种"手动触发"的好处可以不必在发送处要在发送缓冲区内取出首字节
来发送出去,这样我们就没必要知道缓冲区的读写指针的位置和大小等.

点击看大图

签名:

●█〓██▄▄▄▄▄▄ ●●●●●●→ ''''╭WWWW╮
▄▅██████▅▄▃▂ 灌水入坛传播非典 ( ●_●)
██████████████ '''',,,;,;,;'''/▇\''
◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲◤ 东戳西顶一片天/MMMM\
点击遨游水上蔬菜批发市场


打造菜农最倒塌的BLOG
系统分类: 单片机
用户分类: 非典应用怪潭
标签: 无标签
来源: 原创
发表评论 阅读全文(692) | 回复(0)

1

关于投票
写EEPROM最好在开机初始化时写入(非典)
hotpower 发表于 2007-7-9 20:13 侃单片机 ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖

7楼: 写EEPROM最好在开机初始化时写入(非典)

虽然EEPROM都号称10万次左右,可又有谁相信和有几个尝试过写报废的滋味???

我认为EEPROM只在工作结束时写入一次即可,工作期间到RAM内取即可.

但要"只写入一次"难度很大.

因为写入EEPROM是需要能量的,即必须有电能才能写入.

真的掉电时,能量会很快耗尽,但RAM还能抵抗一阵.

如果系统加法拉电容或大电容支撑,且再次上电时RAM中的数据不会丢失,

那么就可以完成"开机写入EEPROM"的愿望.

可能有人不解这是为何???

因为很多系统数据丢失一点问题不大,而且你也可在工作期间保存数据.

这样做只是为了防止长时间的掉电导致RAM数据丢失.

现在RAM数据基本上都可在2.7V以上保持,有的MCU会更低.

而写入EEPROM的电压和所需能量要比RAM高许多,所以我喜欢"开机写入EEPROM"

签名:

●█〓██▄▄▄▄▄▄ ●●●●●●→ ''''╭WWWW╮
▄▅██████▅▄▃▂ 灌水入坛传播非典 ( ●_●)
██████████████ '''',,,;,;,;'''/▇\''
◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲◤ 东戳西顶一片天/MMMM\
点击遨游水上蔬菜批发市场


打造菜农最倒塌的BLOG
系统分类: 单片机
用户分类: 非典应用怪潭
标签: 无标签
来源: 原创
发表评论 阅读全文(952) | 回复(6)
总共 , 当前 /