10245|29

327

帖子

0

TA的资源

纯净的硅(高级)

楼主
 

【求助】想做个万年历,正在构想。 [复制链接]

<div><b>【上下文】</b></div>打算用超级电容+太阳能电池供电,所以功率一定要小。本来考虑AVR的,后来欣喜的发现了LPC111x系列。<div>打算用12864的液晶,能够显示基本的时间和日期(公历农历),还能够每天显示几个位图,可以是一些小幽默什么的。</div><div>最好能够加入测光还有测温的感应器件,能够显示光线是否适合读书上网。</div><div><meta http-equiv="content-type" content="text/html; charset=utf-8"><span class="Apple-style-span" style="line-height: 22px; "><div style="word-wrap: break-word; line-height: normal; ">除了LPC1114以外,时钟、闪存、图形液晶的选型都是一头雾水,主要是功耗的限制。</div><div style="word-wrap: break-word; line-height: normal; ">假设10法拉是电容的极限,最少在黑暗的条件下坚持20小时,工作电压是2.7~3.6V的话,平均工作电流要限制在0.125mA以内……</div></span></div><div><meta http-equiv="content-type" content="text/html; charset=utf-8"><br class="Apple-interchange-newline">忘了声明,单片机方面我是菜鸟,除了大学里学的8051以外没有任何经验(大学用编码器锁存器做过简单的数字抢答器,和单片机没任何关系)</div><div>编程方面会用JAVA和Python,面对C应该不是很痛苦。</div><div><br></div><div><b>【求助】</b></div><div>1、请问有没有一种12864图形液晶可以用很低的功耗维持当前的画面呢?</div><div>2、如果有,那么时钟芯片可以每几十秒唤醒MCU然后刷新画面吗?</div><div>3、如果没有,除了把电容换成电池以外还有其他的可能设计吗?</div><div>4、另外请推荐一下比较容易上手的时钟IC和flash,flash4MB就足够了。</div><div>5、网上看到一种串口Flash,M25P32这种型号,读的电流约8mA,不知道是否容易入门……</div><div><br></div><div><b>【这里留给开发过程】</b></div><div><br></div><div><b>【结束】</b></div><div>打算30天左右做出来,外壳估计会很头疼。先感谢各位路过的、顶贴的和回复的大侠了,这厢有礼了。</div>
此帖出自NXP MCU论坛

最新回复

♡;  详情 回复 发表于 2012-12-6 16:58
点赞 关注
个人签名Python全文搜索引擎:<url>http://code.google.com/p/ming-search/</url>
 

回复
举报

327

帖子

0

TA的资源

纯净的硅(高级)

沙发
 
看到ZLG的文档中有使用MX25L1605的介绍,flash可以考虑这个。
时钟IC在网上DS1302的资料挺多滴。
功耗方面考虑用段式液晶+12864了,平时只通过段式液晶显示时间,MCU工作在最低的频率。激活时再使用12864,第一屏显示基本的日期等,然后是几页位图。
还没开始,系统复杂性先上去了……

[ 本帖最后由 elulis 于 2010-10-30 06:31 编辑 ]
此帖出自NXP MCU论坛
 
个人签名Python全文搜索引擎:<url>http://code.google.com/p/ming-search/</url>
 
 

回复

327

帖子

0

TA的资源

纯净的硅(高级)

板凳
 
买了超级便宜的NanoM0,和两个LED玩
下一步就是等液晶到手,然后测功耗……
此帖出自NXP MCU论坛

点评

请问楼主电容什么型号?在哪里买的?多少钱?求链接  详情 回复 发表于 2012-7-11 17:39
 
个人签名Python全文搜索引擎:<url>http://code.google.com/p/ming-search/</url>
 
 

回复

327

帖子

0

TA的资源

纯净的硅(高级)

4
 
