Atmega Fusebit Doctor

Begonnen von Brasletti, 03 April 2018, 22:41:03

Vorheriges Thema - Nächstes Thema

Brasletti

#45
So, Teile sind jetzt alle da!!! Ich hab mir mal einen Vollausbau zusammengelötet und muss sagen ich bin begeistert.  ;D 8)
So ein Teil sollte niemandem fehlen, der mit den Atmegas rumspielt! Mit der Erweiterung durch den ISP und dem USB Anschluss ist er richtig komfortabel zu nutzen. Wenn man die Fuses so setzt das der interne Taktgeber genutzt wird, kann man mit dem USBASP gleich den Bootloader/Hexfile flashen und falls nötig die Fuses hinterher wieder ändern.
Die Komfortfunktionen steuert man per Putty als Seriellen Konsole und dem entsprechenden COM Port mit 38400 Baud.

Auf V1.1 werde ich den ISP Port spiegeln damit die Belegung auf der Oberseite als Stiftleiste passt, geplant war eine Weibliche Buchse. Die kann man aber nur nutzen wenn man Wannenstecker am USBASP gegen eine Stiftleiste tauscht, sonst ist diese im Weg. Ich hatte noch eine abgewinkelte Buchse rumliegen und hab dann diese verwendet.
Für diejenigen, die Teile von mir bekommen, lege ich eine Stiftleiste bei. Beim Anschließen müsst Ihr aber unbedingt auf die Belegung achten, da der ISP spiegelverkehrt ist wenn er auf der Oberseite verlötet wird, d.h. am besten ein eigenes Kabel dafür basteln oder direkt anlöten.

Morgen müssten die Versandtaschen eintrudeln, dann wird verpackt und verschickt. Wer einen Atmega bestellt hat, brauch den nur noch aufstecken, aktuellst FW ist schon drauf  ;)

Viele Grüße
Brasletti

PeMue

Zitat von: Brasletti am 03 Mai 2018, 17:50:59
Mit der Erweiterung durch den ISP und dem USB Anschluss ist er richtig komfortabel zu nutzen.
Und wer wollte den USB Anschluss? Wer genau?  ;D ;D ;D
Freut mich, dass meine Ideen doch nicht ganz so schlecht waren  ;)

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Brasletti

#47
So, Platinen und Teile sind in der Post...
Bei den Roten LEDs hab ich ne Ecke an der Verpackung abgeschnitten damit ihr die LEDs auseinanderhalten könnt.

Ranseyer

Danke für deinen Einsatz !
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

papa

#49
Ist alles angekommen. Gleich mal aufgebaut. Den funktionierenden DIP 328 hat er auch gleich als "Good" angezeigt. Einen Problem-China-TQFP hat er nicht hingekriegt. Da ist mir aber auch nicht klar, ob er vielleicht nicht überall Kontakt gehabt hat. Hatte den Chip aufgelötet. Werde wohl erst mal son TQFP-Adapter ordern, bevor ich die anderen probiere.

Noch ein paar Hinweise:
  - LED1 und LED2 sind nicht beschriftet
  - bei den TX und RX LEDs fehlt die Minus-Markierung.
  - T3 fehlt in der Excel-Stückliste

Und nochmal ein dickes Danke für Deine Mühe
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

Brasletti

#50
Zum Glück stimmt die Anzahl der BC857 = T1 und T3 ;) den Rest kannst Du doch aus den Eagle Files rauslesen... LED1 und LED2 sollten auch mit Good und Bad klar sein. Aber auf die nächste Platinenversion kommen deine Anregungen mit drauf :)

@Papa: versuch das ganze mal noch mit angeschlossenem RS232 Wandler und Konsole, da kommt das ganze Potential des Ganzen zur Geltung!

Viele Grüße

Brasletti

P.S. TFQP Sockel https://de.aliexpress.com/item/Free-shipping-Universal-IC-Adapter-Socket-LQFP-TQFP-QFP-32-to-DIP-28-TQFP32-QFP32-to/1929906824.html


papa

