搜索
bottom↓
回复: 150
打印 上一主题 下一主题

[DIY]AVR32开源下载线:Snail mkII DEMO 公开JTAG核心代码

[复制链接]

出0入296汤圆

跳转到指定楼层
1
发表于 2008-4-27 17:47:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

>>说在前面的话

    大约1个月以前,我自命不凡开始弄mkII下载器。(省略中间叙述nK字)……今天,Mega系列的下载
ISP功能和mkII协议解析引擎已经发布多时,而真正的AVR32下载目前却因为稳定性的问题迟迟裹足不前,
为此,不久之前,我从阿莫处走后门购得优惠之又优惠的原装mkII一个,并自己制作了串口信号劫持的专
用接口电路,配合USB串口线若干,FPGA一个,VB上位机一台,决定从4月28日开始,发动UC3JTAG下载的
决战。与此同时,Snail mkII for AVR UC3的PCB已经送出去加工(加急)。
    安顿好女友,买好泡面、咖啡,决战实验室,力争在五一期间送上大礼。(当然,是力争哈……力争
……)。谨以此帖,断我偷懒之后路、破釜沉舟……每日报告进度……督促自己完成工作。望广大支持者
,一定为我加油,不让我有任何偷懒的想法得逞……谢谢。


                                                             2008年4月27日 17时46分 于实验室


[ 声 明 ]

    Lisence Ver1.10   by Gorgon Meducer

    1、Snail mkII 是AT JTAGICE mkII下载器的兼容简化工具。
    2、Snail mkII 是一系列下载器的通称。该系列下载器,除特别标明是开源以外,作者保留一切权利。
    3、Snail mkII Demo for Mega是一款专门针对Mega系列的JTAG下载器,与该下载器相关的开源内容,
       在AVR论坛中有专帖进行讨论。作者公开所有资料,包括原理图,源代码,欢迎更多的人参与进来。
    4、Snail JTAGICE mkII for AVR32 Demo简称Snail mkII DEMO是Snail mkII for AVR32的一个低级版
       本,仅提供ISP功能。为部分开源项目,作者除公开核心读写函数以外,保留所有权利。即,如果
       您真的有心进行AVR32 JTAG的研究,我提供的资料已经足够,但是如果你想简单的复制这一产品,
       是办不到的。请大家理解作者这种鼓励开源讨论,但是反对简单抄袭的行为。所有与UC3下载有关
       的讨论,我并不封锁任何技术信息,但是决不公开完整的源代码、PCB及相关资料。
    5、Snail JTAGICE mkII for AVR32 是一个商业性质的AVR32下载和仿真解决方案。提供AVR32 Studio
       可以无缝连接的USB接口、提供ISP、OCD功能。作者保留一切权利。“廉价、实用”是该方案的核
       心目标。
    6、除去已经公开的部分以外,对于未由作者或者作者授权公开的部分,作者保留一切权利,并对牵涉
       到该部分——此前描述的条目有关的内容,作者保留进一步修改的权利。最终解释权归作者所有。
   
    如果您不同意以上的声明,请自觉删除与之相关的开源部分。如果您遵循以上的声明,请在下载开源
    压缩包时,保证压缩包和该声明文档的完整性(Lisence.txt)。谢谢。

                                                                       傻孩子 2008年7月18日

   


[更新日志]

    [2008年4月27日] 应完善JTAG Hacker上位机部分(MISSION CPL)

                    该上位机是JTAG专用逻辑分析仪的一个上位机软件,主要用于将FPAG截获的波形显
                    示在屏幕上。最初的测试版本已经能够记录一部分波形,但是没有实现波形的存储,
                    对于长度过大的波形,更无法全部浏览。工作计划,应该在4月27日完成该上位机
                    以实现波形的存储和任意长度位置波形的显示,允许的情况下加入波形的比例放大
                    功能。
   
    [2008年4月28日] 完成JTAG Hacker整个系统的可靠性调试(MISSION CPL)
                    
                    工欲善其事,必先利其器。4月28日完成整个JTAG Hacker系统的可靠性调试——使
                    用我自己编写的JTAG时序(IDCODE的读取)来测试这一系统的可靠性。并发布这一
                    开源项目。

    [2008年4月29日] 开始使用JTAG Hacker分析JTAG时序(CPL...)
                    
                    发现小BUG……呵呵如果不出BUG我就不放心了……天下从来没有发现BUG的程序就很
                    可能是BUG最多的程序。


    [2008年4月30日] 如果PCB回来的话,今天就要焊板子了……(CPL...)

    [2008年5月3日]  破解AVR32 Studio 用于mkII的协议指令……(CPL...)
                    
                    事情远没有那么简单,发现AVR32 Studio使用了大量未公开的mkII指令。例如:
                    CMND_READ_SAB_MEMROY  0x29
                    CMND_WRITE_SAB_MEMORY 0x28
                    CMND_SAB_RESET        0x24
                    破解工作,正在火热进行中……

    [2008年5月6日]  更新了JTAG Hacker PFGA端的工程
                    JTAG Hacker FPGA采样端程序(文件大小:3.67M)
   
    [2008年5月17日] 更新JTAG Hacker AVR采样端
                    更新一处BUG,该BUG有一定概率导致与FPGA通讯时数据丢失
                    点击此处下载 JTAG Hacker AVR端采样程序 (文件大小:96K)

    [2008年6月24日] mkII JTAG协议全面破解完成
                    


    [2008年7月份]   开始开源研究指导的资料编写。
                    前面我们已经说过,mkII的开源是研究型开源。即我们提供关键的思路指导,剩下的
                    道路由您自己来实践。这里需要补充很多资料和知识。也避免了一些不必要的AT的找
                    麻烦因素。因为傻孩子还要忙Robocon2008的比赛,所以资料只能比赛完再写。争取
                    在7月份之前完成DEMO版本的程序。剩下的发布工作具体由AVR32项目组来决定。

    [2008年7月18日] 更新Lisence。为公开Snail mkII DEMO的HEX作准备。

    [2008年7月22日] 公开JTAG操作核心代码。


[工作心情]

    [2008年4月28日] 凌晨6点多,终于完成了JTAG Hacker上位机的TAP状态机模拟和分析部分。随后上传。
    [2008年4月28日] 晚上22点一刻左右,大体完成了JTAG Hacker的协议接收和时序文件存储功能。明天
                    就可以进入JTAG协议的分析阶段了。
    [2008年4月29日] 下午3点多得到工厂电话,说加急得板子已经发货了。OMG,4天前送出去的PCB,加急
                    居然要5天才能到……TNND下定决心不给加急费了!
    [2008年4月30日] 早晨8点……满眼血丝……把JTAG Hacker功能强化了一下。下一步准备把协议分析部
                    分加入到软件中。软件将会在每一个TCK上升沿读取TMS电平,驱动TAP状态机模拟器,
                    在TAP处于Shift-DR或者Shift-IR状态时,检测TDI和TDO,统计输入输出了多少位数据
                    数据是什么内容……决定去睡觉了……
    [2008年4月30日] 下午5点半左右,从阿莫那里购买的价值2K的元器件终于回来了……因为包装太严密了,
                    拆了半天……PCB已经让孩儿们去取了。今天晚上应该能看到Snail mkII的真容啦。可
                    惜还只是硬件。我现在的心情就像要拆礼物一样。God bless me.
    [2008年5月1日]  凌晨0时42分。终于把Snail mkII焊接完成了……不过,为了测试硬件的可靠性,暂时
                    下载的是STK500的程序,居然可以用……哈哈……
    [2008年5月5日]  这两天一直很忙……因为中间插入了书稿校样、Robocon机器人_大赛、还有该死的串口
                    蓝屏死机问题。焦头烂额。用RS-232作了一个数据截取,当然是物理级别的截取,获
                    得了AVR32 Studio2 和mkII之间的悄悄话……居然是外语,有很多从未公开过的指令,
                    于是这两天便忙着破解这些指令了。还好,借助JTAG Hacker和RS-232通讯截取工具,
                    一切都不是太困难。唯一郁闷的是买到的USB->RS232线很不稳定,插了4个就会蓝屏死
                    机,无奈我的STK500用的就是USB->232,串口用的也是……
    [2008年5月5日]  mkII协议破解取得突破……毕竟是ATMEL未公开的,怕吃官司哈……有兴趣可以加入群
                    51913623交流,请注明AVR32。
    [2008年6月24日] 困扰了我两个多月的协议问题,一晚上就搞定了,逻辑分析仪,果然很好很强大。可惜
                    没有JTAG Hacker的自动JTAG分析功能,把我的眼睛都看花了……幸好,有TAP状态机模
                    拟器。协议出人意料的简单……但是AT果然很XX,在实际协议中隐藏了很多在UC3A里面
                    并未提及的内容。换句话说,AT只是做了一幅公开协议的样子,核心的东西他还是捏在
                    自己手里面。一点感悟……

    [2008年7月18日] 最近,经过团队的努力,BOSS的OpenUC3、金老师的百元AVR32 UC3B开发套件、我的
                    Snail mkII DEMO都已经就绪。阿莫和TLG联营AVR32的销售,货物即将到位。万事具备
                    只欠东风。为了推动AVR32的推广,降低门槛,在和金老师商量以后,决定在公测以后
                    公开Snail mkII DEMO的HEX(发布两个版本7.3728版和14.7456版),公开最简系统原
                    理图,做到M16 + RS232即可以完成自己的Snail mkII DEMO下载器。
                    相信100元的开发套件+几乎免费的ISP工具,一定能让广大AVR爱好这们满意。当然,还
                    要配合同步的学习笔记和资料哈。
                    兄弟们,请支持AVR32!

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入296汤圆

2
 楼主| 发表于 2008-4-27 17:47:20 | 只看该作者
>>JTAG Hacker 开源项目