看来这边人气不是很旺,全当博客来写好了。
查了些校时的资料,总结一下。校时主要使用电波钟或者GPS:电波钟的优点是功耗小(120uA连续工作至少60秒),缺点是有覆盖范围的限制(云南就比较勉强);GPS的优点是全球都能覆盖,缺点就是功耗大很多(50mA左右冷启动约45秒,并且不包括给备份电池充电的部分)并且需要靠近窗口。价格也是一个因素,电波钟的模块在20元价位,GPS的在170元左右(含天线)。体积上由于电波钟需要一个磁棒天线,比较笨重(手表里怎么做的?),GPS如果是外置天线的话也不小,如果内置天线可以做到20*20*6mm以内。
电波钟淘宝上有(搜索“电波钟 模块”),GPS的话Goeget系列有自带天线的小模块(搜索“Goeget”)。
另外,1ppm大约是11天误差1秒,常见的32.768k晶振5~20ppm,12M晶振20~50ppm。(记得小时候老爸和我说电子表的晶振频率越高走时约准……,貌似是和机械表对比的……)

[ 本帖最后由 elulis 于 2010-11-7 18:06 编辑 ]
此帖出自NXP MCU论坛
 
个人签名Python全文搜索引擎:<url>http://code.google.com/p/ming-search/</url>
 
 

回复

2万

帖子

71

TA的资源

管理员

5
 

回复 4楼 elulis 的帖子

呵呵 支持一下 我觉得这样的方式还挺特别的

大家来给提提建议哈
此帖出自NXP MCU论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 

回复

37

帖子

0

TA的资源

一粒金砂(中级)

6
 
太阳能加超级电容啊 当年的毕业设计就是他们的组合,功耗确实是个问题,不过可不可以不用一直显示呢,也就是说在需要显示的时候按一下按键就好 开启12864  对于背光更是如此,减少他们的使用时间来降低功耗 希望这种方式可以有帮助
此帖出自NXP MCU论坛
 
 
 

回复

327

帖子

0

TA的资源

纯净的硅(高级)

7
 

回复 5楼 soso 的帖子

哇,发了点小牢骚把版大招来了呵呵
此帖出自NXP MCU论坛
 
个人签名Python全文搜索引擎:<url>http://code.google.com/p/ming-search/</url>
 
 

回复

327

帖子

0

TA的资源

纯净的硅(高级)

8
 

回复 6楼 zhangjun16 的帖子

谢谢zhangjun16的建议,不过看时间都需要按键的话好不人性哦,在好奇期过去后会被打入冷宫的。实在不行就加上段式液晶,查到NXP的PCF8562液晶驱动IC,维持刷新时只有8uA的电流哈。昨天买了4颗2.7F100F的电容,22*42mm的体积,号称24小时后仍可以保持2.4V以上的电压。(还没到手~~)
此帖出自NXP MCU论坛
 
个人签名Python全文搜索引擎:<url>http://code.google.com/p/ming-search/</url>
 
 

回复

327

帖子

0

TA的资源

纯净的硅(高级)

9
 

感觉NXP的I2C库,读的时候不太对

使用的库是i2c.h和i2c.c,i2c.h的头信息是这样的:
/*****************************************************************************
*   i2c.h:  Header file for NXP LPC Family Microprocessors
*
*   Copyright(C) 2006, NXP Semiconductor
*   All rights reserved.
*
*   History
*   2006.07.19  ver 1.00    Preliminary version, first Release
*
******************************************************************************/
问下这个是官方的吗?好像有问题。
例子是往I2C里写0x55,0xAA,0x12,0x34这4个字节,然后读出。
读出的I2CMasterBuffer[2~5]的内容是0xA1,0xAA,0x12,0x34。
A1是我用的CAT24C02的地址……
各位大侠碰到过类似的问题吗?
此帖出自NXP MCU论坛
 
个人签名Python全文搜索引擎:<url>http://code.google.com/p/ming-search/</url>
 
 

回复

327

帖子

0

TA的资源

纯净的硅(高级)

10
 

回复 9楼 elulis 的帖子

