手电大家谈-手电筒爱好者之家

 找回密码
 注册成为会员,享受更多功能。

QQ登录

只需一步,快速开始

只需一步,快速开始

搜索
查看: 6700|回复: 39

[充电器] 用T26或M8恢复T26熔丝,附CVAVR源代码及HEX文件

[复制链接]

该用户从未签到

发表于 2010-5-22 14:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册成为会员,享受更多功能。

x
本帖最后由 菜鸟不飞 于 2010-5-22 16:57 编辑

用2051恢复熔丝也有点问题,2051没ISP,像我一样可以编2051但恢复不了T26熔丝的人不多。
现在只要有一片可用的T26,一个ISP编程器,就可以摆平。

除了5、8、10、15四脚,其它引脚一一对应,8号脚控制需恢复熔丝的T26的VCC、AVCC、8号脚电平以及高压,同样负逻辑

[quote]
#define WR      PORTB.0
#define XA0     PORTB.1
#define XA1     PORTB.2
#define BS1     PORTB.3
#define BS2     PORTB.2
#define RDY     PINB.6
#define CP      PORTB.4
#define HV      PORTB.5
#define DATA    PORTA

void _nop_(void)
{
    char i;
    i=i;
}

void main(void)
{

    PORTB=0x60;
    DDRB=0xFF;
    PORTA=0x00;
    DDRA=0xFF;

中间自动产生的初始化设置不用更改

    DDRB=0xBF;
    HV=0;
    _nop_();

    WR=1;
    XA0=0;                            //启动命令加载
    XA1=1;                            //启动命令加载
    DATA=0x40;                        //写熔丝命令
    CP=1;
    CP=0;
    XA0=1;                            //启动数据加载
    XA1=0;                            //启动数据加载
    DATA=0xF7;                        //恢复
    CP=1;
    CP=0;
    BS1=1;                            //高字节
    BS2=0;                            //高字节
    WR=0;
    WR=1;
    _nop_();
    while(RDY==0);

    XA0=0;                            //启动命令加载
    XA1=1;                            //启动命令加载
    DATA=0x40;                        //写熔丝命令
    CP=1;
    CP=0;
    XA0=1;                            //启动数据加载
    XA1=0;                            //启动数据加载
    DATA=0xE1;                        //恢复
    CP=1;
    CP=0;
    BS1=0;                            //低字节
    BS2=0;                            //低字节
    WR=0;
    WR=1;
    _nop_();
    while(RDY==0);

    HV=1;                             结束

    PORTB=0x60;
    PORTA=0x00;

    while( 1 );
}
恢复熔丝.hex.tif (799 Bytes, 下载次数: 113)
回复 dsu_marcocopyright:copyright