[原理解析]
    JTAG Hacker顾名思义,就是JTAG的Hacker啦。JTAG协议,本质上就是SPI的兼容协议加上TAP状态机。
其中我们可以把TCK等同于SPI的SCK,把TDI和TDO分别等同于MOSI和MISO;剩下一个TMS并不是SS,而是用
作TAP状态机的控制。从JTAG协议中,我们知道,TMS在TCK的上升沿被读入TAP,用于驱动状态机。而TDI
信号,同样也是在TCK的上升沿被读取到目标设备中。
    JTAG Hacker本质上就是一个逻辑分析仪。根据TCK的边延触发(上升沿和下降沿都触发),依次读取
TCK、TDI、TDO、TMS引脚上的电平。当JTAG工作频率在100K以下的时候,我们甚至可以直接使用AVR单片
机来做信号采样,并把采样的结果通过串口发送出去。在PC机端,我们可以利用VB、VC等开发工具驱动串
口,读取结果,并将信号绘制在屏幕上。


[需求分析及方案选定]
    根据实际测试,AT JTAGICE mkII的JTAG工作频率在AVR32 Studio下是不可调的,最高频率达到8M。
在这种情况下,采用AVR直接进行信号采样,貌似至少Mega系列是不大可能的,至于Xmega倒是尚未测试,
AVR32肯定不在话下……用FPGA因该是必然的选择。
    用FPAG完成什么功能呢?简单情况下,让FPGA根据TCK信号的边沿读取JTAG时序,并将时序缓冲下来
以一个额定的缓慢的速度(比如10KHz)在另外一个端口中输出出来,我们可以直接使用单片机采样获得
这些信号,处理过后发送给上位机。这种方案,对FPGA编程要求很低,几乎人人都可以尝试。
    对于很多FPGA搞手来说,直接根据TCK信号进行采样,完成编码以后利用串口发送给PC机可谓小菜一
碟。对于高手,当然更推荐这种方法啦。搞不好,我们还可以弄出一个JTAG专用逻辑分析仪呢。考虑到傻
孩子手下创新实践班学生的实践经验,采用FPAG+AVR+PC的方案。JTAG Hacker的后续版本,将采用FPGA+
PC的方法直接形成成品。


[FPGA部分]
JTAG Hacker FPGA采样端程序(文件大小:3.67M)

module LogicAnalyze (
                                                g_CLK,
                                                EN,
                                                FeedBack,
                                                TCK_IN,
                                                TDO_IN,
                                                TDI_IN,
                                                TMS_IN,
                                                TCK_OUT,
                                                TDO_OUT,
                                                TDI_OUT,
                                                TMS_OUT,
                                                TCK_IN_TEMP,
                                                State,
                                                TempCLK
                                        );
                                       
input         g_CLK,
                EN,
                TCK_IN,
                TDO_IN,
                TDI_IN,
                TMS_IN,
                TCK_IN_TEMP;
               
output        TCK_OUT,
                TDO_OUT,
                TDI_OUT,
                FeedBack,
                State,
                TempCLK,
                TMS_OUT;
       
parameter        BufferSize = 512;
reg                Init = 0;
reg                Flag = 1;
reg                ENFlag = 1;
reg                TempTCK;
reg                TCKBuffer[0:BufferSize - 1];
reg                TDOBuffer[0:BufferSize - 1];
reg                TDIBuffer[0:BufferSize - 1];
reg                TMSBuffer[0:BufferSize - 1];
reg                State = 0;
reg                TCK_OUT = 0;
reg                TDO_OUT = 0;
reg                TDI_OUT = 0;
reg                TMS_OUT = 0;
reg                FeedBack = 1;

reg         TempCLK = 0;

integer CLKCounter = 0;
integer        BufferHead = 0;
integer        BufferTail = 0;
integer BufferCounter = 0;
integer BufferCounterTemp = 0;