好吧,是我脑残了,跟了下代码,读的内容在I2CSlaveBuffer中;其次,24C02的VCC虚焊……:(

附上今天晚上的果果~

[ 本帖最后由 elulis 于 2010-11-13 04:07 编辑 ]

2010-11-13 04.00.51.jpg (66.52 KB, 下载次数: 0)

2010-11-13 04.00.51.jpg

2010-11-13 04.01.05.jpg (72.2 KB, 下载次数: 0)

2010-11-13 04.01.05.jpg
此帖出自NXP MCU论坛
 
个人签名Python全文搜索引擎:<url>http://code.google.com/p/ming-search/</url>
 
 

回复

327

帖子

0

TA的资源

纯净的硅(高级)

11
 
今天用LM337装了个调压电路,调压倒是没有问题,问题在于负载只有5mA左右……无语了,先给法拉电容充着电吧,明天再说。MX25L3205已经到手并装好SOP8转DIP8。
此帖出自NXP MCU论坛
 
个人签名Python全文搜索引擎:<url>http://code.google.com/p/ming-search/</url>
 
 

回复

2万

帖子

71

TA的资源

管理员

12
 

回复 11楼 elulis 的帖子

嘿嘿 加油 期待楼主下一步动作
此帖出自NXP MCU论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 

回复

327

帖子

0

TA的资源

纯净的硅(高级)

13
 

回复 12楼 soso 的帖子

谢过soso^ ^
LM337很诡异,改用LM358做了个电压跟随器当可调电源。正在测电容的自放电呢。
做晚调试MX25L3205很崩溃,不知道错在哪里……调24C02时也遇到过……
此帖出自NXP MCU论坛
 
个人签名Python全文搜索引擎:<url>http://code.google.com/p/ming-search/</url>
 
 

回复

327

帖子

0

TA的资源

纯净的硅(高级)

14
 

终于调试出MX25L3205了!发下代码^ ^


  1. #include "LPC11xx.h"
  2. #include "gpio.h"
  3. #include "ssp.h"

  4. /* MX25xx05 SPI FLASH command set*/
  5. #define MX25_WREN        0x06
  6. #define MX25_WRDI        0x04
  7. #define MX25_RDSR        0x05
  8. #define MX25_WRSR        0x01
  9. #define MX25_READ        0x03        // 3bytes addr followed
  10. #define MX25_WRITE        0x02        // 3bytes addr followed, erased to 'ff' requried
  11. #define MX25_PP                MX25_WRITE
  12. #define MX25_CP                0xAD        // continuios program, 3bytes addr followed
  13. #define MX25_SE                0x20        // sector erase 3bytes addr followed
  14. #define MX25_BE                0xD8        // block erase 3bytes addr followed
  15. #define MX25_CE                0x60
  16. #define MX25_DP                0xB9        // Deep Power down
  17. #define MX25_RDP        0xAB        // Release from Deep Power down

  18. #define LED1_on() (GPIOSetValue(0, 1, 0))
  19. #define LED1_off() (GPIOSetValue(0, 1, 1))
  20. #define LED2_on() (GPIOSetValue(1, 8, 0))
  21. #define LED2_off() (GPIOSetValue(1, 8, 1))

  22. #define SSP0_csHigh() (GPIOSetValue(0, 3, 1))
  23. #define SSP0_csLow() (GPIOSetValue(0, 3, 0))

  24. #define SPI_BUFFER_SIZE        256
  25. uint8_t opBuf[4];
  26. uint8_t wrBuf[SPI_BUFFER_SIZE];
  27. uint8_t rdBuf[SPI_BUFFER_SIZE];

  28. void initMingIO(void){
  29.         // init GPIO
  30.         GPIOInit();
  31.         GPIOSetDir(0, 1, 1);        // LED1
  32.         GPIOSetDir(1, 8, 1);        // LED2
  33.         LPC_IOCON->PIO0_3 &= ~0x07;
  34.         GPIOSetValue(0, 3, 1);
  35.         GPIOSetDir(0, 3, 1);        // SSP0 /CS
  36.         // init SSP
  37.         SSP_IOConfig(0);
  38.         SSP_Init(0);
  39.        
  40. }

  41. void printBits(uint8_t value){
  42.         uint32_t i = 0;
  43.         uint8_t v = value;
  44.         uint8_t p;
  45.         for(p=0; p < 8; p ++){
  46.                 LED1_on();
  47.                 if(v & 0x01){
  48.                         LED2_on();
  49.                 }else{
  50.                         LED2_off();
  51.                 }
  52.                 v = v >> 1;
  53.                 for(i=0;i<0x200000;i++);
  54.                 LED2_off();
  55.                 LED1_off();
  56.                 for(i=0;i<0x200000;i++);
  57.         }
  58.         LED1_off();
  59.         LED2_off();
  60.         for(i=0;i<0x200000;i++);
  61. }

  62. /**
  63.    Wait Untill WIP release
  64. **/
  65. void spiFlash_Wait(void){
  66.         uint32_t i;
  67.         uint8_t sr = 0x01;
  68.         while(sr & 0x01){
  69.                 opBuf[0] = MX25_RDSR;
  70.                 SSP0_csLow();
  71.                 SSP_Send(0, (uint8_t *)opBuf, 1);
  72.                 SSP_Receive(0, (uint8_t *)rdBuf, 1);
  73.                 SSP0_csHigh();
  74.                 sr = rdBuf[0];
  75.                 for(i = 0; i < 100; i ++);
  76.         }
  77. }

  78. /**
  79.    Sector Erase 4096 bytes, least 8 bits of addr ignored.
  80. **/
  81. void spiFlash_SE(uint32_t addr){
  82.         spiFlash_Wait();
  83.         // send WREN
  84.         opBuf[0] = MX25_WREN;
  85.         SSP0_csLow();
  86.         SSP_Send(0, (uint8_t *)opBuf, 1);
  87.         SSP0_csHigh();
  88.         spiFlash_Wait();
  89.         // send SE
  90.         opBuf[0] = MX25_SE;
  91.         opBuf[1] = addr >> 16;
  92.         opBuf[2] = addr >> 8;
  93.         opBuf[3] = 0;
  94.         SSP0_csLow();
  95.         SSP_Send(0, (uint8_t *)opBuf, 1);
  96.         SSP0_csHigh();
  97.         spiFlash_Wait();
  98. }

  99. /**
  100.    Page Programming 256 bytes, least 8 bits of addr ignored.
  101. **/
  102. void spiFlash_PP(uint32_t addr){
  103.         spiFlash_Wait();
  104.         // send WREN
  105.         opBuf[0] = MX25_WREN;
  106.         SSP0_csLow();
  107.         SSP_Send(0, (uint8_t *)opBuf, 1);
  108.         SSP0_csHigh();
  109.         spiFlash_Wait();
  110.         // PP 256 bytes
  111.         opBuf[0] = MX25_PP;
  112.         opBuf[1] = addr >> 16;
  113.         opBuf[2] = addr >> 8;
  114.         opBuf[3] = 0;
  115.         SSP0_csLow();
  116.         SSP_Send(0, (uint8_t *)opBuf, 4);
  117.         SSP_Send(0, (uint8_t *)wrBuf, 256);
  118.         SSP0_csHigh();
  119.         spiFlash_Wait();
  120. }

  121. /**
  122.    Page Reading 256 bytes, least 8 bits of addr ignored.
  123. **/
  124. void spiFlash_PR(uint32_t addr){
  125.         spiFlash_Wait();
  126.         opBuf[0] = MX25_READ;
  127.         opBuf[1] = addr >> 16;
  128.         opBuf[2] = addr >> 8;
  129.         opBuf[3] = 0;
  130.         SSP0_csLow();
  131.         SSP_Send(0, (uint8_t *)opBuf, 4);
  132.         SSP_Receive(0, (uint8_t *)rdBuf, 256);
  133.         SSP0_csHigh();
  134. }

  135. void testSpiFlash(void){
  136.         spiFlash_SE(0);
  137.        
  138.         wrBuf[0] = 0x55;
  139.         wrBuf[1] = 0xAA;
  140.         wrBuf[2] = 0x12;
  141.         wrBuf[3] = 0x34;
  142.         spiFlash_PP(0);

  143.         spiFlash_PR(0);
  144.         printBits(rdBuf[0]);
  145.         printBits(rdBuf[1]);
  146.         printBits(rdBuf[2]);
  147.         printBits(rdBuf[3]);
  148. }
复制代码


调用的代码是这样子的

  1. #include "LPC11xx.h"
  2. #include "gpio.h"

  3. #include "ming_io.c"

  4. int main(void){
  5.        
  6.         SystemInit();
  7.        
  8.         initMingIO();

  9.         while(1){
  10.                 testSpiFlash();
  11.         }

  12. }
复制代码

从现在起,我有4MB的闪存可以用咯,开心^ ^
唉,编辑的时候有缩进。编辑完看不到了,严重不是“所见即所得模式”啊~

[ 本帖最后由 elulis 于 2010-11-22 00:56 编辑 ]
此帖出自NXP MCU论坛
 
个人签名Python全文搜索引擎:<url>http://code.google.com/p/ming-search/</url>
 
 

回复

327

帖子

0

TA的资源

纯净的硅(高级)

15
 
顺便汇报一下法拉电容的自放电测试,充电2A电流充电至2.5V左右(大电流充的很虚,电压会掉的很快),然后使用LM358的调压板调至2.690V以50mA充电(LM358的最大输出…)充电,前天下午3点半充好的(电容电压也到2.690V),刚才测试是2.499V,自放电的时间是33小时20分钟多点。这个电容质量很好哈,最起码没有虚标
下一步是加上一个1K的负载电阻测试电压从2.4V降至0.8V的时间进行模拟(打算用DC-DC升压至3.3V工作了,电容器串联的容量均衡看的我好头疼……)。
此帖出自NXP MCU论坛
 
个人签名Python全文搜索引擎:<url>http://code.google.com/p/ming-search/</url>
 
 

回复

327

帖子

0

TA的资源

纯净的硅(高级)

16
 
上4张照片,分别是LM358做的调压板、MX25L3205装好DIP8、Treo接口引出RX和TX、还有Treo180



此帖出自NXP MCU论坛
 
个人签名Python全文搜索引擎:<url>http://code.google.com/p/ming-search/</url>
 
 

回复

228

帖子

3786

TA的资源

一粒金砂(中级)

17
 
呵呵 很清晰的思路 赞一个
此帖出自NXP MCU论坛
 
 
 

回复

3836

帖子

19

TA的资源

纯净的硅(中级)

18
 
期待楼主的后续更新 加油
此帖出自NXP MCU论坛
 
 
 

回复

327

帖子

0

TA的资源

纯净的硅(高级)

19
 
多谢banana和fish001鼓励^ ^
此帖出自NXP MCU论坛
 
个人签名Python全文搜索引擎:<url>http://code.google.com/p/ming-search/</url>
 
 

回复

327

帖子

0

TA的资源

纯净的硅(高级)

20
 
剩下的芯片,包括RTC芯片,温度芯片等选型完毕,以下是列表:
RTC芯片:RX8025,自带晶振5ppm(3min/年),SOP14封装。
测温芯片:DS18B20,一线式总线,无须其他周边元件。
DC-DC升压:SP6641,10uA静态电流,87%效率,0.9v~3.3v输入(法拉电容供电)。
USB-TTL:这个太多了,最好选择同时包含RS232电平的。

[ 本帖最后由 elulis 于 2010-11-29 22:54 编辑 ]
此帖出自NXP MCU论坛
 
个人签名Python全文搜索引擎:<url>http://code.google.com/p/ming-search/</url>
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表