论坛风格切换切换到宽版
  • 8103阅读
  • 12回复

[原创]目前全球耗电最低的自动键控制器源代码 [复制链接]

上一主题 下一主题
离线BG4UVR
 
发帖
11210
只看楼主 倒序阅读 0楼 发表于: 2007-06-09
赠送给玩avr的ham的小礼物。

标题为广告语,不要误解 :d

1.8-5.5v供电
3v供电,使用128khz内部rc振荡器时,期望的整机工作电流为0.1ma,自动待机电流为0.2ua。

水平有限,错误不足难免,仅供参考。

本源代码在 www.hellocq.net 独家发表,谢绝任何形式的转载。


/**********************
*      avr自动键
*   by bg4uvr
*      2007.06.08
**********************/
/*
本来写这个程序是打算用在tiny13芯片上的。但实际在写的过程中,
只在8515芯片上进行了调试和测试,因为实在懒得焊一个tiny板了。
本设计的主导的思想在于尽量使电路的电源消耗低些,即使正常工
作的状态下,电流消耗也在0.2ma以下(当然,这不包括你外接led
和驱动光耦的电源消耗,如果只驱动三极管的基极,那这个数值还
是和实际很接近的。)另外可以写好掉电功能,功耗将会更低。
使用tiny13的原因还在于,电路结构可以相当的简单了。至少省去
了外接eeprom、晶振、复位电路。
实验中,8515使用了1m的内部rc振荡器。在使用tiny的时候,你可
以使用1.2m,甚至128khz的内部振荡器。夸张一些,你可以把128k
进行256分频,用500hz的晶振频率来玩。不过500hz的情况,目前只
是个想法,未经实际验证。
掉电后,电源消耗在0.2ua以下。如果使用了tiny13芯片,那么你通
写掉电程序,就可以使用任何一个按键或者点划键来重新开机了,爽
吧?
由于没有使用tiny13芯片测试,所以现在的电源管理部分,可能完全
不适合tiny13芯片。所以如果真的用在tiny13上,这部分需要大量的
改写。
另外由于tiny13芯片的程序存储容量只有1kb,所以程序在尽量保留功
能的情况下,缩减的代码。功能上取消了驱动无源蜂鸣器的程序。自动
呼叫程序虽然保留了,但自行设置呼号的功能,代码量实在太大,无
法放进去,也取消了。
同样的原因,因无蜂鸣器。所以设置wpm时,输出没有关闭。所以实际
使用的时候,注意把发射机功率调到最小,再进行wpm设置。
由于本人不会cw,所以对wpm的范围设多少合适,也拿不准,于是把它
放在前面的宏定义中了。大家可以自己设置自己需要的范围和步进。
cw码表的算法,是本人原创的。如果不幸正好和你的算法相同或相近,
那属于英雄所见了,哈哈~ 这种码表的结构,尽量节省了代码空间。
也正是因为使用了这样的码表结构,才使得不到800字节的自动键程序,
可以具有自动呼叫的功能。
本程序版权没有,您可以把其中的函数放在任何你想用的地方而不必
取得我的同意。send_char和send_string是个很好的函数,我想它可
以用在cw报温度、cw报电压、cw报驻波之类的应用上吧。
本程序只起一个抛砖引玉的作用。哪位朋友如果参考此代码,做出更
好的自动键控制器,是我所希望看见的。同时如果愿意,也希望能赠
送我一块板 :d
bg4uvr 2007.06.09
附件: bg4uvr_autokey_program.rar (0 K) 下载次数:540
离线BG4UVR
发帖
11210
只看该作者 1楼 发表于: 2007-06-09
补充说明,如果你有me300a+实验板,那把上面的程序编译了,烧入8515中,是直接可以运行的(注意实验板的jp8跳线需要短路)。

k1是自动呼叫。
k2是wpm设置。
k3是di。
k4是da。
在线bd7qw
发帖
2311
只看该作者 2楼 发表于: 2007-06-09
练技术的好程序,谢谢
离线ding
发帖
3484
只看该作者 3楼 发表于: 2007-06-09
不顶不行。
离线radiolee
发帖
6050
只看该作者 4楼 发表于: 2007-06-09
还是希望楼主可以加一个zigbee或者无线模块做个世界上最省电的无线键。期望使用太阳能电池(计算器上那种)给有线的13v供电,不过有条线了再用太阳能显得没有创意……
离线红猪
发帖
4980
只看该作者 5楼 发表于: 2007-06-09
非常感谢!
离线ding
发帖
3484
只看该作者 6楼 发表于: 2007-06-10
今天还是来顶一下。
离线BG4UVR
发帖
11210
只看该作者 7楼 发表于: 2007-06-10
漏说的一个取消蜂鸣器的另一个重要原因,就是这样可以省出来一个io脚,留出reset脚,就不必非要高压编程器编程了(普通常见的便宜通用编程器,能高压编程这个芯片的,很少),isp即可——哪怕用74ls245自己做的也行~
离线radiolee
发帖
6050
只看该作者 8楼 发表于: 2007-06-10
'
漏说的一个取消蜂鸣器的另一个重要原因,就是这样可以省出来一个io脚,留出reset脚,就不必非要高压编程器编程了(普通常见的便宜通用编程器,能高压编程这个芯片的,很少),isp即可——哪怕用74ls245自己做的也行~
'

最简单的应该是2个电阻的那个电路吧? 应该说哪怕用2个电阻自己做的也行~
离线BD1LKK
发帖
2313
只看该作者 9楼 发表于: 2007-06-11
出套件吧!
离线巴芭爸爸
只看该作者 10楼 发表于: 2007-06-14
好!辛苦了!
离线HiXGod
发帖
1608
只看该作者 11楼 发表于: 2008-03-02
值得研究~~~~~~~
离线BG6JJI
发帖
4940
只看该作者 12楼 发表于: 2013-04-18
我还有十几片TINY13
到处游荡的机器人火腿,目前在丽江
RIG:我有一堆uSDX
ANT:随时都能抄走的拉杆GP天线
QQ:1416160    我的DIY群:777353770
http://www.dxsummit.fi/DxSpots.aspx