always @(posedge g_CLK)
begin

        if(BufferCounter == 1'b0)
        begin
                FeedBack <= 1;
                BufferHead = 1'b0;
                BufferTail = 1'b0;
        end
        else
        begin
                FeedBack <= 0;
        end
        if((TCK_IN == 1'b1) && (Flag == 1'b0))
        begin
               
                Flag <= 1;
                if(BufferCounter < BufferSize)
                begin
                        TCKBuffer[BufferTail] <= TCK_IN_TEMP;
                        TDOBuffer[BufferTail] <= TDO_IN;
                        TDIBuffer[BufferTail] <= TDI_IN;
                        TMSBuffer[BufferTail] <= TMS_IN;
                        BufferCounter <= BufferCounter + 1'b1;
                        BufferTail = BufferTail + 1'b1;
                       
                        if(BufferTail == BufferSize)
                        begin
                                BufferTail = 1'b0;
                        end               
                end
        end
        else if((TCK_IN == 1'b0) && (Flag == 1'b1))
        begin
                Flag <= 1'b0;
                if(BufferCounter < BufferSize)
                begin
                        TCKBuffer[BufferTail] <= TCK_IN_TEMP;
                        TDOBuffer[BufferTail] <= TDO_IN;
                        TDIBuffer[BufferTail] <= TDI_IN;
                        TMSBuffer[BufferTail] <= TMS_IN;
               
                        BufferCounter <= BufferCounter + 1'b1;
                        BufferTail = BufferTail + 1'b1;
                       
                        if(BufferTail == BufferSize)
                        begin
                                BufferTail = 1'b0;
                        end               
                end
        end
       
        if((EN == 0) && (ENFlag == 1))
        begin
                ENFlag = 0;
                State <= ~State;
                if(BufferCounter != 0)
                begin
                        TCK_OUT <= TCKBuffer[BufferHead];
                        TDO_OUT <= TDOBuffer[BufferHead];
                        TDI_OUT <= TDIBuffer[BufferHead];
                        TMS_OUT <= TMSBuffer[BufferHead];
                        BufferCounter <= BufferCounter - 1;
                        BufferHead = BufferHead + 1'b1;
                       
                        if(BufferHead == BufferSize)
                        begin
                                BufferHead = 1'b0;
                        end               
                end
        end
        else if((EN == 1) && (ENFlag == 0))
        begin
                ENFlag = 1;
        end
end       
/*************************************************************************/
/*always @(negedge EN)
        begin               
                FeedBack = ~FeedBack;       
                if(BufferCounter > 1'b0)
                begin
                        //FeedBack <= 1'b0;
                        TCK_OUT <= TCKBuffer[BufferHead];
                        TDO_OUT <= TDOBuffer[BufferHead];
                        TDI_OUT <= TDIBuffer[BufferHead];
                        TMS_OUT <= TMSBuffer[BufferHead];
                        BufferCounterTemp = BufferCounter - 1;
                        BufferCounter = BufferCounterTemp;
                        if(BufferCounter == 1'b0)
                        begin
                        //        FeedBack <= 1'b1;
                        end
                        BufferHead <= BufferHead + 1'b1;
                        State <= ~State;
                        if(BufferHead == BufferSize)
                        begin
                                BufferHead <= 1'b0;
                        end               
                end
                       
        end
        */
always @(posedge g_CLK)
begin
        CLKCounter = CLKCounter + 1;
        if(CLKCounter >= 1000)
        begin
                CLKCounter<= 0;
                TempCLK = ~TempCLK;
        end
end
endmodule


[AVR 部分]
更新一处BUG,该BUG有一定概率导致与FPGA通讯时数据丢失
点击此处下载 JTAG Hacker AVR端采样程序 (文件大小:96K)


[PC上位机]
    符合公共通信协议的下位机都可以使用该软件进行JTAG时许分析。
点击此处下载  JTAG Hacker 上位机VB工程文件(文件大小:37K)





[注]图中所示的时序是测试用的时序,没有任何意义。

[公共通信协议]
    下位机协议:
        a、数据包格式
           0xAA + DATA + ~DATA           即:帧头为0xAA,数据为DATA,用一个取反了的DATA作为
                                             交验
        b、发送方法
           下位机发送数据包给上位机,并等待上位机的回应。如果上位机回复0xAC,则表示数据接收
           正确;如果上位机回复0xED,则表示数据接收错误,下位机应该重发数据包。对于上位机其
           它回复数据,一律无视。如果在一定时间长度内(典型为100ms)没有收到数据包,则直接
           发送下一数据包。

        c、典型发送代码

BOOL PROC_Read_JTAG(void)
{
    static BYTE s_chActionFlag = NULL;
    static BYTE s_chTempData = NULL;
    static BYTE s_chDataBuffer[3] = {0xAA,0,0};
    static UINT8 s_chCounter = 0;
   
    if (s_chActionFlag == NULL)
    {
        s_chActionFlag = 0x01;
    }
   
    if (s_chActionFlag == 0x01)
    {
        //发送下降沿
        _PB3 = HIGH;
        NOP();
        _PB3 = LOW;
        s_chActionFlag = 0x02;
    }
   
    if (s_chActionFlag == 0x02)
    {
        if (PIN_PD2 == LOW)
        {
            //读取到了数据
            s_chTempData =  ((PINE & BIT(PE6)) ? 1:0)|
                            ((PINC & BIT(PC7)) ? 2:0)|
                            ((PINA & BIT(PA4)) ? 4:0)|
                            ((PINA & BIT(PA5)) ? 8:0);
            s_chDataBuffer[0] = 0xAA;
            s_chDataBuffer[1] = s_chTempData;
            s_chDataBuffer[2] = ~s_chTempData;
            s_chCounter = 0;
            
            s_chActionFlag = 0x03;
        }
        else
        {
            s_chActionFlag = NULL;
        }
    }
   
    if (s_chActionFlag == 0x03)
    {
        //发送数据
        if (SERIAL_OUT(s_chDataBuffer[s_chCounter]))
        {
            s_chCounter++;
            if (s_chCounter == sizeof(s_chDataBuffer))
            {
                //发送完成
                s_wCommunicationTimeCounter = 100;
                s_chActionFlag = 0x04;
            }
        }
    }
   
    if (s_chActionFlag == 0x04)
    {
        UINT8 chData = 0;
        
        if (SERIAL_IN(chData))
        {
            if (chData == 0xAC)
            {
                //数据被正确接收
                s_chActionFlag = NULL;
            }
            else if (chData == 0xED)
            {
                //数据接收错误,重发
                s_chCounter = 0;
                s_chActionFlag = 0x03;
            }
        }
        else if (s_wCommunicationTimeCounter == 0)
        {
            //发生了超时,默认继续发送
            s_chActionFlag = NULL;
        }
        
    }

    return TRUE;
}



    上位机协议:
        a、等待帧头部0xAA,其余数据一律丢弃。
        b、依次接收DataA和DataB。如果DataA与DataB互为反码,则发送0xAC,否则发送0xED。
        c、典型代码

Function FrameCheckStatueMachineEngine(ByVal chInData As Byte, ByRef chOutData As Byte) As Boolean
On Error Resume Next
    Static s_nActionFlag As Integer
    Static s_chDataA As Byte
   
    FrameCheckStatueMachineEngine = False
   
    If (s_bIfStartDelay = True And s_nCommunicationTimeCounter = 0) Then
        '上一次发生了超时
        s_nActionFlag = 0
        StatusBar.Panels(2).Text = "Time out occur!"
    End If
   
    If (s_nActionFlag = 0) Then
        s_nActionFlag = 1
    End If
   
    If (s_nActionFlag = 1) Then
   
        '等待头部
        If (chInData = &HAA) Then
            '接收到了头部
            s_nActionFlag = 2
            s_nCommunicationTimeCounter = 2
            s_bIfStartDelay = True
        End If
        
        Exit Function
        
    End If
   
    If (s_nActionFlag = 2) Then
        '等待第一个数据
        s_chDataA = chInData
        s_nActionFlag = 3
        
        Exit Function
    End If
   
    If (s_nActionFlag = 3) Then
        '等待第二个数据
        ReDim chData(1) As Byte
        If s_chDataA = Not chInData Then
            '数据校验正确
            chData(0) = &HAC
            chOutData = s_chDataA
            FrameCheckStatueMachineEngine = True
        Else
            '数据校验错误
            chData(0) = &HED
        End If
        '返回
        COM.Output = chData
        s_bIfStartDelay = False
        
    End If
End Function

出0入296汤圆

3
 楼主| 发表于 2008-4-27 17:47:35 | 只看该作者
>> Snail mkII for AVR32 UC3 硬件调试






终于焊接好了,呵呵,虽然有一点小错误。
这个板子现在至少可以当STK500用哈。兼容的。

出0入296汤圆

4
 楼主| 发表于 2008-4-27 17:47:51 | 只看该作者
>>AVR32 Studio mkII协议细节备忘录

1、AVR32 Studio2 截止到目前版本,使用RS-232连接mkII时,一定要记得填写完整的端口号。
   比如,com6就要写com6而不能省略成6……
2、所有指令会在没有得到应答的情况下默认发送三次……

出0入296汤圆

5
 楼主| 发表于 2008-4-27 17:49:01 | 只看该作者
>>AVR32 UC3 JTAG协议细节备忘录

1、AVR32的JTAG协议,所有指令都是5位的。这与Mega系列的4位指令系统不同。
2、mkII操作AVR32的大部分操作都是通过MEMORY_WORD_ACCESS——Private JTAG Instruction指令0x11来实现的。
   此外相关的还是AVR_RESET,MEMORY_BLOCK_ACCESS。其余的JTAG指令都是通过专门的Shift_IR和Shift_DR函数
   来实现的。比如CHIP_ERASE。

出0入0汤圆

6
发表于 2008-4-27 17:51:22 | 只看该作者
绝对支持!!

出0入0汤圆

7
发表于 2008-4-27 18:09:10 | 只看该作者
支持!!!

出0入0汤圆

8
发表于 2008-4-27 18:11:09 | 只看该作者
辛苦了!加油,支持中...

出0入0汤圆

9
发表于 2008-4-27 18:22:52 | 只看该作者
此贴必火,楼主加油,支持!

出0入0汤圆

10
发表于 2008-4-27 18:34:28 | 只看该作者
ding,楼主加油

出0入296汤圆

11
 楼主| 发表于 2008-4-27 18:45:11 | 只看该作者
这么快就[酷]帖了?站长们果然很会给人压力阿……吃饭去了。回来继续弄JTAG Hacker。

出0入0汤圆

12
发表于 2008-4-27 18:58:44 | 只看该作者
强啊!!!!!

出0入0汤圆

13
发表于 2008-4-27 19:40:19 | 只看该作者

出0入0汤圆

14
发表于 2008-4-27 19:54:46 | 只看该作者
加油

出0入0汤圆

15
发表于 2008-4-27 20:13:21 | 只看该作者
要做到完全兼容吗?

出0入296汤圆

16
 楼主| 发表于 2008-4-27 20:28:00 | 只看该作者
to 【14楼】 loves123
    至少做到AVR32 UC3下载部分完全兼容。

出0入0汤圆

17
发表于 2008-4-27 21:00:54 | 只看该作者
关注

出0入4汤圆

18
发表于 2008-4-27 22:52:34 | 只看该作者
Well done!

出0入0汤圆

19
发表于 2008-4-27 23:51:24 | 只看该作者
几天没来,深深发现我已经落伍了!
傻孩子已经把我远远抛在了后面……
头像被屏蔽

出0入0汤圆

20
发表于 2008-4-28 00:59:23 | 只看该作者
哈哈,傻孩子好样的!  仪仗队上茶:



出0入296汤圆

21
 楼主| 发表于 2008-4-28 13:35:37 | 只看该作者
睡醒了……被出版社的电话吵醒的,居然说《深入浅出AVR单片机》校样的第二版弄好了,让我们继续校对  OMG OTL #¥&^$$%^%&#%^
不管,原计划不变,继续决战mkII。

出0入0汤圆

22
发表于 2008-4-28 14:16:15 | 只看该作者
支持一下 我们这种没JTAG MKII的就指望你了

出0入0汤圆

23
发表于 2008-4-28 16:35:26 | 只看该作者
.

出0入0汤圆

24
发表于 2008-4-28 16:35:57 | 只看该作者
呵呵,我来顶一下。看来阿莫上面这个点的问题还没搞定啊。

出0入0汤圆

25
发表于 2008-4-28 17:36:34 | 只看该作者
支持你!

出50入0汤圆

26
发表于 2008-4-28 17:50:13 | 只看该作者
傻孩子果然强人,玩什么都鹤立鸡群。望尘莫及啊。

出0入0汤圆

27
发表于 2008-4-28 17:51:49 | 只看该作者
太帅了,楼主你是我的偶像!!

出0入0汤圆

28
发表于 2008-4-28 18:28:55 | 只看该作者
支持!!!

出0入0汤圆

29
发表于 2008-4-28 19:02:24 | 只看该作者
强人!不过身体也要多保重.

出0入0汤圆

30
发表于 2008-4-28 19:36:40 | 只看该作者
牛人

出0入0汤圆

31
发表于 2008-4-28 19:50:51 | 只看该作者
强人。。。

出0入0汤圆

32
发表于 2008-4-28 20:00:50 | 只看该作者
一般牛人的生物钟是与常人有区别的,向LZ学习!

出0入0汤圆

33
发表于 2008-4-28 20:22:34 | 只看该作者
开源时代的先锋队,好样的!
只是我才开始学习AVR……

出0入0汤圆

34
发表于 2008-4-28 20:59:28 | 只看该作者
AVR32能不能发展起来,看你了!

出0入0汤圆

35
发表于 2008-4-28 21:31:26 | 只看该作者
支支持持

出0入0汤圆

36
发表于 2008-4-28 21:46:36 | 只看该作者
强烈支持楼主这种拚劲

出0入0汤圆

37
发表于 2008-4-28 23:09:58 | 只看该作者
强人啊 学习中。

出0入0汤圆

38
发表于 2008-4-28 23:17:35 | 只看该作者
那个……提醒一下,那个…… license.txt …… 呵呵  ……

出0入296汤圆

39
 楼主| 发表于 2008-4-29 14:01:59 | 只看该作者
to 【37楼】 ccccccc
   ??

出0入0汤圆

40
发表于 2008-4-29 16:08:02 | 只看该作者
强烈支持....

出0入296汤圆

41
 楼主| 发表于 2008-5-1 00:42:00 | 只看该作者
偶尔,自己顶一下拉……突然发现CP2102居然什么外围元件都不用接就可以工作……

出0入0汤圆

42
发表于 2008-5-1 01:18:43 | 只看该作者
CP2102确实是这样的!比较好用

出0入0汤圆

43
发表于 2008-5-1 07:54:33 | 只看该作者
好样的。中国需要你这样的人。

出0入10汤圆

44
发表于 2008-5-2 00:32:35 | 只看该作者
5.2
第一贴, 敬傻孩子

出0入296汤圆

45
 楼主| 发表于 2008-5-4 16:21:10 | 只看该作者
//reset
1b 04 00 02 00 00 00 0e 2b 1f 3d 64
1b 05 00 02 00 00 00 0e 2b 07 09 b5
1b 06 00 0a 00 00 00 0e 28 01 00 00 00 08 81 00 30 00 b5 60
1b 07 00 02 00 00 00 0e 2b 00 4c 5a
1b 08 00 06 00 00 00 0e 29 01 00 00 00 10 f7 09
1b 09 00 06 00 00 00 0e 29 01 00 00 00 10 5a 0c
1b 0a 00 06 00 00 00 0e 29 01 00 00 00 10 ad 02
1b 0b 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 5b 29
1b 0c 00 06 00 00 00 0e 29 01 00 00 01 10 9b 06
1b 0d 00 0a 00 00 00 0e 28 01 00 00 01 04 e1 b0 00 40 c7 44
1b 0e 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 68 79
1b 0f 00 06 00 00 00 0e 29 01 00 00 01 10 6c 08
1b 10 00 0a 00 00 00 0e 28 01 00 00 01 14 00 00 00 00 5a 48
1b 11 00 0a 00 00 00 0e 28 01 00 00 01 04 e5 b0 00 45 23 a9
1b 12 00 06 00 00 00 0e 29 01 00 00 00 10 15 75
1b 13 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 c2 a1
1b 14 00 06 00 00 00 0e 29 01 00 00 01 10 23 71
1b 15 00 0a 00 00 00 0e 28 01 00 00 01 04 e1 b0 00 41 d7 dd
1b 16 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 f1 f1
1b 17 00 06 00 00 00 0e 29 01 00 00 01 10 d4 7f
1b 18 00 0a 00 00 00 0e 28 01 00 00 01 14 00 00 00 00 22 c8
1b 19 00 0a 00 00 00 0e 28 01 00 00 01 04 e5 b0 00 45 5b 29
1b 1a 00 02 00 00 00 0e 24 01 4b 3a
1b 1b 00 06 00 00 00 0e 25 20 00 00 00 00 70 17
1b 1c 00 01 00 00 00 0e 00 60 e6

//Read Fuse
1b 02 00 03 00 00 00 0e 02 03 01 f2 31
1b 03 00 02 00 00 00 0e 24 11 69 e7
1b 04 00 06 00 00 00 0e 29 01 00 00 00 10 2b 32
1b 05 00 06 00 00 00 0e 29 01 00 00 00 10 86 37
1b 06 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 10 f9
1b 07 00 06 00 00 00 0e 29 01 00 00 01 10 04 25
1b 08 00 0a 00 00 00 0e 28 01 00 00 01 04 e1 b0 00 40 f4 14
1b 09 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 45 09
1b 0a 00 06 00 00 00 0e 29 01 00 00 01 10 75 1b
1b 0b 00 0a 00 00 00 0e 28 01 00 00 01 14 00 00 00 00 d2 f0
1b 0c 00 0a 00 00 00 0e 28 01 00 00 01 04 e5 b0 00 45 89 71
1b 0d 00 06 00 00 00 0e 29 01 00 00 00 10 ee 1a
1b 0e 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 68 79
1b 0f 00 06 00 00 00 0e 29 01 00 00 01 10 6c 08
1b 10 00 0a 00 00 00 0e 28 01 00 00 01 04 e1 b0 00 41 e4 8d
1b 11 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 dc 81
1b 12 00 06 00 00 00 0e 29 01 00 00 01 10 cd 6c
1b 13 00 0a 00 00 00 0e 28 01 00 00 01 14 00 00 00 00 4b 78
1b 14 00 0a 00 00 00 0e 28 01 00 00 01 04 e5 b0 00 45 10 f9
1b 15 00 02 00 00 00 0e 24 01 63 ac
1b 16 00 06 00 00 00 0e 25 20 00 00 00 00 01 29
1b 17 00 06 00 00 00 0e 29 05 ff fe 14 08 d9 7c
1b 18 00 06 00 00 00 0e 29 05 ff fe 14 0c d6 0f
1b 19 00 06 00 00 00 0e 29 05 ff fe 14 0c 7b 0a
1b 1a 00 06 00 00 00 0e 29 05 ff fe 14 0c 8c 04
1b 1b 00 06 00 00 00 0e 29 05 ff fe 14 0c 21 01
1b 1c 00 06 00 00 00 0e 29 05 ff fe 14 0c 62 19
1b 1d 00 06 00 00 00 0e 29 05 ff fe 14 0c cf 1c
1b 1e 00 06 00 00 00 0e 29 05 ff fe 14 0c 38 12
1b 1f 00 06 00 00 00 0e 29 05 ff fe 14 0c 95 17
1b 20 00 06 00 00 00 0e 29 05 ff fe 14 0c ce cd
1b 21 00 06 00 00 00 0e 29 05 ff fe 14 0c 63 c8
1b 22 00 06 00 00 00 0e 29 05 ff fe 14 0c 94 c6
1b 23 00 06 00 00 00 0e 29 05 ff fe 14 0c 39 c3
1b 24 00 06 00 00 00 0e 29 05 ff fe 14 0c 7a db
1b 25 00 06 00 00 00 0e 29 05 ff fe 14 0c d7 de
1b 26 00 06 00 00 00 0e 29 05 ff fe 14 0c 20 d0
1b 27 00 06 00 00 00 0e 29 05 ff fe 14 0c 8d d5
1b 28 00 06 00 00 00 0e 29 05 ff fe 14 0c a6 e0
1b 29 00 06 00 00 00 0e 29 05 ff fe 14 0c 0b e5
1b 2a 00 06 00 00 00 0e 29 05 ff fe 14 0c fc eb
1b 2b 00 06 00 00 00 0e 29 05 ff fe 14 0c 51 ee
1b 2c 00 06 00 00 00 0e 29 05 ff fe 14 0c 12 f6
1b 2d 00 06 00 00 00 0e 29 05 ff fe 14 0c bf f3
1b 2e 00 06 00 00 00 0e 29 05 ff fe 14 0c 48 fd
1b 2f 00 06 00 00 00 0e 29 05 ff fe 14 0c e5 f8
1b 30 00 06 00 00 00 0e 29 05 ff fe 14 0c 1e 97
1b 31 00 06 00 00 00 0e 29 05 ff fe 14 0c b3 92
1b 32 00 06 00 00 00 0e 29 05 ff fe 14 0c 44 9c
1b 33 00 06 00 00 00 0e 29 05 ff fe 14 0c e9 99
1b 34 00 06 00 00 00 0e 29 05 ff fe 14 0c aa 81
1b 35 00 06 00 00 00 0e 29 05 ff fe 14 0c 07 84
1b 36 00 06 00 00 00 0e 29 05 ff fe 14 0c f0 8a
1b 37 00 06 00 00 00 0e 29 05 ff fe 14 0c 5d 8f
1b 38 00 01 00 00 00 0e 00 4e 46

//halt
1b 02 00 03 00 00 00 0e 02 03 01 f2 31
1b 03 00 02 00 00 00 0e 24 11 69 e7
1b 04 00 06 00 00 00 0e 29 01 00 00 00 10 2b 32
1b 05 00 06 00 00 00 0e 29 01 00 00 00 10 86 37
1b 06 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 10 f9
1b 07 00 06 00 00 00 0e 29 01 00 00 01 10 04 25
1b 08 00 0a 00 00 00 0e 28 01 00 00 01 04 e1 b0 00 40 f4 14
1b 09 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 45 09
1b 0a 00 06 00 00 00 0e 29 01 00 00 01 10 75 1b
1b 0b 00 0a 00 00 00 0e 28 01 00 00 01 14 00 00 00 00 d2 f0
1b 0c 00 0a 00 00 00 0e 28 01 00 00 01 04 e5 b0 00 45 89 71
1b 0d 00 06 00 00 00 0e 29 01 00 00 00 10 ee 1a
1b 0e 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 68 79
1b 0f 00 06 00 00 00 0e 29 01 00 00 01 10 6c 08
1b 10 00 0a 00 00 00 0e 28 01 00 00 01 04 e1 b0 00 41 e4 8d
1b 11 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 dc 81
1b 12 00 06 00 00 00 0e 29 01 00 00 01 10 cd 6c
1b 13 00 0a 00 00 00 0e 28 01 00 00 01 14 00 00 00 00 4b 78
1b 14 00 0a 00 00 00 0e 28 01 00 00 01 04 e5 b0 00 45 10 f9
1b 15 00 02 00 00 00 0e 24 01 63 ac
1b 16 00 06 00 00 00 0e 25 20 00 00 00 00 01 29
1b 17 00 06 00 00 00 0e 29 01 00 00 00 10 0c 66
1b 18 00 06 00 00 00 0e 29 01 00 00 00 10 27 53
1b 19 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 a4 01
1b 1a 00 06 00 00 00 0e 29 01 00 00 01 10 a5 41
1b 1b 00 0a 00 00 00 0e 28 01 00 00 01 04 e1 b0 00 14 a5 38
1b 1c 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 97 51
1b 1d 00 06 00 00 00 0e 29 01 00 00 01 10 e6 59
1b 1e 00 0a 00 00 00 0e 28 01 00 00 01 14 00 00 00 00 00 a8
1b 1f 00 0a 00 00 00 0e 28 01 00 00 01 04 e5 b0 00 45 79 49
1b 20 00 01 00 00 00 0e 00 8a 30

//resume
1b 02 00 03 00 00 00 0e 02 03 01 f2 31
1b 03 00 02 00 00 00 0e 24 11 69 e7
1b 04 00 06 00 00 00 0e 29 01 00 00 00 10 2b 32
1b 05 00 06 00 00 00 0e 29 01 00 00 00 10 86 37
1b 06 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 10 f9
1b 07 00 06 00 00 00 0e 29 01 00 00 01 10 04 25
1b 08 00 0a 00 00 00 0e 28 01 00 00 01 04 e1 b0 00 40 f4 14
1b 09 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 45 09
1b 0a 00 06 00 00 00 0e 29 01 00 00 01 10 75 1b
1b 0b 00 0a 00 00 00 0e 28 01 00 00 01 14 00 00 00 00 d2 f0
1b 0c 00 0a 00 00 00 0e 28 01 00 00 01 04 e5 b0 00 45 89 71
1b 0d 00 06 00 00 00 0e 29 01 00 00 00 10 ee 1a
1b 0e 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 68 79
1b 0f 00 06 00 00 00 0e 29 01 00 00 01 10 6c 08
1b 10 00 0a 00 00 00 0e 28 01 00 00 01 04 e1 b0 00 41 e4 8d
1b 11 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 dc 81
1b 12 00 06 00 00 00 0e 29 01 00 00 01 10 cd 6c
1b 13 00 0a 00 00 00 0e 28 01 00 00 01 14 00 00 00 00 4b 78
1b 14 00 0a 00 00 00 0e 28 01 00 00 01 04 e5 b0 00 45 10 f9
1b 15 00 02 00 00 00 0e 24 01 63 ac
1b 16 00 06 00 00 00 0e 25 20 00 00 00 00 01 29
1b 17 00 06 00 00 00 0e 29 01 00 00 00 10 0c 66
1b 18 00 06 00 00 00 0e 29 01 00 00 00 10 27 53
1b 19 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 a4 01
1b 1a 00 06 00 00 00 0e 29 01 00 00 01 10 a5 41
1b 1b 00 0a 00 00 00 0e 28 01 00 00 01 04 e1 b0 00 14 a5 38
1b 1c 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 97 51
1b 1d 00 06 00 00 00 0e 29 01 00 00 01 10 e6 59
1b 1e 00 0a 00 00 00 0e 28 01 00 00 01 14 00 00 00 00 00 a8
1b 1f 00 0a 00 00 00 0e 28 01 00 00 01 04 e5 b0 00 45 79 49
1b 20 00 06 00 00 00 0e 29 01 00 00 00 10 3f 91
1b 21 00 0a 00 00 00 0e 28 01 00 00 01 04 d6 23 d7 03 23 8a
1b 22 00 01 00 00 00 0e 00 e5 3b

//chip erase
1b 02 00 03 00 00 00 0e 02 03 01 f2 31
1b 03 00 02 00 00 00 0e 24 1c 8c 3c
1b 04 00 03 00 00 00 0e 25 01 01 ae 65
1b 05 00 03 00 00 00 0e 25 01 01 89 49
1b 06 00 02 00 00 00 0e 24 0f 8e 6c
1b 07 00 02 00 00 00 0e 24 0f 73 21
1b 08 00 02 00 00 00 0e 24 0f 5b b7
1b 09 00 02 00 00 00 0e 24 0f a6 fa
1b 0a 00 02 00 00 00 0e 24 1c bb 0e
1b 0b 00 03 00 00 00 0e 25 01 00 fb d9
1b 0c 00 03 00 00 00 0e 25 01 00 0e 1d
1b 0d 00 06 00 00 00 0e 29 01 00 00 00 10 ee 1a
1b 0e 00 06 00 00 00 0e 29 01 00 00 00 10 19 14
1b 0f 00 06 00 00 00 0e 29 01 00 00 00 08 7d 8d
1b 10 00 0a 00 00 00 0e 28 01 00 00 00 08 00 00 30 00 a3 39
1b 11 00 06 00 00 00 0e 29 01 00 00 00 10 e2 7b
1b 12 00 06 00 00 00 0e 29 01 00 00 00 10 15 75
1b 13 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 c2 a1
1b 14 00 06 00 00 00 0e 29 01 00 00 01 10 23 71
1b 15 00 0a 00 00 00 0e 28 01 00 00 01 04 e1 b0 00 40 5e cc
1b 16 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 f1 f1
1b 17 00 06 00 00 00 0e 29 01 00 00 01 10 d4 7f
1b 18 00 0a 00 00 00 0e 28 01 00 00 01 14 00 00 00 00 22 c8
1b 19 00 0a 00 00 00 0e 28 01 00 00 01 04 e5 b0 00 45 5b 29
1b 1a 00 06 00 00 00 0e 29 01 00 00 00 10 7d 58
1b 1b 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 ba 21
1b 1c 00 06 00 00 00 0e 29 01 00 00 01 10 4b 5c
1b 1d 00 0a 00 00 00 0e 28 01 00 00 01 04 e1 b0 00 41 af 5d
1b 1e 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 89 71
1b 1f 00 06 00 00 00 0e 29 01 00 00 01 10 bc 52
1b 20 00 0a 00 00 00 0e 28 01 00 00 01 14 00 00 00 00 79 51
1b 21 00 0a 00 00 00 0e 28 01 00 00 01 04 e5 b0 00 45 00 b0
1b 22 00 02 00 00 00 0e 24 01 2c 4d
1b 23 00 06 00 00 00 0e 25 20 00 00 00 00 68 d5
1b 24 00 01 00 00 00 0e 00 54 26

//read memory
1b 02 00 03 00 00 00 0e 02 03 01 f2 31
1b 03 00 02 00 00 00 0e 24 11 69 e7
1b 04 00 06 00 00 00 0e 29 01 00 00 00 10 2b 32
1b 05 00 06 00 00 00 0e 29 01 00 00 00 10 86 37
1b 06 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 10 f9
1b 07 00 06 00 00 00 0e 29 01 00 00 01 10 04 25
1b 08 00 0a 00 00 00 0e 28 01 00 00 01 04 e1 b0 00 40 f4 14
1b 09 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 45 09
1b 0a 00 06 00 00 00 0e 29 01 00 00 01 10 75 1b
1b 0b 00 0a 00 00 00 0e 28 01 00 00 01 14 00 00 00 00 d2 f0
1b 0c 00 0a 00 00 00 0e 28 01 00 00 01 04 e5 b0 00 45 89 71
1b 0d 00 06 00 00 00 0e 29 01 00 00 00 10 ee 1a
1b 0e 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 68 79
1b 0f 00 06 00 00 00 0e 29 01 00 00 01 10 6c 08
1b 10 00 0a 00 00 00 0e 28 01 00 00 01 04 e1 b0 00 41 e4 8d
1b 11 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 dc 81
1b 12 00 06 00 00 00 0e 29 01 00 00 01 10 cd 6c
1b 13 00 0a 00 00 00 0e 28 01 00 00 01 14 00 00 00 00 4b 78
1b 14 00 0a 00 00 00 0e 28 01 00 00 01 04 e5 b0 00 45 10 f9
1b 15 00 02 00 00 00 0e 24 01 63 ac
1b 16 00 06 00 00 00 0e 25 20 00 00 00 00 01 29
1b 17 00 0a 00 00 00 0e 28 05 ff e0 38 04 00 01 00 00 1c db
1b 18 00 0a 00 00 00 0e 28 05 ff e0 38 60 00 01 00 00 ea a7
1b 19 00 0a 00 00 00 0e 28 05 ff e0 38 70 00 01 00 00 a5 03

1b 1a 00 0a 00 00 00 0e 28 05 ff e0 38 04 00 02 00 00 33 e4
1b 1b 00 0a 00 00 00 0e 28 05 ff e0 38 60 00 02 00 00 9f 78
1b 1c 00 0a 00 00 00 0e 28 05 ff e0 38 70 00 02 00 00 f2 bc

1b 1d 00 0a 00 00 00 0e 28 05 ff e0 38 04 00 04 00 00 c7 42
1b 1e 00 0a 00 00 00 0e 28 05 ff e0 38 60 00 04 00 00 75 fe
1b 1f 00 0a 00 00 00 0e 28 05 ff e0 38 70 00 04 00 00 3a 5a

1b 20 00 0a 00 00 00 0e 28 05 ff e0 38 04 00 20 00 00 f5 eb
1b 21 00 0a 00 00 00 0e 28 05 ff e0 38 60 00 20 00 00 59 77
1b 22 00 0a 00 00 00 0e 28 05 ff e0 38 70 00 20 00 00 08 f3

1b 23 00 0a 00 00 00 0e 28 05 ff e0 38 04 02 00 00 00 a9 e1
1b 24 00 0a 00 00 00 0e 28 05 ff e0 38 60 02 00 00 00 27 1d
1b 25 00 0a 00 00 00 0e 28 05 ff e0 38 70 02 00 00 00 68 b9

1b 26 00 0a 00 00 00 0e 28 05 ff e0 38 04 00 40 00 00 9a 8e
1b 27 00 0a 00 00 00 0e 28 05 ff e0 38 60 00 40 00 00 36 12
1b 28 00 0a 00 00 00 0e 28 05 ff e0 38 70 00 40 00 00 23 56

1b 29 00 0a 00 00 00 0e 28 05 ff f0 34 00 00 01 00 01 c1 9a
1b 2a 00 0a 00 00 00 0e 28 05 ff f0 34 04 05 07 0a 0b 64 6d
1b 2b 00 0a 00 00 00 0e 28 05 ff f0 34 08 00 0b 00 0c 60 48
1b 2c 00 0a 00 00 00 0e 28 05 ff f0 34 0c 00 03 11 03 21 a7

1b 2d 00 07 00 00 00 0e 2c 40 05 00 00 00 00 1c 6b
1b 2e 00 07 00 00 00 0e 2c 40 05 00 00 01 00 fa f1
1b 2f 00 01 00 00 00 0e 00 38 81

//program

1b 02 00 03 00 00 00 0e 02 03 01 f2 31
1b 03 00 02 00 00 00 0e 24 11 69 e7
1b 04 00 02 00 00 00 0e 2b 1f 3d 64
1b 05 00 02 00 00 00 0e 2b 07 09 b5
1b 06 00 0a 00 00 00 0e 28 01 00 00 00 08 81 00 30 00 b5 60
1b 07 00 02 00 00 00 0e 2b 00 4c 5a
1b 08 00 06 00 00 00 0e 29 01 00 00 00 10 f7 09
1b 09 00 06 00 00 00 0e 29 01 00 00 00 10 5a 0c
1b 0a 00 06 00 00 00 0e 29 01 00 00 00 10 ad 02
1b 0b 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 5b 29
1b 0c 00 06 00 00 00 0e 29 01 00 00 01 10 9b 06
1b 0d 00 0a 00 00 00 0e 28 01 00 00 01 04 e1 b0 00 40 c7 44
1b 0e 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 68 79
1b 0f 00 06 00 00 00 0e 29 01 00 00 01 10 6c 08
1b 10 00 0a 00 00 00 0e 28 01 00 00 01 14 00 00 00 00 5a 48
1b 11 00 0a 00 00 00 0e 28 01 00 00 01 04 e5 b0 00 45 23 a9
1b 12 00 06 00 00 00 0e 29 01 00 00 00 10 15 75
1b 13 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 c2 a1
1b 14 00 06 00 00 00 0e 29 01 00 00 01 10 23 71
1b 15 00 0a 00 00 00 0e 28 01 00 00 01 04 e1 b0 00 41 d7 dd
1b 16 00 0a 00 00 00 0e 28 01 00 00 01 04 e7 b0 00 44 f1 f1
1b 17 00 06 00 00 00 0e 29 01 00 00 01 10 d4 7f
1b 18 00 0a 00 00 00 0e 28 01 00 00 01 14 00 00 00 00 22 c8
1b 19 00 0a 00 00 00 0e 28 01 00 00 01 04 e5 b0 00 45 5b 29
1b 1a 00 02 00 00 00 0e 24 01 4b 3a
1b 1b 00 06 00 00 00 0e 25 20 00 00 00 00 70 17
1b 1c 00 0a 00 00 00 0e 28 05 ff e0 38 04 00 01 00 00 75 6b
1b 1d 00 0a 00 00 00 0e 28 05 ff e0 38 60 00 01 00 00 d9 f7
1b 1e 00 0a 00 00 00 0e 28 05 ff e0 38 70 00 01 00 00 88 73
1b 1f 00 0a 00 00 00 0e 28 05 ff e0 38 04 00 02 00 00 00 b4
1b 20 00 0a 00 00 00 0e 28 05 ff e0 38 60 00 02 00 00 d5 d1
1b 21 00 0a 00 00 00 0e 28 05 ff e0 38 70 00 02 00 00 9a 75
1b 22 00 0a 00 00 00 0e 28 05 ff e0 38 04 00 04 00 00 b1 ab
1b 23 00 0a 00 00 00 0e 28 05 ff e0 38 60 00 04 00 00 1d 37
1b 24 00 0a 00 00 00 0e 28 05 ff e0 38 70 00 04 00 00 70 f3
1b 25 00 0a 00 00 00 0e 28 05 ff e0 38 04 00 20 00 00 c6 bb
1b 26 00 0a 00 00 00 0e 28 05 ff e0 38 60 00 20 00 00 74 07
1b 27 00 0a 00 00 00 0e 28 05 ff e0 38 70 00 20 00 00 3b a3
1b 28 00 0a 00 00 00 0e 28 05 ff e0 38 04 02 00 00 00 c0 51
1b 29 00 0a 00 00 00 0e 28 05 ff e0 38 60 02 00 00 00 6c cd
1b 2a 00 0a 00 00 00 0e 28 05 ff e0 38 70 02 00 00 00 3d 49
1b 2b 00 0a 00 00 00 0e 28 05 ff e0 38 04 00 40 00 00 d1 5e
1b 2c 00 0a 00 00 00 0e 28 05 ff e0 38 60 00 40 00 00 5f a2
1b 2d 00 0a 00 00 00 0e 28 05 ff e0 38 70 00 40 00 00 10 06
1b 2e 00 0a 00 00 00 0e 28 05 ff f0 34 00 00 01 00 01 ec ea
1b 2f 00 0a 00 00 00 0e 28 05 ff f0 34 04 05 07 0a 0b 57 3d
1b 30 00 0a 00 00 00 0e 28 05 ff f0 34 08 00 0b 00 0c e8 f0
1b 31 00 0a 00 00 00 0e 28 05 ff f0 34 0c 00 03 11 03 8b 7f
1b 32 00 06 00 00 00 0e 29 05 ff ff 0c 00 a5 57
1b 33 00 0a 00 00 00 0e 28 05 ff ff 0c 00 00 00 00 00 6f 86
1b 34 00 06 00 00 00 0e 29 05 ff fe 14 08 8e c7

1b 35 00 0a 01 00 00 0e 2d 40 00 00 00 05 00 00 00 00 df af 14 92 5f bd 8e af 00 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 00 04 25 00 01 02 00 00 ff ff 14 00 00 00 8f 28 00 00 8f c2 ff ff 18 00 00 00 00 00 00 00 87 68 00 00 01 01 00 00 00 00 00 00 19 6e 10 00 ff 00 00 00 ca 74 80 02 c1 64 80 01 43 5c 00 00 00 01 80 02 c1 68 80 01 8a 54 ff ff ff ff 80 02 c1 7c 80 01 89 b4 ff ff ff ff 80 02 c1 90 80 01 8f 38 ff ff ff ff 80 02 c1 a4 80 01 91 bc ff ff ff ff 80 02 c1 b4 80 01 88 d4 ff ff ff ff 80 02 c1 c8 80 01 8d 20 ff ff ff ff 80 02 c1 dc 80 01 90 ec ff ff ff ff 80 02 c1 ec 80 01 90 8c 00 00 00 01 80 02 c1 f4 80 01 53 cc 00 00 00 05 80 02 c1 fc 80 01 70 70 00 00 00 05 80 02 c2 00 80 01 83 e8 00 00 00 05 80 02 c2 04 80 01 4f 14 00 00 00 05 80 02 c2 08 80 01 7f a0 e5 1f

1b 36 00 0a 01 00 00 0e 2d 40 00 00 00 05 00 00 01 00 00 00 00 05 80 02 c2 0c 80 01 7b 2c 00 00 00 05 80 02 c2 14 80 01 49 2c 00 00 00 05 80 02 c2 1c 80 01 4b 40 00 00 00 05 80 02 c2 24 80 01 47 50 00 00 00 05 80 02 c2 2c 80 01 6d 78 00 00 00 05 80 02 db c8 80 01 61 30 00 00 00 05 80 02 c2 30 80 01 46 a8 00 00 00 05 80 02 c2 34 80 01 58 10 00 00 00 05 80 02 c2 38 80 01 56 00 00 00 00 05 80 02 c2 3c 80 01 5c 30 00 00 00 05 80 02 c2 40 80 01 5a 20 00 00 00 05 80 02 c2 44 80 01 48 b0 00 00 00 05 80 02 c2 4c 80 01 74 14 00 00 00 05 80 02 c2 54 80 01 68 44 00 00 00 05 80 02 c2 58 80 01 77 50 00 00 00 05 80 02 c2 5c 80 01 66 10 00 00 00 07 80 02 c2 64 80 01 43 5c ff ff ff ff 80 02 c2 6c 80 00 c9 c4 00 00 00 01 80 02 c2 74 80 01 f9 b8 00 00 00 01 80 02 c2 7c 80 01 f9 98 00 00 00 01 80 02 c2 8c 80 01 3a bc 00 00 00 01 9d 2c

1b 37 00 01 00 00 00 0e 00 fc f7

出0入0汤圆

46
发表于 2008-5-6 15:42:27 | 只看该作者
顶一下,楼主辛苦了。

如果你是学校的老师的话,可以申请加入Atmel的大学计划,并可申请免费的实验室设备,如开发工具和开发板。

我在4个星期前申请加入大学计划,很快获得批准。随后以会员的身份申请了若干套开发工具,包括JTAGICMKII, ATNGW100和ATEVK1100。经过漫长等待(3个多星期)之后,终于告诉我申请的开发工具和开发板已经寄出,接下来有盼头了。

出0入0汤圆

47
发表于 2008-5-13 00:44:11 | 只看该作者
因为不可抗力(傻孩子安全,已和我联系!!),傻孩子委托我向大家道个歉,蜗牛ISP下载器原本预计本星期可出原形机,但是现在无限期搁置。
傻孩子在工作条件恢复后,会急速完善蜗牛ISP。
谨此,我火腿代表傻孩子向大家道歉!谢谢大家的支持!

出0入0汤圆

48
发表于 2008-5-13 02:08:09 | 只看该作者
这个不用道歉了吧  你的努力大家看得到 天灾面前 先保护好自己 保存好革_命的本钱

出0入0汤圆

49
发表于 2008-5-13 02:34:09 | 只看该作者
安全就好!

出0入0汤圆

50
发表于 2008-5-13 11:48:42 | 只看该作者
安全就好。

出0入0汤圆

51
发表于 2008-5-13 12:13:46 | 只看该作者
保重,天才。

出0入0汤圆

52
发表于 2008-5-15 00:53:48 | 只看该作者
保重

出0入296汤圆

53
 楼主| 发表于 2008-5-17 10:10:44 | 只看该作者
关于该项目目前进展的报告:

    阿莫和大家对该项目的厚爱程度,常常让我诚惶诚恐。傻孩子毕竟还是凡人,
有时候一点点进展就会让我以为“不过如此嘛”。譬如前一个月的时候,我成功
的读出了AVR32的IDCODE就以为,AVR32和Mega系列一样,非常简单。结果,实际
做起来才知道,AT官方还有很多重要的资料没有公布,要给AVR32进行下载,必须
要首先对AVR32的总线体系构架廖若指掌;现在我才知道JTAG只是一个纯粹的通讯
接口就和串口差不多,如果你不知道需要通讯的内容,一切都是惘然。
    有了总线,就有地址,有操作,有寄存器,有指令,有出错处理,有超时……
总结说来,AVR32的UC3系列,有一条大的总线阵列,这个阵列被称为HSB Matrix。
AVR32几乎所有的资源都挂接在这个总线上。我们ISP所要保存的程序就放在一个内
部FLASH中,这个内部的FLASH有一个专门的控制器FLASHC。FLASHC又有两个接口同
时直接或间接挂接在HSB上,一个用于直接的FLASH数据读取,一个则是挂接在设备
桥(PB)总线上的,通过这个设备桥可以访问AVR32单片机几乎所有内部资源的寄存
器,我们的FLASHC也不例外,PB与HSB有一个接口……这个接口工作在从机状态。那
么我们的JTAG如何于FLASHC建立联系呢?UC3还有一条专门的总线叫做SAB,根据我
的理解,这实际上是AVR32体系结构以外的一个附属总线,主要用于外部进行监测调
试和访问,可以说,SAB并不真正属于AVR32。它和AVR32的关系有点类似胎盘和胎儿
的关系。也就是说,JTAG提供的指令只是用来操作SAB总线的,我们必须要通过SAB
总线操作HSB,并通过HSB分别访问设备桥(PB)来操作FLASHC的寄存器实现ISP,通过
HSB的直接访问实现FLASH的读取。
    总结说来就是 JTAG<->SAB<->HSB<->PB-B<->FLASHC。
    AVR32每个从机都可以有自己的地址映射方式,也就是说地址可能是复杂映射的。
操作上面的链路,光依靠JTAG本身的资料是不够的……官方提供的资料实际上在关键
点上有缺失,比如前一版本的PDF居然找不到CHIP_ERASE指令。工欲善其事,必先利
其器,所以我才下大力气研发JTAG Hacker,想借此打开mkII与AVR32之间的“契约秘
密”。
    JTAG Hacker反馈回来的信息是惊人的……随便一个RESET操作,居然要对应大量
的OCD操作(JTAG<->SAB<->OCD)。mkII的协议中也出现了大量未公开的新指令。破解
工作步履维艰。最糟糕的方法就是通过JTAG Hacker录制JTAG时序,然后通过播放的
方法,实现AVR32的下载——该方法正在进一步实验。未来,大家很
可能只需要焊接一个工作在3.3v下的万用板,下载一个我提供的小程序,通过JTAG
Hacker的ISP版(里面包含了我们录制的JTAG时序),就可以实现下载。这是目前最廉
价的解决方案——当然也是最无奈的解决方案……
等我们进一步弄清楚OCD的
相关指令以后,才可能发布成品的AVR32下载器 Snail mkII。

    以上就是目前的研究报告。我知道,所谓希望越大,失望越大。恳求大家原谅我。
目前的进展就是如此。

出0入0汤圆

54
发表于 2008-5-17 10:23:35 | 只看该作者
【52楼】 Gorgon Meducer 傻孩子
哈哈,没问题啦,我们都非常支持你的,群内的JTAG HAKER再作最后测试呢,昨天凌晨铜板兄还在那里修改FPGA的代码,所以不要着急,我们是一个团队,要协同工作的~

出0入296汤圆

55
 楼主| 发表于 2008-5-17 10:33:48 | 只看该作者
调试的时候是否还是数据会丢失,我找到了一个可能的原因。更新程序如下。如果可能
给我邮寄一个你们调试过的确实能用的JTAG Hacker硬件端过来。我这里目前网络已经通
畅,正在逐步恢复实验室条件(还在9楼,楼的夹缝已经有1度的偏移角……很壮观)。

更新一处BUG,该BUG有一定概率导致与FPGA通讯时数据丢失
点击此处下载 JTAG Hacker AVR端采样程序 (文件大小:96K)

出0入0汤圆

56
发表于 2008-5-17 11:02:07 | 只看该作者
【54楼】 Gorgon Meducer 傻孩子
……安全第一,你的实验楼已经解除危楼警报了??我们调试完后,会快递过来的~记得给我发短信,给我下快递地址~

出0入296汤圆

57
 楼主| 发表于 2008-5-17 11:28:11 | 只看该作者
勉强吧……专家说,少数人上去还是可以的,记得掉一个重锤,做建议地震仪……情形不对就躲到厕所里面。
楼本身应该不会塌,但是要小心高空坠落物。

出0入0汤圆

58
发表于 2008-5-17 14:06:25 | 只看该作者
【56楼】 Gorgon Meducer 傻孩子
好危险……

出0入0汤圆

59
发表于 2008-5-17 18:26:27 | 只看该作者
安全第一!你要是没了是无可估量的大损失!

出0入0汤圆

60
发表于 2008-5-19 10:45:34 | 只看该作者
ATmel到底是做芯片的,还是做仿真器的?
开放下载方法会对ATmel造成什么影响?

我只看到51单片机公布所有资料后的如此强大的生命力。Atmel到底是怎么想的?

出0入0汤圆

61
发表于 2008-5-19 11:22:16 | 只看该作者
我的一点想法,看可否实现:
1、一般情况下,给实验板移植UBOOT,利用uboot的功能用串口、网络下载程序。
2、在uboot损坏的情况下,使用jtag下载程序,但傻孩子说破解有很大难度,那么可否考虑这个方案:
   1、用jtag控制UC3的外部总线,向外括的sram中写入一段程序A,该程序的功能是写flash
   2、再用jtag在外括sram写入要下载的程序B
   3、启动程序A,A将B烧录入flash。
   4、对于没有外括sram的系统,不知道jtag访问内部sram难不难,如果相对容易一点,按类似上述方法实现。
因为我对uc3没什么了解,只是有这个想法,不知道是否可行,请参考。谢谢。

出0入296汤圆

62
 楼主| 发表于 2008-5-19 18:41:58 | 只看该作者
JTAG可以直接访问内部SRAM。这个没有问题,关键是,要启动程序就需要OCD的一些功能……

出0入0汤圆

63
发表于 2008-5-21 11:32:44 | 只看该作者
占个位,向傻孩子学习!!
头像被屏蔽

出0入0汤圆

64
发表于 2008-5-22 07:39:46 | 只看该作者
哈哈,我也做一回标题党。为了吸引眼球,我将原标题:

[2008-05-17 Update]傻孩子破釜沉舟——Snail mkII for AVR32 UC3 进入冲刺阶段

改成了: 独家打造开源的50元AVR32下载线: Snail mkII for AVR32 UC3 进入冲刺阶段

如果傻孩子认为不适合,变改为原样吧 :)

出0入0汤圆

65
发表于 2008-5-22 08:13:45 | 只看该作者
想想这个50元的下载线为什么不是atmel公司自己做,
而是浪费avr32先锋们几个月甚至更长的时间.

出0入0汤圆

66
发表于 2008-5-22 09:02:49 | 只看该作者
是成本50啦……就是不涉及焊接等工序的……
如果是成品的话,价格会高一些……

出0入0汤圆

67
发表于 2008-5-22 20:28:46 | 只看该作者
我觉得这是ATMEL的事。他连基本的协议都不公布,凭什么给他做。现在好的MCU多的是,为什么一定要用ATMEL,没理由。
这样的工作意义很值得质疑。

出0入0汤圆

68
发表于 2008-5-22 21:13:06 | 只看该作者
armok站长:我提个建议给你。主动跟ATMEL联系,说明原因。要求提供协议和开发工具资料,你帮他推广AVR32。用傻孩子的这种工作精神,三个月肯定能搞定一个不比JLINK差的AVR32仿真器。
如果ATMEL不同意,不愿意提供任何技术资料,我觉得再做推广AVR32的事就没有任何意义了。
OURAVR推广AVR芯片的成果,ATMEL是瞎子也应该看得到。
从经济效益方面看,如果说推广AVR芯片有效益。但是推广AVR32至少在未来3年,我看不到一缕有经济效益的阳光。网站需要成本。

出0入0汤圆

69
发表于 2008-5-23 00:05:51 | 只看该作者
支持

出0入0汤圆

70
发表于 2008-5-23 04:42:49 | 只看该作者
了解一下,这个下载工具是使用什么许可协议?

最近我收到了STM32的免费开发工具,把AVRminiProg的AVR Dragon和JTAGICE mkII的部分已经移植到了STM32的芯片上,并且同时可以使用OpenOCD下载STM32的程序
JTAG速度相当理想,最高18MHz,Mega128下载速度达到30KB/s-40KB/s

如果可行的话,也想玩一下AVR32的JTAG下载

比较关心的问题:AVR32芯片的价格,最小系统的价格(先做编程器的话,最好在一个OK的最小系统上测试)

出0入296汤圆

71
 楼主| 发表于 2008-5-23 10:35:00 | 只看该作者
是这样的,用于AVR32的mkII使用了未曾公开的通讯指令,因而,移植缺乏足够的
资料。如果有了这些协议,那么谁都可以做出来……
管他ATMEL怎么样,反正我们自己做了,自己用麻……至少不用掏钱买mkII哈……

出0入0汤圆

72
发表于 2008-5-23 14:43:30 | 只看该作者
直接想破解ULINK一样破解一个嘛。为这个花费太多精力了。

出0入296汤圆

73
 楼主| 发表于 2008-5-23 14:50:43 | 只看该作者
投入越多,越舍不得放开嘴了……
食之无味,弃之可惜……

出0入0汤圆

74
发表于 2008-5-23 17:23:52 | 只看该作者
to 【72楼】 Gorgon Meducer 傻孩子:
我原来的意思是Snail mkII for AVR32 UC3是基于哪个开源协议的?
已经看到了LZ的License。

我其实很不情愿做没有公开协议的东西,不过原来就在某些市场看好AVR32,而且我应该算是前几批玩过AVR32的人了吧。
应该是2年前,Atmel刚刚完成AVR32的时候,那是只有AP7000和STK1000,一个德国人来上海培训FAE,偶就是其中之一,当时利用课间移植了一个Webserver(Linux下应该不费吹灰之力)
再加上手上的JTAGICE mkII平台基本成熟,就想给自己定制个编程器或者调试器。
以还还可能玩玩AVRX,不过,似乎还没有代理能提供这些芯片的样片。

现在有没有哪里可以败到AVR32 UC3的最小系统板?需要基础外围电路,并留JTAG接口的。什么价格?

to 【73楼】 AVR_ARM:
ULink2早就被PJ了,如果自己做JTAG调试器的话,可以使用开源的OpenOCD,现在IAR ARM 5.11可以通过DBG Server支持OpenOCD,不过速度确实慢了一些。

