久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3050|回復(fù): 13
打印 上一主題 下一主題
收起左側(cè)

電解電容放電時間怎么計算

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:960619 發(fā)表于 2022-9-14 16:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
5V2200UF的電容,后面帶0.025A的負(fù)載,這樣在斷開電源的情況下還能維持電路多久時間,夠不夠芯片做掉電存儲動作
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:624769 發(fā)表于 2022-9-14 16:28 | 只看該作者
進(jìn)入掉電中斷后, 先關(guān)負(fù)載,再做存儲動作。
回復(fù)

使用道具 舉報

板凳
ID:123289 發(fā)表于 2022-9-14 16:45 | 只看該作者
電容上的電荷:Qc=U*C=5V*2200uF
負(fù)載使用電量:Q = I*t = 0.025A * t
假設(shè):電壓降到3.6V停止工作,則電容可提供的電荷 =Qc * (1-3.6/5)。
以下,樓主自己算吧。

夠不夠做掉電存儲,還取決于存數(shù)的多少及技巧。通常夠了。
回復(fù)

使用道具 舉報

地板
ID:1044751 發(fā)表于 2022-9-14 16:55 | 只看該作者
Q=CU=0.011C
t=Q/I=0.44s
一般的芯片夠了,芯片一般都是微秒級的
回復(fù)

使用道具 舉報

5#
ID:712493 發(fā)表于 2022-9-14 19:47 來自手機(jī) | 只看該作者
你這0.011電荷怎么算的
回復(fù)

使用道具 舉報

6#
ID:960619 發(fā)表于 2022-9-14 20:09 | 只看該作者
羚羊樹懶書架 發(fā)表于 2022-9-14 16:55
Q=CU=0.011C
t=Q/I=0.44s
一般的芯片夠了,芯片一般都是微秒級的

0.44S是放電放完的時間,芯片電壓過低不可能工作啊
回復(fù)

使用道具 舉報

7#
ID:624769 發(fā)表于 2022-9-14 20:22 | 只看該作者
baobao125 發(fā)表于 2022-9-14 20:09
0.44S是放電放完的時間,芯片電壓過低不可能工作啊

所以,算這些沒有意義。 關(guān)鍵是要先關(guān)閉 負(fù)載,再開始保存數(shù)據(jù),
從低壓中斷觸發(fā)(3.8V)開始,只要關(guān)了 負(fù)載,哪怕你只有 47uf 的電容,也足夠?qū)?50個字節(jié)以上 到片內(nèi)Eeprom 了。
回復(fù)

使用道具 舉報