使用道具 举报

  • TA的每日心情
    开心
    2014-5-11 12:10
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2010-5-22 15:04 | 显示全部楼层
    原理图捏?
    回复

    使用道具 举报

    该用户从未签到

    发表于 2010-5-22 15:04 | 显示全部楼层
    支持
    !!!!
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-5-21 02:17
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2010-5-22 15:04 | 显示全部楼层
    哈哈,沙发!
    回复

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2010-5-22 15:06 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    发表于 2010-5-22 15:48 | 显示全部楼层
    有没有M8版本的?手上只有M8
    回复

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2010-5-22 16:01 | 显示全部楼层
    有没有M8版本的?手上只有M8
    xll 发表于 2010-5-22 15:48


    一会儿整一个
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-8-7 00:08
  • 签到天数: 124 天

    [LV.7]常住居民III

    发表于 2010-5-22 16:10 | 显示全部楼层
    好强啊,支持楼主在出个M8的
    回复

    使用道具 举报

    该用户从未签到

    发表于 2010-5-22 16:16 | 显示全部楼层
    恩,贴片M8哦
    回复

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2010-5-22 16:34 | 显示全部楼层
    M8的PB口对应T26的PB口,PD口对应T26的PA口,同样PB5为VCC、AVCC、T268号脚电平、高压输出。

    #define WR      PORTB.0
    #define XA0     PORTB.1
    #define XA1     PORTB.2
    #define BS1     PORTB.3
    #define BS2     PORTB.2
    #define RDY     PINB.6
    #define CP      PORTB.4
    #define HV      PORTB.5
    #define DATA    PORTD

    void _nop_(void)
    {
        char i;
        i=i;
    }

    void main(void)
    {

        PORTB=0x60;
        DDRB=0xFF;
        PORTD=0x00;
        DDRD=0xFF;

    中间自动产生的初始化设置不用更改

        DDRB=0xBF;
        HV=0;
        _nop_();

        WR=1;
        XA0=0;                            //启动命令加载
        XA1=1;                            //启动命令加载
        DATA=0x40;                        //写熔丝命令
        CP=1;
        CP=0;
        XA0=1;                            //启动数据加载
        XA1=0;                            //启动数据加载
        DATA=0xF7;                        //恢复
        CP=1;
        CP=0;
        BS1=1;                            //高字节
        BS2=0;                            //高字节
        WR=0;
        WR=1;
        _nop_();
        while(RDY==0);

        XA0=0;                            //启动命令加载
        XA1=1;                            //启动命令加载
        DATA=0x40;                        //写熔丝命令
        CP=1;
        CP=0;
        XA0=1;                            //启动数据加载
        XA1=0;                            //启动数据加载
        DATA=0xE1;                        //恢复
        CP=1;
        CP=0;
        BS1=0;                            //低字节
        BS2=0;                            //低字节
        WR=0;
        WR=1;
        _nop_();
        while(RDY==0);

        HV=1;                             结束

        PORTB=0x60;
        PORTD=0x00;

        while( 1 );
    }

    M8恢复T26熔丝.hex.tif (844 Bytes, 下载次数: 61)
    回复

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2010-5-22 16:35 | 显示全部楼层
    看看,代码简直一模一样{:1_217:}
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2014-4-17 07:50
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2010-5-22 16:45 | 显示全部楼层
    牛人………我…
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2021-8-13 15:48
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2010-5-22 16:48 | 显示全部楼层
    嗯,我只有DIP的M8,这几天对照着楼主的贴片M8搞一个。
    回复

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2010-5-22 16:50 | 显示全部楼层
    贴片直插一个样,只要对着PDF连接就可以了。
    回复

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2010-5-22 16:53 | 显示全部楼层
    对了,这些我没有自己测试,完全是对89C2051的移植,频率就选1M吧,反正不差几十微秒。
    回复

    使用道具 举报

    头像被屏蔽

    该用户从未签到

    发表于 2010-5-22 17:06 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2010-5-22 17:13 | 显示全部楼层
    没关系,我的是24的,手上正好有22.1几的晶振,就用上了{:1_217:}

    其实12M也一样,再低点也一样。

    Vin 只要能让7812正常工作就可以了,14伏15伏16伏都可以吧,就算19V也没关系{:1_217:}
    回复

    使用道具 举报

    头像被屏蔽

    该用户从未签到

    发表于 2010-5-22 17:15 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复

    使用道具 举报

    该用户从未签到

    发表于 2010-5-22 17:25 | 显示全部楼层
    能楼上的结果
    回复

    使用道具 举报

    该用户从未签到

    发表于 2010-5-22 17:52 | 显示全部楼层
    很能折腾啊。
    回复

    使用道具 举报

    本版积分规则

    小黑屋|手机版|Archiver|论坛自带搜索|下载论坛app|手电大家谈-手电筒爱好者之家 ( 备案序号:鲁ICP备05002565号 )
    以上言论纯属个人观点,与手电大家谈立场无关。
    最佳浏览模式:1920*1080


    GMT+8, 2024-6-3 05:20 , Processed in 0.202399 second(s), 68 queries , Gzip On.

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表