Zitat von: Brasletti am 07 Mai 2018, 23:23:59
@Papa: versuch das ganze mal noch mit angeschlossenem RS232 Wandler und Konsole, da kommt das ganze Potential des Ganzen zur Geltung!

Stimmt ja - an die Ausgaben habe ich gar nicht gedacht. Hm - muss ich mir wohl doch noch nen FT232 besorgen.

Zitat von: Brasletti am 07 Mai 2018, 23:23:59
P.S. TFQP Sockel https://de.aliexpress.com/item/Free-shipping-Universal-IC-Adapter-Socket-LQFP-TQFP-QFP-32-to-DIP-28-TQFP32-QFP32-to/1929906824.html

Mist - bei Ali streikt gerade das Payment-System.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

tndx

Hallo zusammen,

habe nun mit Hilfe von Brasletti eine Platine in Betrieb genommen, es sieht so aus, als würde das Ganze grundsätzlich funktioniern, jedoch komme ich in der eigentlichen Sache nicht weiter: vermeintlich "verfuste" Atmegas retten.

Der Reihe nach:
1. ich konnte beim Doc-Atmega ums Verrecken nicht efuse auf 0xFE setzen, avrdude sagte

avrdude: reading input file "0xFE"
avrdude: writing efuse (1 bytes):

Writing |                                                    | 0% 0.00s ***failed;
Writing | ################################################## | 100% 0.04s

avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0xFE:
avrdude: load data efuse data from input file 0xFE:
avrdude: input file 0xFE contains 1 bytes
avrdude: reading on-chip efuse data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0xfe != 0x06
avrdude: verification error; content mismatch

avrdude: safemode: efuse changed! Was fe, and is now 6
Would you like this fuse to be changed back? [y/n]


Geflasht habe ich den Atmega "in" einem Arduino Uno Klon, der vorher ohne Probleme lief.
2. Nach der Umstellung auf den internen Quarz habe ich versucht, efuse auf dem Breadboard zu setzen, doch mit demselben Ergebnis: efuse ließ sich nicht setzen. Das Flashen der FuseBit-Doctor-FW war aber ohne Weiteres möglich.
3. Eingesetzt im FuseBit-Doctor bekam ich Ausgaben auf der seriellen Konsole, ein "verfuster" Atmega 328 wurde erkannt, ich konnte die Fuses zurücksetzen, doch leider wurde der Atmega anschließend weder per ISP im Fusebit-Doctor erkannt (12V und FTDI-USB abgezogen) noch mit meiner alten, bewährten Schaltung mit Kondensatoren und PullUp-Widerstand erkannt, also ist der Atmega wohl noch nicht gesund, dachte ich.
4. Habe dann direkt im FuseBit-Doctor versucht, die Fuses so zu setzen, wie sie z.B. für den Fensterdrehgriffkontakt benötigt werden:
Type fuse LOW:       E2
Type fuse HIGH:      D0
Type fuse EXTENDED:  06
Writing E2 D0 06...  DONE
Verifying...         L:E2 H:D0 E:FE- FAIL!
Please try again...

Anschließend war der Atmega auch nicht per ISP ansprechbar.

Kann einer erkennen, wo das Problem liegt: an meinem FuseBit-Doctor, Fusebit-Doctor-ISP-Anschluß, meinen Atmegas, meiner Wenigkeit?

Brasletti

#53
Versuch mal Extended Fuse auf FE
Hab hier mal nen Link zu einem Fusebit Calculator http://www.engbedded.com/fusecalc/

Ich hab gerade gelesen das du FE nicht setzten kannst. Sorry

tndx

0xFE ist nicht zufällig gleich 0x06 (in diesem Fall) und wird nur von unterschiedlichen Aktoren unterschiedlich gelesen/gesetzt/interpretiert:

Doc-Atmega:
Setzen efuse=0xFE mit ISP nicht möglich, lesen ergibt:
avrdude: Device signature = 0x1e950f
avrdude: safemode: lfuse reads as E2
avrdude: safemode: hfuse reads as D0
avrdude: safemode: efuse reads as 6


Patient-Atmega:
Setzen efuse=0x06 mit FuseBit-Doc nicht möglich, lesen ergibt:
Read signature...    1E 95 0F
Searching chip...    Atmega328P
Read fusebits...     L:E2 H:D0 E:FE


:o  :o  :o

Mittlerweile bin ich etwas weiter, die mit FuseBit-Doc behandelten Patienten sind doch per ISP ansprechbar, allerdings nicht am FuseBit-Doc, und auch nur, wenn ich bei meinem USBasp den SlowMode-Jumper setze (von dem ich dachte, er sei seit dem Firmwareupdate auf die aktuellste USBasp-FW-Version nutzlos geworden). Hat denn bei jemandem USBasp direkt am FuseBit-Doc funktioniert?

Brasletti

Ich hab das gerade mal mit einem jungfreulichen 328P versucht. Direkt auf dem Fusbit Doc die Fuses (Low: E2 High: D0 Ext: FE) Funktioniert einwandfrei.
Lockbits auf 2F setzen geht auch!
Dann Bootloader flashen mit USBASP hat auch funktioniert.

Was spuckt dein Fusebit Doc auf der Konsole aus?

Brasletti

Ja aber du must erst per Fusebit Doc die Fuses auf den internen Taktgeber setzen, dann kannst du auch per USBASP über den ISP darauf zugreifen. Danach kannst du ja die Fuses wieder auf deine gewünschten Werte ändern wenn das der Bootloader oder dein Hexfile nicht schon macht.

tndx

Ich versuche aber efuse=0x06 zu setzen, wie z.B. hier beschrieben. Und da sagt mein FuseBit-Doc
Type fuse LOW:       E2
Type fuse HIGH:      D0
Type fuse EXTENDED:  06
Writing E2 D0 06...  DONE
Verifying...         L:E2 H:D0 E:FE- FAIL!


efuse wird aber auf 0xFE gesetzt!? Könntest Du das bei Dir versuchen?

Was den USBasp angeht: ich kann auf denselben Atmega nicht am FuseBit-Doc per ISP zugreifen, wohl aber direkt am Breadboard, ohne FuseBit-Doc dazwischen. Das kann dann doch nicht am Atmega liegen, oder?

Brasletti

Bei mir kamen nach dieser Anleitung auch immer Verification Errors. Danach habe ich den oben geposteten Fuse Calculator gefunden, ganz unten steht die Erklärung dazu... die richtige Einstellung per avrdude ist
avrdude -p m328p -P usb -c usbasp -B 3 -U lfuse:w:0xE2:m -U hfuse:w:0xD0:m -U efuse:w:0xFE:m -U lock:w:0x2F:m

Zu deinem USBASP Problem: Hast du alle Kabel richtig verbunden? Auf der Unterseite ist neben dem ISP die Belegung. Bei mir funktioniert es tadellos.

tndx

Zitat von: Brasletti am 10 Mai 2018, 18:44:33
Bei mir kamen nach dieser Anleitung auch immer Verification Errors. Danach habe ich den oben geposteten Fuse Calculator gefunden, ganz unten steht die Erklärung dazu... die richtige Einstellung per avrdude ist
avrdude -p m328p -P usb -c usbasp -B 3 -U lfuse:w:0xE2:m -U hfuse:w:0xD0:m -U efuse:w:0xFE:m -U lock:w:0x2F:m

Danke, diese Erklärung hätte mir heute locker 1-2 Studen Rumprobiererei und Fehlersuche erspart:  >:(

* Note that some numerical values refer to fuses containing undefined bits (set to '1' here). Depending on the target device these fuse
bits will be read either as '0' or '1'. Verification errors will occur if the values are read back with undefined bits set to '0'. Everything is fine if the
values read from the device are either the same as programmed, or the following values (undefined set to '0'): Extended: 0x06.


Zitat von: Brasletti am 10 Mai 2018, 18:44:33
Zu deinem USBASP Problem: Hast du alle Kabel richtig verbunden? Auf der Unterseite ist neben dem ISP die Belegung. Bei mir funktioniert es tadellos.

Ich habe die Belegung schon mehrfach überprüft, aber ich versuche es nachher in Ruhe nochmal.