Ergebnis 1 bis 8 von 8

Thema: Attiny2313 nicht mit Diamex AVR programmierbar

  1. #1
    Neuer Benutzer
    Registriert seit
    05.02.2020
    Beiträge
    5
    Total Downloaded
    0

    Attiny2313 nicht mit Diamex AVR programmierbar

    Moin,

    ich habe einen Diamex AVR ISP Programmer. Er funktioniert, Attiny85's kann ich damit z.b. programmieren, kein Problem. Ich arbeite unter Linux, der ISP wird erkannt:

    Code:
    [ 6238.979623] usb 2-2: new full-speed USB device number 6 using xhci_hcd
    [ 6238.998410] usb 2-2: New USB device found, idVendor=16c0, idProduct=2a9b
    [ 6238.998419] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    [ 6238.998424] usb 2-2: Product: DX-ISP
    [ 6238.998428] usb 2-2: Manufacturer: Stange Distribution
    [ 6238.998734] usb 2-2: ep 0x82 - rounding interval to 1024 microframes, ep desc says 2040 microframes
    [ 6238.999148] cdc_acm 2-2:1.0: ttyACM0: USB ACM device
    Auf das Device /dev/ttyACM0 kann ich schreiben (Mitglied in der Gruppe dialout):

    Code:
    scip@nubic: % id
    uid=1001(scip) gid=1001(scip) groups=1001(scip),4(adm),5(tty),20(dialout),24(cdrom),27(sudo),30(dip),46(plugdev),110(lpadmin),125(sambashare),999(docker)
    
    [05.Feb 16:16:01] --- [~] ---
    scip@nubic: % l /dev/ttyACM0 
    crw-rw---- 1 root dialout 166, 0 Feb  5 16:16 /dev/ttyACM0
    Wenn ich den 2313 flashen will, kommt folgende Meldung:

    Code:
    scip@nubic: % make load
    /usr/local/bin/avrdude -p t2313 -c stk500v2 -P /dev/ttyACM0 -b 9600 -B 1 -v -e -U flash:w:"2313test.hex"
    
    avrdude: Version 6.3, compiled on Feb  4 2020 at 19:20:46
             Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
             Copyright (c) 2007-2014 Joerg Wunsch
    
             System wide configuration file is "/usr/local/etc/avrdude.conf"
             User configuration file is "/home/scip/.avrduderc"
             User configuration file does not exist or is not a regular file, skipping
    
             Using Port                    : /dev/ttyACM0
             Using Programmer              : stk500v2
             Overriding Baud Rate          : 9600
             Setting bit clk period        : 1.0
             AVR Part                      : ATtiny2313
             Chip Erase delay              : 9000 us
             PAGEL                         : PD4
             BS2                           : PD6
             RESET disposition             : possible i/o
             RETRY pulse                   : SCK
             serial program mode           : yes
             parallel program mode         : yes
             Timeout                       : 200
             StabDelay                     : 100
             CmdexeDelay                   : 25
             SyncLoops                     : 32
             ByteDelay                     : 0
             PollIndex                     : 3
             PollValue                     : 0x53
             Memory Detail                 :
    
                                      Block Poll               Page                       Polled
               Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
               ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
               eeprom        65     6     4    0 no        128    4      0  4000  4500 0xff 0xff
               flash         65     6    32    0 yes      2048   32     64  4500  4500 0xff 0xff
               signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
               lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
               lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
               hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
               efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
               calibration    0     0     0    0 no          2    0      0     0     0 0x00 0x00
    
             Programmer Type : STK500V2
             Description     : Atmel STK500 Version 2.x firmware
             Programmer Model: AVRISP
             Hardware Version: 15
             Firmware Version Master : 2.10
             Vtarget         : 0.0 V
             SCK period      : 0.1 us
    
    avrdude: stk500v2_command(): command failed
    avrdude: initialization failed, rc=-1
             Double check connections and try again, or use -F to override
             this check.
    
    
    avrdude done.  Thank you.
    
    make: *** [load] Error 1
    Ich habe die neueste Version von avrdude installiert. Schaltplan hängt mit dran, bitte verzeiht mir die nicht ganz korrekte Beschaltung/Beschriftung des ISP-Headers, ich hab das in Eagle irgendwie nicht richtig hingekriegt. Die Pins sind jedenfalls richtig belegt, wenn man den ISP-Stecker von unten mit dem Pinnibel oben abschaut:

    Code:
    1) RST  3) SCK   5) MISO
    2) VCC  4) MOSI  6) GND
    Der Attiny ist bislang unbenutzt. Die DIP-Schalter hab ich beide auf OFF.


    Danke im Voraus für Eure Hilfe!
    Angehängte Grafiken Angehängte Grafiken

  2. #2
    Administrator Avatar von er@diamex
    Registriert seit
    26.06.2005
    Ort
    Berlin
    Beiträge
    313
    Total Downloaded
    3,8 KB
    Ein 10µF am Reset-Pin darf nicht sein. Der blockiert den RESET vom Prgrammer. Hier maximal 100n dran oder am besten sogar weglassen. Dann sollte das funktionieren.
    Erwin, Elektronik- und Software-Spezialist

  3. #3
    Neuer Benutzer
    Registriert seit
    05.02.2020
    Beiträge
    5
    Total Downloaded
    0
    Hallo Erwin,

    Danke für die schnelle Antwort! Ja, das dachte ich mir eigentlich schon, habs aber in einer anderen Schaltung gesehen und mir gedacht, probiers aus (bzw ich war unsicher). Jedenfalls wenn ich den weglasse, verändert sich nichts, das Verhalten bleibt gleich. Als ob der ISP den Chip nicht findet.

    Wenn ich das übrigens mit -F mache, meint er:

    Code:
    avrdude: stk500v2_command(): command failed
    avrdude: initialization failed, rc=-1
    avrdude: AVR device initialized and ready to accept instructions
    avrdude: Device signature = 0xc837c3
    avrdude: Expected signature for ATtiny2313 is 1E 91 0A

  4. #4
    Administrator Avatar von er@diamex
    Registriert seit
    26.06.2005
    Ort
    Berlin
    Beiträge
    313
    Total Downloaded
    3,8 KB
    Das ist ein typisches Zeichen dafür, dass die SPI-Taktfrequenz zu hoch ist. Soviel ich weiß, läuft der Tiny2313 im Auslieferzustand nur mit 1 MHz Takt, soll heißen, dass der Programmiertakt sehr niedrig sein muss. Einfach mal den Parameter -B xxx schrittweise erhöhen und immer wieder testen.
    Erwin, Elektronik- und Software-Spezialist

  5. #5
    Neuer Benutzer
    Registriert seit
    05.02.2020
    Beiträge
    5
    Total Downloaded
    0
    Ich bin bis -B 10000 hochgegangen, nix

  6. #6
    Administrator Avatar von er@diamex
    Registriert seit
    26.06.2005
    Ort
    Berlin
    Beiträge
    313
    Total Downloaded
    3,8 KB
    Egal wie ich den ISP-Stecker drehe, die Belegung stimmt nicht, vergleche das mal mit der Anleitung für den AVR-Prog. Wenn ein anderer Controller funktioniert, kann es sicher nur die Verbindung sein.
    Ich hoffe, Du hast noch einen 2313 in Reserve (ein Elektroniker kauft niemals nur einen Controller, so teuer sind die ja nun auch nicht). Vielleicht sind ja beim ersten Versuch der Programmierung (noch mit denm Elko an der Reset-Leitung) die Fuses verändert worden. Du kannst auch mal testweise einen Quarz anlöten oder den OSZ-Ausgang vom 10-poligen Stecker mit dem Quarz-Eingang des 2313 verbinden. Eventuell auch MISO/MOSI vertauscht, passiert sogar den Experten.
    Mehr Tipps kann ich jetzt auch nicht mehr geben. Es ist normalerweise sehr einfach die Controller zu programmieren, wenn man alles richtig anschließt.
    Erwin, Elektronik- und Software-Spezialist

  7. #7
    Neuer Benutzer
    Registriert seit
    05.02.2020
    Beiträge
    5
    Total Downloaded
    0
    Ok, ich hab die PIN-Belegung nochmal gecheckt. Ich komm da immer durcheinander bei den Angaben, Ansicht von unten oder oben, vom Stecker oder Sockel, args

    Also, einer der 2313er ist wohl ganz hinüber. Bei einem anderen krieg ich:

    Code:
    avrdude: AVR device initialized and ready to accept instructions
    
    Reading | ################################################## | 100% 0.00s
    
    avrdude: Device signature = 0x1e910a (probably t2313)
    avrdude: safemode: hfuse reads as DF
    avrdude: safemode: efuse reads as FF
    avrdude: erasing chip
    avrdude: reading input file "2313test.hex"
    avrdude: input file 2313test.hex auto detected as Intel Hex
    avrdude: writing flash (212 bytes):
    
    Writing | ################################################## | 100% 0.07s
    
    avrdude: 212 bytes of flash written
    avrdude: verifying flash memory against 2313test.hex:
    avrdude: load data flash data from input file 2313test.hex:
    avrdude: input file 2313test.hex auto detected as Intel Hex
    avrdude: input file 2313test.hex contains 212 bytes
    avrdude: reading on-chip flash data:
    
    Reading | ################################################## | 100% 0.05s
    
    avrdude: verifying ...
    avrdude: verification error, first mismatch at byte 0x0000
             0xff != 0x12
    avrdude: verification error; content mismatch
    
    avrdude: safemode: Verify error - unable to read hfuse properly. Programmer may not be reliable.
    avrdude: safemode: hfuse reads as DF
    avrdude: safemode: Verify error - unable to read efuse properly. Programmer may not be reliable.
    avrdude: safemode: Sorry, reading back fuses was unreliable. I have given up and exited programming mode
    
    avrdude done.  Thank you.
    
    make: *** [load] Error 1
    Wenn ich die Fuses auslese, krieg ich:

    Code:
    avrdude: safemode: Fuses OK (E:FF, H:DF, L:64)
    Hm, also hab ich die Fuses auch nochmal neu geschrieben (Werte mit http://www.engbedded.com/fusecalc erzeugt):

    /usr/local/bin/avrdude -p t2313 -c stk500v2 -P /dev/ttyACM0 -b 9600 -B 1 -v -u -v -U lfuse:w:0x64:m -U hfuse:w:0xcf:m -U efuse:w:0xff:m
    [/code]

    Das hat geklappt, alles wurde verified, etc. Ein readfuses sagt nun:

    Code:
    avrdude: safemode: Fuses OK (E:FF, H:CF, L:64)
    Aber programmieren kann ich den Chip trotzdem noch nicht, es bleibt nun bei dieser Meldung hier:

    Code:
    ....
    avrdude: Device signature = 0x1e910a (probably t2313)
    avrdude: safemode: hfuse reads as CF
    avrdude: safemode: efuse reads as FF
    avrdude: erasing chip
    avrdude: reading input file "2313test.hex"
    avrdude: input file 2313test.hex auto detected as Intel Hex
    avrdude: writing flash (242 bytes):
    
    Writing | ################################################## | 100% 0.07s
    
    avrdude: 242 bytes of flash written
    avrdude: verifying flash memory against 2313test.hex:
    avrdude: load data flash data from input file 2313test.hex:
    avrdude: input file 2313test.hex auto detected as Intel Hex
    avrdude: input file 2313test.hex contains 242 bytes
    avrdude: reading on-chip flash data:
    
    Reading | ################################################## | 100% 0.06s
    
    avrdude: verifying ...
    avrdude: verification error, first mismatch at byte 0x0000
             0xff != 0x12
    avrdude: verification error; content mismatch
    
    avrdude: safemode: Verify error - unable to read hfuse properly. Programmer may not be reliable.
    avrdude: safemode: hfuse reads as CF
    avrdude: safemode: efuse reads as FF
    avrdude: safemode: Fuses OK (E:FF, H:CF, L:64)
    
    avrdude done.  Thank you.
    
    make: *** [load] Error 1
    Ich hab noch 2 von denen in der Schublade, aber ich trau mich nicht, die auch auszuprobieren, nachher sind alle kaputt

  8. #8
    Neuer Benutzer
    Registriert seit
    05.02.2020
    Beiträge
    5
    Total Downloaded
    0
    So, nun hat's funktioniert.

    Der letzte Fehler war die Versorgungsspannung. Ich hab ja den MCP1702-3302 im Einsatz, der 3v3 abgibt. Zum Programmieren reicht das offensichtlich nicht aus. Fuses Schreiben und Lesen geht damit aber.

    Ich hab jetzt also einen 5V Regler genommen, programmiert und zack: es blinkt

    Ich freu mich wie Bolle!



    Danke für die Unterstützung,
    Tom

    PS: anbei noch ein korrigierter Plan.
    Angehängte Grafiken Angehängte Grafiken
    Geändert von rexr4 (06.02.2020 um 14:07 Uhr) Grund: Plan Korrektur

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •