Fehler beim Schreiben auf AVR (Ubuntu)

#3290636
Lesenswert?

Hallo liebe uCler,

ich hab ein Problem beim Beschreiben meines Attiny2313 und dazu bin ich 
noch ein echter Neuing was uCs angeht.
Die Hardware die ich benutze (Pollin-Eva-Board und 
Pollin-RS232-Konverter PL2303) hat mich gezwungen auf Ubuntu 
auszuweichen (dort bin ich ebenfalls etwas ungeübt). Ich habe avr-gcc, 
avrdude, binutils und avr-libc installiert und (wie ich meine) mit "sudo 
apt-get update" auf den neusten Stand gebracht.
Nun wollte ich erstmal irgendein Zeichen dafür finden, dass die 
Kommunikation überhaupt zustande kommt. Dazu hab ich mir auf 
http://derf.homelinux.org/interblag/entry/mikrocontroller-intro/ ein 
Testprogramm geholt.
Ich hab das überarbeitete Makefile mit
1
MCU = attiny2313
2
AVRDUDE_PROGRAMMER = ponyser
3
AVRDUDE_PORT = /dev/ttyUSB0
versehen. ttyUSB0 deshalb, weil mit ein- und ausgestecktem Adapter der 
Befehl "ls /dev/tty*" diesen als einzigen Unterschied der jeweils 
erzeugten Liste ausgespuckt hat.

Außerdem hab ich im Terminal (nach dieser Anleitung 
http://www.henrykoch.de/pages/programmieren/Pollin_Evaluations_Board/Pollin_Board_mit_ATTiny2313_kennen_lernen.php) 
noch folgendes eingegeben:
1
lsusb | grep Serial
2
dmesg | grep pl2303
3
ls /dev/ttyU*
Die Antwort:
1
/dev/ttyUSB0
 Damit ist der Adapter installiert ?!?
Die zugehörige main.c hab ich dann mit dem Makefile in einen Ordner 
getan und wollte nun zur Tat schreiten; im Terminal hab ich diesen 
Ordner gewählt und den make-Befehl eingegeben. Fehlermeldung:
1
unrecognized command line option --combine
2
make: *** [obj/main.o] Fehler 1
Im Makefile hab ich dann die wahrscheinlich verantwortliche Zeile 
gefunden
1
CFLAGS+= --combine -fwhole-program
 und nachdem ich das
1
--combine
 gelöscht hab neu probiert. Es gab keinen Fehler sondern nur diesen 
Absatz:
1
-------- begin --------
2
avr-gcc (GCC) 4.7.2
3
Copyright (C) 2012 Free Software Foundation, Inc.
4
This is free software; see the source for copying conditions.  There is NO
5
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
6

7

8
Compiling C: main.c
9
avr-gcc -c -mmcu=attiny2313 -I. -gdwarf-2 -DF_CPU=UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wundef -Wa,-adhlns=obj/main.lst  -std=gnu99 -fwhole-program -Wundef -MD -MP -MF .dep/main.o.d main.c -o obj/main.o
10

11
Linking: main.elf
12
avr-gcc -mmcu=attiny2313 -I. -gdwarf-2 -DF_CPU=UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wundef -Wa,-adhlns=obj/main.o  -std=gnu99 -fwhole-program -Wundef -MD -MP -MF .dep/main.elf.d obj/main.o --output main.elf -Wl,-Map=main.map,--cref    -lm
13

14
Creating load file for Flash: main.hex
15
avr-objcopy -O ihex -R .eeprom main.elf main.hex
16

17
Creating load file for EEPROM: main.eep
18
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
19
--change-section-lma .eeprom=0 -O ihex main.elf main.eep
20
avr-objcopy: --change-section-lma .eeprom=0x00000000 never used
21

22
Creating Extended Listing: main.lss
23
avr-objdump -h -S main.elf > main.lss
24

25
Creating Symbol Table: main.sym
26
avr-nm -n main.elf > main.sym
27

28
Size after:
29
main.elf  :
30
section          size   addr
31
.text              64      0
32
.stab            1716      0
33
.stabstr           84      0
34
.comment           17      0
35
.debug_aranges     32      0
36
.debug_info       135      0
37
.debug_abbrev      83      0
38
.debug_line       107      0
39
.debug_frame       36      0
40
.debug_str        118      0
41
.debug_ranges      16      0
42
Total            2408
43

44

45

46
-------- end --------

Nach Anleitung sollte man nun mit "sudo make program" abschließen, doch 
da kommt der Fehler, wegen dem ich mich an euch richte:
1
avrdude -p attiny2313 -P /dev/ttyUSB0 -c ponyser    -U flash:w:main.hex
2

3
avrdude: AVR device not responding
4
avrdude: initialization failed, rc=-1
5
         Double check connections and try again, or use -F to override
6
         this check.
7

8

9
avrdude done.  Thank you.
10

11
make: *** [program] Fehler 1

Ich hab die Kabel gecheckt und Strom ist auch da. Und bis jetzt weiß ich 
nicht wie ich das in den Griff bekomm. Kann es überhaupt an der Software 
liegen? Wie kann ich mit 100%iger Sicherheit sagen, ob mein Board kaputt 
(oder nicht) ist?


Kann jemand Hilfe leisten? Sobald ich anfangen kann, meine Programme zu 
schreiben mach ich Luftsprünge!
Grüße RaZu
#3291118
Lesenswert?

Rainer Z. schrieb:
> ... und (wie ich meine) mit "sudo apt-get update" auf den neusten Stand 
gebracht.

Noch eine Anmerkung dazu:
 - "sudo apt-get update": Aktualisiert die Liste der aktuell verfügbaren 
Software, die installierte Software wird dabei aber noch nicht auf den 
aktuellen Stand gebracht!
 - "sudo apt-get upgrade": Aktualisiert (nach der Liste vom vorherigen 
Punkt) die installierte Software ("Pakete"), also sinnvollerweise erst 
"update" und dann "upgrade" ausführen
 - "sudo apt-get dist-upgrade": Das selbe wie "upgrade", nur dass dieses 
mal auch Pakete entfernt und neue installiert werden können. Das 
passiert automatisch und wird von einem Konfliktlösungssystem im 
Hintergrund gemanaged. (Du musst jetzt aber nicht befürchten, dass du 
plötzlich keinen Browser mehr hast o.ä)

Wenn du also dein System updaten willst am besten:
1
sudo su
2
apt-get update
3
apt-get dist-upgrade
oder zusammengefasst:
1
sudo su
2
apt-get update && apt-get dist-upgrade
#3291233
Lesenswert?

Mir ist immer noch nicht klar, wie du das Board am PC angeschlossen 
hast.
Mit ISP ist sowohl der eine der beiden 9-pol. DSUB bezeichnet, als auch 
der viereckige 2x5-polige.

Für ersteren bräuchte man ein serielles Kabel (1:1), bei mir hat das nie 
zuverlässig funktioniert. Ich vermute, daß du es damit versuchst.

Für letzteres muß man noch einen Programmieradapter haben, z.B. 
avrispmkii.
Dazu würde ich dringend raten, es geht wesentlich unkomplizierter und 
nicht nur mit dem Eval-Board, sondern auch mit eigenen Schaltungen.
Diese 40.00 sind gut investiert.
Gast #3291381
Lesenswert?

Ich hatte das Evalboard auch mal über Bitbanging programmiert.
Das ging, allerdings hatte der PC noch eine native RS232-Schnittstelle. 
Und trotzdem wars schnarchlangsam.

Wenn du dir sicher bist dass die Hardware IO ist (immerhin muss man die 
ja selber löten) dann würde ich vermuten liegts am RS232-USB Umsetzer.
Vielleicht findest du ja irgendwo einen PC mit "richtiger" RS232? Wenns 
damit klappt könntest du Hardwareprobleme schon mal ausschließen.

Ansonsten, leg dir bitte einen Programmierer zu, z.B. den AVR-Dragon. Da 
hast du auch gleich JTAG.
Glaub mir, du wirst glücklicher damit. Ich benutze immer noch mein 
uraltes Pollinboard + Dragon für erste Versuche bei einem neuen Projekt.
#3291415
Lesenswert?

Vielen Dank für eure Posts.
Der Adapter (USB->Seriell) steckt an dem Sub-D-Stecker, der mit ISP 
beschriftet ist.
Ich wusste von Anfang an das meine Hardware wohl maximal ungeeignet ist, 
aber ich weiß, dass es funktionieren kann. Ein Bekannter hat mir mal 
geholfen und dann hat es in genau dieser Hardware-Software-Kombi 
geklappt. Ich hab den PC aber zwischendurch plattgemacht und jetzt war 
nätürlich alles weg. Viel hab ich seitdem nicht mit dem Eva-Board 
gemacht, es sollte also keine Schäden haben. Und zum Adapter: Wenn ich 
den ausstecke bekomm ich andere Fehlermeldungen, was doch heißen sollte, 
dass er funktioniert (bedingt).
Moderator Persönliche Seite #3291949
Lesenswert?

Rainer Z. schrieb:
> aber ich weiß, dass es funktionieren kann.

Naja, manchmal, bei Vollmond, wenn gerade drei heilige Jungfrauen
vor der Tür tanzen. ;-)