to 【44楼】 Gorgon Meducer 傻孩子:
很好,看到敌人了,目前看来一共7个!
能认清楚的4个,朦胧的2个,不认识的1个
0x24为什么是CMND_SAB_RESET?



认真研究了一下:
/// STK500v2 Command: RW IR
/// param1: IR(5 bits)
#define JTAGICE_CMND_RW_IR                                        0x24
/// STK500v2 Command: RW DR
/// para1: DR Len(in bits)
/// para2: DR
#define JTAGICE_CMND_RW_DR                                        0x25
/// STK500v2 Command: Write SAB
/// param1: addr(36 bits)
/// param2: data(32 bits)
#define JTAGICD_CMND_WRITE_SAB_MEMROY                0x28
/// STK500v2 Command: Read SAB
/// param1: addr(36 bits)
#define JTAGICD_CMND_READ_SAB_MEMROY                0x29
/// STK500v2 Command: 2B
/// param1: unknown,TMS?(1 byte)
#define JTAGICE_CMND_2B                                                0x2B
/// STK500v2 Command: AVR32WriteMemory
/// param1: Len(in WORDs)
/// prarm2: unknown,MemoryType?(4 bytes)
/// param3: addr(32 bits)
/// param4: data
#define JTAGICE_CMND_AVR32_WRITE_MEMORY                        0x2C
/// STK500v2 Command: AVR32ReadMemory
/// param1: Len(in WORDs)
/// prarm2: unknown,MemoryType?(4 bytes)
/// param3: addr(32 bits)
/// param4: data
#define JTAGICE_CMND_AVR32_READ_MEMORY                        0x2D

目前不清楚的地方:
命令0x2B,难道是WriteTMS?
命令0x2C,第二个参数00 00 00 05是什么意思,MemoryType?
JTAGICE mkII回复什么?

以上结论由LZ贴出的数据得出,打官司,找LZ

前一段时间正和JTAG打的火热,移植了USBprog的OpenOCD功能到STM32上,速度太慢,自己考虑过优化其协议,有一些优化方式现在看来和JTAGICE mkII编程AVR32的协议类似

PS:看这个协议比以前看AVR Dragon的高压编程的PP_STACK的含义简单多了

出0入0汤圆

75
发表于 2008-5-23 21:10:49 | 只看该作者
Gorgon Meducer 傻孩子 你好!请问你的上位机软件我怎么下下来打不开

出0入0汤圆

76
发表于 2008-5-23 21:13:41 | 只看该作者
Gorgon Meducer 傻孩子 你好!请问你的上位机软件我怎么下下来打不开如图
如图 (原文件名:未命名1.JPG)

出0入0汤圆

77
发表于 2008-5-23 23:02:34 | 只看该作者
到网上下载 MSCOMM32.ocx 文件,
然后运行 c:\>regsvr32.exe MSCOMM32.ocx
这是一个串口操作的activex控件

出0入0汤圆

78
发表于 2008-5-24 01:41:05 | 只看该作者
mark.

出0入296汤圆

79
 楼主| 发表于 2008-5-24 10:34:25 | 只看该作者
to 【75楼】 chengyingavr

    谢谢你的分析。您的分析和我的几乎相同。关于2C和2D部分,您的分析稍微有点出入。
这里不方便直接说明,欢迎您加入我们的团队。您也可以直接加我的QQ539777763,我会给
您提供更详细的资料。

出0入0汤圆

80
发表于 2008-5-24 14:01:22 | 只看该作者
过两天最好变成300元。这才符合与时俱进的精神。

出0入296汤圆

81
 楼主| 发表于 2008-5-24 14:44:41 | 只看该作者
标题不是我修改的……我做的蜗牛仍然是50的成本。如果把USB芯片由CP2102换成FT232就是当提高一点。
具体定价不是我定哦……因为是论坛独家销售哈……

出0入0汤圆

82
发表于 2008-5-24 15:18:56 | 只看该作者
【82楼】 luxinsun
积分:824
派别:
等级:------
来自:福建厦门
过两天最好变成300元。这才符合与时俱进的精神。  

很好,为了给大家做一个可靠的下载器,我们不得不上调了成本……使用好的元件。是我们的设计能力不行。
既然这么与时俱进,luxinsun自己生产一个50元的UC3下载器吧

出0入0汤圆

83
发表于 2008-5-24 18:25:23 | 只看该作者
谢谢! 我试下 请问你们用AVR32了吗?不知道怎么样 呵呵

出0入296汤圆

84
 楼主| 发表于 2008-5-24 18:28:13 | 只看该作者
实际上……如果不用USB转串口的芯片……应该可以控制在40以内……
但这个是原料成本。如果楼上愿意用这个原料成本来广交天下豪杰,我也很
欢迎哈。

出0入0汤圆

85
发表于 2008-5-24 19:39:12 | 只看该作者
atmel不公布协议,我对这个不感兴趣,各方面都不看好。其实我对atmel越来越反感,现在好的MCU很多。
我从2005年开始使用ATMEL芯片,累计有10万片。但是现在我的产品全部更换了其他公司的芯片,低端的用HT,高可靠的用MOTO,高性能的用ARM。用这三种芯片基本能满足要求。
ATMEL对做出过贡献的网站一毛不拔,应该是铁公鸡了。开发工具小家子气,感觉他是卖开发工具,而不是卖芯片的。工具协议不公布,把开发工具硬件做的很复杂,一片IC搞定的,他一定要用10片IC做硬件数据链。
对“【84楼】 kingofkings 技术火腿(KoK)”提出批评。讨论问题不要上火,对身体不好,也不符合网站的讨论气氛。请以后改了这种恶习。
以上代表我个人观点,请讨论,提出不同看法。
还有悄悄告诉大家一个秘密。我们公司对产品大规模的升级,用了周立功的芯片和技术支持,很快、很顺利的完成了。使用了他很多原程序。存在其他看法的,就当我没说。

出0入0汤圆

86
发表于 2008-5-24 21:10:46 | 只看该作者
问一下LS:
HT和MOTO都公开了开发工具的和下载调试接口的协议吗?
偶对HT的也比较感兴趣,一些低端的可能会用,不过我用的话,基本都会自己做开发工具

snail成本要50?没看出来。
没找到原理图,不过建议VCC输入处+一个自回复保险丝(如果JTAG接口可以对外供电的话)

是不是收到Atmel的威胁,所以不能公开PJ出来的资料啊?哈哈
感觉Atmel提供了不少的资料了,包括JTAG的所有命令,和寄存器,大部分mkII的协议其实通过测试avr32program,比较容易的得到的,今天又找到了一份比较详细的资料包括命令的回复数据,看来我对mkII命令的猜测还是比较准的,哈哈。
不过难度只有在自己开发中才能体会的

出0入0汤圆

87
发表于 2008-5-24 21:29:41 | 只看该作者
HT的开发工具不需要任何投资,直接借给你或送给你使用。
MOTO HCS08的调试命令数据手册后面有。他有官方支持开源的仿真器资料,可以自己做。其实也没有必要自己做,直接申请一个免费的就好了。买也就100块钱。

出0入296汤圆

88
 楼主| 发表于 2008-5-25 14:12:18 | 只看该作者
to 【88楼】 chengyingavr
    蜗牛学官方mkII,不供电,只检测目标板电压……

to 【87楼】 luxinsun And to 【84楼】 kingofkings 技术火腿(KoK)

    大家消消气……蜗牛的成本主要来源于M32和FT232……交流嘛,以和为贵。



另外,AT铁公鸡……阿莫应该最有感受吧……

出0入0汤圆

89
发表于 2008-5-25 17:34:57 | 只看该作者
如果按照万利公布的stm32的价格,m32和ft232应该可用一片STM32F103C6/8/B代替,岂不是性能提高,价格降低。

出0入296汤圆

90
 楼主| 发表于 2008-5-25 18:36:09 | 只看该作者
to 【91楼】 ifree64
    因为我不会ARM……

出0入0汤圆

91
发表于 2008-5-25 20:54:28 | 只看该作者
【92楼】 Gorgon Meducer 傻孩子
stm32其实使用起来很简单,我觉得比51MCU简单。我现在最怕51MCU。
诚意推荐。

出0入0汤圆

92
发表于 2008-5-25 21:42:02 | 只看该作者
STM32确实很爽:http://group.ednchina.com/619/9688.aspx

出0入296汤圆

93
 楼主| 发表于 2008-5-26 00:15:14 | 只看该作者
谢谢大家的推荐,等我躲过地震,一定尝试下这个好东东。

出0入0汤圆

94
发表于 2008-5-26 18:55:49 | 只看该作者
【93楼】 luxinsun
强人,,stm32到您那竟然比51都简单了!!厉害 !

出0入0汤圆

95
发表于 2008-5-26 19:09:05 | 只看该作者
【96楼】 Forever.c 在路上。。
对我来说确实如此。

出0入0汤圆

96
发表于 2008-5-26 19:13:29 | 只看该作者
那有机会交流一下,正在使用这个芯片!!

出0入0汤圆

97
发表于 2008-6-11 14:42:57 | 只看该作者
强!mark

出0入0汤圆

98
发表于 2008-6-13 21:39:42 | 只看该作者
【96楼】 Forever.c 在路上。。
估计93楼也是没有怎么研究汇编的家伙,哈哈!

出0入0汤圆

99
发表于 2008-6-13 23:14:58 | 只看该作者
MARK..UP

出0入0汤圆

100
发表于 2008-6-19 19:20:40 | 只看该作者
强! 顶个先,有机会一定要看看!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 03:07

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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