avr-chat
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [avr-chat] How to do JTAG only programming


From: hubert-b
Subject: Re: [avr-chat] How to do JTAG only programming
Date: Sun, 11 Sep 2011 17:57:37 +0200
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.16) Gecko/20110818 Iceowl/1.0b1 Icedove/3.0.11

Hi Joerg & mailling list!

Thanks for your hints, I just tried them and with the config file snippet in [1] (see below) I managed to read the signature, the fuses and the lockbits via avrdude! I also verfied every reading using AVR Studio - all of them are okay. Unfortunately, reading the eeprom as well as the flash isn't working. In both cases, avrdude just hangs with this error message:

---------------------------------%<---------------------------------
avrdude: reading flash memory:

Reading | | 0% 0.00savrdude: jtagmkII_paged_load(.., flash, 128, 40960) avrdude: jtagmkII_paged_load(): Sending read memory command: 0x82 (1 bytes msg) avrdude: jtagmkII_paged_load(): Sending read memory command: 0x82 (1 bytes msg)
[last line repeated endlessly]

---------------------------------%<---------------------------------

Funny thing is: When I comment the "page_size" as well as the "num_pages" parameters from the eeprom section I can successfuly read the eeprom. Appyling the same "trick" to the flash section is not working (avrdude then complains about "Floating point exception"). Seems that we're almost there but I need a little more help. Any ideas?

Kind regards
Andreas

[1]: Partly working config file snippet for ATmega406

---------------------------------%<---------------------------------
#------------------------------------------------------------
# ATmega406
#------------------------------------------------------------

part
    id                          = "m406";
    desc                        = "ATMEGA406";
    has_jtag                    = yes;
    signature                   = 0x1e 0x95 0x07;

    # STK500 parameters (parallel programming IO lines)
    pagel                       = 0xa7;
    bs2                         = 0xa0;
    serial                      = no;
    parallel                    = yes;

    # STK500v2 HV programming parameters, from XML
    pp_controlstack             = 0x0e, 0x1e, 0x0f, 0x1f, 0x2e, 0x3e, 0x2f, 
0x3f,
                                  0x4e, 0x5e, 0x4f, 0x5f, 0x6e, 0x7e, 0x6f, 
0x7f,
                                  0x66, 0x76, 0x67, 0x77, 0x6a, 0x7a, 0x6b, 
0x7b,
                                  0xbe, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00, 
0x00;

    # JTAG ICE mkII parameters, also from XML files
    allowfullpagebitstream      = no;
    enablepageprogramming       = yes;
    idr                         = 0x51;
    rampz                       = 0x00;
    spmcr                       = 0x57;
    eecr                        = 0x3f;

    memory "eeprom"
        paged           = no;
        size            = 512;
        page_size       = 4;
        num_pages       = 128;
    ;

    memory "flash"
        paged           = no;
        size            = 40960;
        page_size       = 128;
        num_pages       = 320;
    ;

    memory "hfuse"
        size            = 1;
    ;

    memory "lfuse"
        size            = 1;
    ;

    memory "lockbits"
        size            = 1;
    ;

    memory "signature"
        size            = 3;
    ;
---------------------------------%<---------------------------------

On 08/24/2011 09:57 PM, Joerg Wunsch wrote:
address@hidden wrote:

I'm trying to add support for ATmega406 to the avrdude.conf but
apparently, this MCU does not support the "SPI Serial Instruction
Programming Set", so I don't know what to enter in the "pgm_enable",
"chip_erase", "read", "write", "loadpage", etc. sections.

I think you could simply omit those in that case.  The JTAG ICE code
will never reference them anyway.

Can someone assist me on that? I already have the "JTAG Instruction
Programming Set" of the ATmega406, but those instructions are split
into a TDI and a TDO part.

AVRDUDE doesn't talk JTAG by itself, it always relies on tools like
the JTAGICEmkII or AVR Dragon for that.  Thus, the low-level JTAG
instructions are not needed here.  (The communication with the ICE or
Dragon is described in appnote AVR067, this is what AVRDUDE uses.)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]