Ganz ehrlich: bau dir einen USBasp oder sowas.  Kann ja sein, dass das
mit dem Bitbanger tatsächlich irgendwann irgendwie schnarchlangsam
geht, aber RS-232-Bitbanger sind nach meiner Erfahrung schon immer
etwas „launig“, und hinter einem USB-Seriell-Wandler wirklich in der
Praxis selbst dann nicht mehr benutzbar, falls du die Kombination
in der Tat (wieder) zum Laufen bekommst.

Wenn du für die Lösung des Henne-und-Ei-Problems (wie programmiert
man den ATmega8 für den USBasp initial?) jemanden brauchst, der dir
den Chip programmiert, findest du garantiert hier im Forum Hilfe.
Ansonsten kann man so ein Teil auf einem Stück Lochraster innerhalb
von einer halben Stunde aufbauen (ich habe meinen „freifliegend“
gebaut, aber ich benutze ihn nicht routinemäßig, sondern nur für
AVRDUDE-Tests).
Moderator Persönliche Seite #3292155
Lesenswert?

Uwe schrieb:
> Bitte Schaltplan zwischen DSUB und ISP.

DSUB ist ISP bei diesem Board (der DSUB-Verbinder ist mit „ISP“
bezeichnet).

Den Schaltlplan des Boards findest du bei Max & Max in der Anleitung
zum Board.  Das ist ein klassischer “ponyser”-Programmer, so wie das
auch in der Kommandozeile angegeben worden ist.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren