FHEM Forum

Verschiedenes => Bastelecke => Thema gestartet von: Tobias am 19 Juli 2015, 12:04:40

Titel: Hilfe bei ATMega2560V Initialisierung (Fuses/Bootloader) gesucht
Beitrag von: Tobias am 19 Juli 2015, 12:04:40
HI,
ich habe mir ein eigenes Board designed auf dem ein ATMega2560V-8AU ist. Das ist der mit 8Mhz und 3.3V, also die kleine Variante des 5V@16Mhz.
Auf dem Board habe ich erstmal nur ISP und RX/TX Pins angeschlossen. Außer dem Chip selbst und einem 10k Pullup an Reset ist auf dem Board nix drauf. Ich möchte den Chip mit dem internen 8Mhz Quarz betreiben.
Die Gute Nachricht, der Chip redet schonmal mit mir. ;)
Schlechte Nachricht, ich finde den Fehler nicht waum ich per ParallelProgrammer keine Sketche uploaden kann :( 

Zuerst habe ich die Fuses gesetzt, ich hoffe die sind korrekt:
avrdude -p m2560 -c stk500v2 -P /dev/ttyUSB0 -U lfuse:w:0xE2:m -U hfuse:w:0xD4:m
Dann einen Bootloader heruntergeladen und geflashed:
wget https://github.com/lthiery/Sentinel/blob/master/sketches/hardware/mega-pro-3.3V/bootloaders/MegaPro3.3V-8MHz-57600.hex
avrdude -p m2560 -c stk500v2 -P /dev/ttyUSB0 -U flash:w:MegaPro3.3V-8MHz-57600.hex


Wie kann ich jetzt überprüfen ob bis zu diesem Punkt alles io ist?

Schließe ich jetzt einen einfachen Paralleprogramer an der zb. an einem Arduino Mini tadellos funktioniert, passiert bei meinem nix.

tobias@laptop:~$ avrdude -c stk500v2 -P /dev/ttyUSB2 -p m2560 -v

avrdude: Version 6.0.1, compiled on Oct 21 2013 at 15:55:32
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "/etc/avrdude.conf"
         User configuration file is "/home/tobias/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyUSB2
         Using Programmer              : stk500v2
         AVR Part                      : ATmega2560
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         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    10     8    0 no       4096    8      0  9000  9000 0x00 0x00
           flash         65    10   256    0 yes    262144  256   1024  4500  4500 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
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : STK500V2
         Description     : Atmel STK500 Version 2.x firmware
         Programmer Model: STK500
         Hardware Version: 3
         Firmware Version Master : 2.10
         Topcard         : Unknown
         Vtarget         : 0.0 V
         SCK period      : 17.4 us
         Varef           : 0.0 V
         Oscillator      : Off

avrdude: AVR device initialized and ready to accept instructions

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

avrdude: Device signature = 0x1e9801
avrdude: safemode: lfuse reads as E2
avrdude: safemode: hfuse reads as D4
avrdude: safemode: efuse reads as FF

avrdude: safemode: lfuse reads as E2
avrdude: safemode: hfuse reads as D4
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK (H:FF, E:D4, L:E2)

avrdude done.  Thank you.

tobias@laptop:~$
Titel: Antw:Hilfe bei ATMega2560V Initialisierung (Fuses/Bootloader) gesucht
Beitrag von: ext23 am 19 Juli 2015, 12:24:56
Du benutzt einen "ParallelProgrammer" also die einfache Version des ISP programmers ja (Parallel Port, LPT)? Wozu packst du dann ein Bootloader rauf?!? Ich verstehe die Frage gerade nicht so richtig, den Bootloader hast du gebrannt bekommen, aber normale programme gehen nicht? Deine Screenshots sind aber kein parallelprogrammer sondern USB ?!?

Also ich raff da gerade was nicht ;-) Einen Bootloader braucht man ja nur, wenn man Programme ohne ISP brennen möchte, also UART, USB, 1-Wire über welchen weg auch immer, das kommt ja auch den Bootloader an.

Gruß
Daniel
Titel: Antw:Hilfe bei ATMega2560V Initialisierung (Fuses/Bootloader) gesucht
Beitrag von: Tobias am 19 Juli 2015, 12:32:27
Ok, ich möchte  meine Sketche später ausschließlich per USB-FTDI Programmer (ich nutze hier einen Panstick per ) flashen können, nicht per ISP. Ganz später auch per OTA. Deshalb benötige ich einen Bootloader. Allerdings weiß ich auch nicht woher ich weiß ob der Bootloader sauber  drauf ist und arbeitet.
tobias@laptop:~$ avrdude -c arduino -b 57600 -P /dev/ttyUSB3 -p m2560 -v -n

avrdude: Version 6.0.1, compiled on Oct 21 2013 at 15:55:32
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "/etc/avrdude.conf"
         User configuration file is "/home/tobias/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyUSB3
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
Titel: Antw:Hilfe bei ATMega2560V Initialisierung (Fuses/Bootloader) gesucht
Beitrag von: ext23 am 19 Juli 2015, 13:00:53
Naja wenn die Fuse Bits richtig gesetzt sind, je nach Größe des Bootloader sollte das schon passen. Ob er drauf ist weiß du ja wenn du das Programm mal runter lädst vom Chip, dann sollte das hex identisch sein in dem Bereich des Bootloaders (der steht ja bekanntlich immer am Ende des Flash Speichers).

Bei den Fuse Bits ist eben wichtig zu sagen wie groß der Bootloader ist und das einer da ist. Das mit dem 8 MHz Quarz kannste auch einstellen. Ansonsten sollte das funktionieren. Irgendwie muss aber noch ein Reset ausgelöst werden, sonst kommst du ja nicht in den Bootloader. Mit nur RX/TX wird das nicht gehen oder? Alternative ist dein prog schickt ein FF oder sowas und du wertest das aus und gehts dann in den Bootloader. Aber die meisten die ich kenne machen das über den Reset. Dann kommt ja normalerweise kurz der Bootloader hoch. Aber wie gesagt ich kenn den Arduino loader nicht so ganz.

Gut ich kenn den Arduino Bootloader nicht, ich nehm immer den FastBoot, der von Arduino ist mir immer zu groß für das was er kann.

Gruß
Daniel
Titel: Antw:Hilfe bei ATMega2560V Initialisierung (Fuses/Bootloader) gesucht
Beitrag von: Tobias am 19 Juli 2015, 13:47:25
Hi,
Am USB-FTDI Programmer ist RX/TX/Gnd/VCC/Reset angeschlossen. Die RX/TX habe ich auch vom RXD0/TXD0 abgenommen, der Chip hat ja 4x von beiden...
Vieleicht hat ja noch wer einen zündende Idee...

Ich habe testweise mal ein Blink-TestSketch per ISP geflashed, das funktioniert, die LED blinkt jetzt munter vor sich hin. 
Titel: Antw:Hilfe bei ATMega2560V Initialisierung (Fuses/Bootloader) gesucht
Beitrag von: frank am 19 Juli 2015, 14:11:42
eventuell erwartet der bootloader eine bestimmte bootloader-groesse. du koenntest zum testen auch in den bootloader einen blink-code einbauen.
ausserdem muessen wahrscheinlich rx/tx gekreuzt werden.
Titel: Antw:Hilfe bei ATMega2560V Initialisierung (Fuses/Bootloader) gesucht
Beitrag von: ext23 am 19 Juli 2015, 14:22:59
Stimmt kreuzen ist auch eine gute Idee.

Aber der Bootloader ist auch richtig konfiguriert für die UART ja (Wenn der µC da so viele von hat)? Und Baud Rate stimmt auch? (Die finden die meisten aber von selber raus glaube). Blinken im Bootloader einbauen ist auch ne Idee ja, oder das der irgend was über UART rausrotzt oder so.

/Daniel
Titel: Antw:Hilfe bei ATMega2560V Initialisierung (Fuses/Bootloader) gesucht
Beitrag von: Wzut am 21 Juli 2015, 07:40:06
@Tobias ,
versuchs doch mal mit dem Arduino Bootloader für den Mega und der Arduino IDE :
http://forum.arduino.cc/index.php?topic=54293.msg1271484#msg1271484

Du schreibst du hast vom USB-FTDI Wandler auch Reset angeschlosen ?
Lass den mal weg und klemme einen Taster zwischen Reset des ATmega und GND. Zum seriellen Upload drücke den Taster und lasse ihn los in dem Moment wo du avrdude auf der Konsole startest bzw. wenn die Arduino IDE kurz vor der Meldung Uploading ist. So handhabe ich es immer mit meinen nackten ATmegas auf dem Steckbrett.
Hat dein USB-FTDI LEDs für RX & TX ? Wenn nein spendiere dem ATmega mal zwei Stück , an dem Geflacker nach dem Reset erkennt man mit etwas Erfahrung recht schnell ob der Upload erfolgreich läuft oder nicht.