8#
ID:213173 發(fā)表于 2022-9-14 20:53 | 只看該作者
根據(jù)壇友的示例經(jīng)修改實測成功,利用編程技巧不需要多大電容。TX-1C實驗板上外圍元件不少,電源濾波電容僅10uf,能夠掉電后可靠保存2個字節(jié)(沒有做保存更多字節(jié)試驗)。測試掉電后能維持2.5ms。如需要保存更多字節(jié)應(yīng)該要適當(dāng)增大電容。
  1. //測試條件:TX-1C實驗板,MCU型號IAP15W4K58S4,系統(tǒng)時鐘11.0592MHz
  2. //注意:測試本示例時,需在ISP下載時將低壓復(fù)位功能和低壓時禁止EEPROM操作關(guān)閉

  3. #include "STC15Fxxxx.H"
  4. #include <intrins.h>                                //庫頭文件
  5. #define uint unsigned int                         //宏定義數(shù)據(jù)類型uint
  6. #define uchar unsigned char                 //宏定義數(shù)據(jù)類型uchar
  7. //宏定義ISP的操作命令
  8. #define CMD_IDLE    0               //空閑模式
  9. #define CMD_READ    1               //IAP字節(jié)讀命令
  10. #define CMD_PROGRAM 2               //IAP字節(jié)編程命令
  11. #define CMD_ERASE   3               //IAP扇區(qū)擦除命令
  12. #define ENABLE_IAP  0x82            //CPU的等待時間
  13. #define IAP_ADDRESS 0x0800                        //測試地址
  14. sbit duan=P2^6;
  15. sbit wein=P2^7;

  16. //順序共陰極數(shù)碼管段碼表,段碼a-h順序接PX0-PX7
  17. uchar code table[]={//共陰數(shù)碼管段碼"0~f-."
  18.                 0x3f,0x06,0x5b,0x4f,
  19.                 0x66,0x6d,0x7d,0x07,
  20.                 0x7f,0x6f,0x77,0x7c,
  21.                 0x39,0x5e,0x79,0x71,0x40,0x80};
  22. uchar data dis_buf[8];                //緩存數(shù)組
  23. uint num,sec;
  24. uchar i;

  25. void Timer0Init();                                        //定時器初始化聲明
  26. void IapIdle();                                                //關(guān)閉IAP/EEPROM
  27. uchar IapReadByte(uint addr);                //讀取EEPROM數(shù)據(jù)
  28. void IapProgramByte(uint addr, uchar dat);//寫入EEPROM數(shù)據(jù)
  29. void IapEraseSector(uint addr);                //擦除EEPROM數(shù)據(jù)

  30. void main()                                                       
  31. {
  32.         P0M0 = 0x00;
  33.         P0M1 = 0x00;
  34.         P1M0 = 0x00;
  35.         P1M1 = 0x00;
  36.         P2M0 = 0x00;
  37.         P2M1 = 0x00;
  38.         P3M0 = 0x00;
  39.         P3M1 = 0x00;
  40.         P4M0 = 0x00;
  41.         P4M1 = 0x00;
  42.         P5M0 = 0x00;
  43.         P5M1 = 0x00;
  44.         P6M0 = 0x00;
  45.         P6M1 = 0x00;
  46.         P7M0 = 0x00;
  47.         P7M1 = 0x00;
  48.         sec=IapReadByte(IAP_ADDRESS)<<8|IapReadByte(IAP_ADDRESS+1);//讀取保存的數(shù)據(jù) 用時11.75us
  49.         if(sec==0xffff)//如果沒有保存數(shù)據(jù)
  50.                 sec=0;//變量為0
  51.         else IapEraseSector(IAP_ADDRESS);//擦除數(shù)據(jù),為下次掉電保存數(shù)據(jù)做準(zhǔn)備

  52.         PCON &= 0xDF;//清0掉電標(biāo)志
  53.         ELVD = 1;//開低壓中斷
  54.         EA   = 1;//開總中斷

  55.         Timer0Init();//初始化定時器

  56.         while(1)
  57.         {
  58.                 if(TF0)//查詢T0中斷請求標(biāo)志
  59.                 {               
  60.                         TF0=0;//T0中斷請求標(biāo)志清0
  61.                         if(++num>=1000)//1秒
  62.                         {
  63.                                 num=0;                               
  64.                                 sec++;
  65.                         }
  66.                         dis_buf[0]=table[sec/10000%10];
  67.                         dis_buf[1]=table[sec/1000%10];
  68.                         dis_buf[2]=table[sec/100%10];
  69.                         dis_buf[3]=table[sec/10%10];
  70.                         dis_buf[4]=table[sec%10];
  71.                         //5位數(shù)碼管動態(tài)顯示
  72.                         P0=0x00;duan=1;duan=0;
  73.                         P0=~(0x01<<i);wein=1;wein=0;
  74.                         P0=dis_buf[i];duan=1;duan=0;
  75.                         i=++i%5;
  76.                 }
  77.         }
  78. }

  79. void Timer0Init(void)        //1毫秒@11.0592MHz
  80. {
  81.         AUXR |= 0x80;                //定時器時鐘1T模式
  82.         TMOD &= 0xF0;                //設(shè)置定時器模式
  83.         TL0 = 0xCD;                        //設(shè)置定時初始值
  84.         TH0 = 0xD4;                        //設(shè)置定時初始值
  85.         TF0 = 0;                        //清除TF0標(biāo)志
  86.         TR0 = 1;                        //定時器0開始計時
  87. }
  88. /*----------------------------
  89.         關(guān)閉IAP功能
  90. ----------------------------*/
  91. void IapIdle()
  92. {
  93.     IAP_CONTR = 0;                  //關(guān)閉IAP功能
  94.     IAP_CMD = 0;                    //清除命令寄存器
  95.     IAP_TRIG = 0;                   //清除觸發(fā)寄存器
  96.     IAP_ADDRH = 0x80;               //將地址設(shè)置到非IAP區(qū)域
  97.     IAP_ADDRL = 0;
  98. }
  99. /*----------------------------
  100. 從ISP/IAP/EEPROM區(qū)域讀取一字節(jié)
  101. ----------------------------*/
  102. uchar IapReadByte(uint addr)
  103. {
  104.     uchar dat;                       //數(shù)據(jù)緩沖區(qū)

  105.     IAP_CONTR = ENABLE_IAP;         //使能IAP
  106.     IAP_CMD = CMD_READ;             //設(shè)置IAP命令
  107.     IAP_ADDRL = addr;               //設(shè)置IAP低地址
  108.     IAP_ADDRH = addr >> 8;          //設(shè)置IAP高地址
  109.     IAP_TRIG = 0x5a;                //寫觸發(fā)命令(0x5a)
  110.     IAP_TRIG = 0xa5;                //寫觸發(fā)命令(0xa5)
  111.     _nop_();                        //等待ISP/IAP/EEPROM操作完成
  112.     dat = IAP_DATA;                 //讀ISP/IAP/EEPROM數(shù)據(jù)
  113.     IapIdle();                      //關(guān)閉IAP功能
  114.     return dat;                     //返回
  115. }
  116. /*-------------------------------
  117. 寫一字節(jié)數(shù)據(jù)到ISP/IAP/EEPROM區(qū)域
  118. --------------------------------*/
  119. void IapProgramByte(uint addr, uchar dat)
  120. {
  121.     IAP_CONTR = ENABLE_IAP;         //使能IAP
  122.     IAP_CMD = CMD_PROGRAM;          //設(shè)置IAP命令
  123.     IAP_ADDRL = addr;               //設(shè)置IAP低地址
  124.     IAP_ADDRH = addr >> 8;          //設(shè)置IAP高地址
  125.     IAP_DATA = dat;                 //寫ISP/IAP/EEPROM數(shù)據(jù)
  126.     IAP_TRIG = 0x5a;                //寫觸發(fā)命令(0x5a)
  127.     IAP_TRIG = 0xa5;                //寫觸發(fā)命令(0xa5)
  128.     _nop_();                        //等待ISP/IAP/EEPROM操作完成
  129.     IapIdle();                      //關(guān)閉IAP功能
  130. }
  131. /*----------------------------
  132. ISP/IAP/EEPROM扇區(qū)擦除
  133. ----------------------------*/
  134. void IapEraseSector(uint addr)
  135. {
  136.     IAP_CONTR = ENABLE_IAP;         //使能IAP
  137.     IAP_CMD = CMD_ERASE;            //設(shè)置IAP命令
  138.     IAP_ADDRL = addr;               //設(shè)置IAP低地址
  139.     IAP_ADDRH = addr >> 8;          //設(shè)置IAP高地址
  140.     IAP_TRIG = 0x5a;                //寫觸發(fā)命令(0x5a)
  141.     IAP_TRIG = 0xa5;                //寫觸發(fā)命令(0xa5)
  142.     _nop_();                        //等待ISP/IAP/EEPROM操作完成
  143.     IapIdle();                      //關(guān)閉IAP功能
  144. }
  145. void PowerLost() interrupt 6                //剩余電量從中斷開始到完全斷電2.5ms
  146. {
  147.         EA = 0;                                                //關(guān)閉總中斷
  148.         P0M1 = 0xff;                                //所有端口高阻用時2.75us
  149.         P1M1 = 0xff;
  150.         P2M1 = 0xff;
  151.         P3M1 = 0xff;
  152.         P4M1 = 0xff;
  153.         P5M1 = 0xff;
  154.         P6M1 = 0xff;
  155.         P7M1 = 0xff;
  156.         IapProgramByte(IAP_ADDRESS,sec>>8);//寫數(shù)據(jù)高8位到EEPROM
  157.         IapProgramByte(IAP_ADDRESS+1,sec);//寫數(shù)據(jù)低8位到EEPROM  寫兩個字節(jié)用時215.25us

  158.         while((PCON & 0x20) != 0)         //復(fù)查低壓標(biāo)志
  159.         {
  160.                 PCON &= 0xDF;                  //清除低壓標(biāo)志
  161.                 _nop_();               
  162.                 _nop_();                            //坐等掉電
  163.         }
  164.         IAP_CONTR = 0x20;                 //發(fā)現(xiàn)是誤報,重啟單片機(jī),恢復(fù)正常工作
  165. }
復(fù)制代碼

回復(fù)

使用道具 舉報

9#
ID:960619 發(fā)表于 2022-9-14 21:10 | 只看該作者
188610329 發(fā)表于 2022-9-14 20:22
所以,算這些沒有意義。 關(guān)鍵是要先關(guān)閉 負(fù)載,再開始保存數(shù)據(jù),
從低壓中斷觸發(fā)(3.8V)開始,只要關(guān)了 ...

我是先關(guān)負(fù)載,再存儲的。用1MS中斷掃描IO口電平,因為電容前面有個二極管,后面穩(wěn)壓,想著斷電后應(yīng)該是IO口先讀取到低電平,比低壓中斷有更多的時間用于存儲,穩(wěn)妥些。但stc單片機(jī)有時候就是到擦除完后就不工作了。有時候還是可以完成存儲的。 只用12M的頻率
回復(fù)

使用道具 舉報

10#
ID:879809 發(fā)表于 2022-9-14 23:39 | 只看該作者
跟工作頻率無關(guān),flash寫一個字節(jié)或者寫一個頁面需要不到10ms時間,單片機(jī)執(zhí)行時間可以忽略不計,完全夠用了。
回復(fù)

使用道具 舉報

11#
ID:624769 發(fā)表于 2022-9-15 08:14 來自手機(jī) | 只看該作者
baobao125 發(fā)表于 2022-9-14 21:10
我是先關(guān)負(fù)載,再存儲的。用1MS中斷掃描IO口電平,因為電容前面有個二極管,后面穩(wěn)壓,想著斷電后應(yīng)該是I ...

你發(fā)現(xiàn)斷電了,再去擦除eeprom的做法是不可取的,雖然不知道你是什么型號的單片機(jī),但是,往eeprom寫數(shù)據(jù)的話,一個字節(jié)2us,50個字節(jié)也只要0.1ms,而擦除一個扇區(qū),基本要20ms以上,發(fā)現(xiàn)斷電,再浪費這寶貴的20ms是極端不合理的。最后,檢測前端斷電,并不見得比掉電中斷更及時,先不說,你的1ms間隔掃描低電平,是否比發(fā)現(xiàn)低于3.8v來的更及時,前段也有容性的吧?在單片機(jī)功耗大的情況下,單片機(jī)停振了,前端還沒達(dá)到低電平的標(biāo)準(zhǔn),不是不可能。個人的一些經(jīng)驗,僅供參考。
回復(fù)

使用道具 舉報

12#
ID:1044792 發(fā)表于 2022-9-15 08:42 | 只看該作者
假如降至3V仍可維持工作,可以用如下式子估算:(5-3)* 0.0022(電容量) /0.025, 約0.17s,
回復(fù)

使用道具 舉報

13#
ID:1044792 發(fā)表于 2022-9-15 08:43 | 只看該作者
假如至3V仍可工作,持續(xù)時間 則可用下式估算:(5-3)*0.0022 /0.025,約0.17S,
回復(fù)

使用道具 舉報

14#
ID:807591 發(fā)表于 2022-9-15 09:16 | 只看該作者
有計算電容放電的在線工具網(wǎng)站,,另外找個示波器測一下就解決問題了,為什么要去算? 實際測量才是關(guān)鍵,測完可以考慮電容加大一點,以防時間久了電容容量降低
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 黑人精品 | 久久精品久久久 | 日日干夜夜干 | 久久久妇女国产精品影视 | 国产高清精品一区二区三区 | 亚洲男人网 | 精品1区2区3区4区 | 欧美13videosex性极品 | 国产精品成人一区二区 | 成年人视频免费在线观看 | www.国产日本| 国产分类视频 | 欧美久久一区二区 | 久久天天躁狠狠躁夜夜躁2014 | 成人精品毛片国产亚洲av十九禁 | 日韩精品一区二 | av黄色在线| 91久久电影| 久久精品一级 | 日韩在线一区二区三区 | 免费看黄色视屏 | 美女福利视频网站 | 精品国产乱码一区二区三区 | 日韩亚洲视频 | 国产成人一区二区三区精 | av电影手机在线看 | 黄色一级大片在线免费看产 | 激情毛片 | 日韩欧美国产精品一区二区三区 | 日韩欧美三级电影 | 91欧美精品成人综合在线观看 | 一级免费毛片 | 亚洲日本欧美日韩高观看 | 久久99精品久久久久久琪琪 | www久久av| 国产情品 | 中文字幕在线视频观看 | 99精品99| 视频在线一区二区 | 久久国产婷婷国产香蕉 | 人人草人人干 |