winavr + mega88

Gast #176892
Lesenswert?

@stefan
ich hoff doch mal sehr, dass ich einen m88 kriege, schließlich studier
ich ja direkt an der quelle

@jörg
also das readme sagt mir, dass du es teilweise geschrieben hast, sowie
einige patches und das mfile....worin ich aber leider keinen m88
finde...für den dude gibts folgenden patch
https://savannah.nongnu.org/patch/?func=detailitem&item_id=3135
kann damit aber auch nicht wirklich was anfangen ("anfänger"), aber
ich knabber mal fleißig weiter an der sache.

gruß,
jens
#176895
Lesenswert?

Wenn ich studieren würde, würde ich mir nicht noch unnütze Arbeit damit
aufhalsen, indem ich schwer oder nicht beschaffbare Bauteile nehme.

Was ist denn an dem Mega88 dran, daß es nicht auch der Mega8 tut ?

Und gerade unter Zeitdruck ist es äußerst unklug, Samples zu nehmen. Du
weiß nie, ist der Fehler in Deinem Programm oder ist es ein Bug im µC.


Peter

P.S.:
O.k., eine Sache die man ja beim Studium lernen soll, ist die Zeit
effektiv zu nutzen, d.h. sich auf das Wesentliche zu konzentrieren und
möglichst beste Randbedingungen zu schaffen, damit man nicht unnütz
Zeit mit Nebensächlichkeiten vergeudet.
Gast #176896
Lesenswert?

Zum Applizieren dieser Patches in den Original-Sourcecode gibt's das
Kommando "patch".

Wo der Sourcecode im Einzelnen zu finden ist, sollte irgendwo in der
WinAVR-Doku stehen.  Wenn Du's wirklich nicht findest, kann ich Dir
auch paar URLs posten.  (http://www.openavr.org/ dürfte auch ein guter
Anhaltspunkt sein, um alle Links zu finden.)  Du brauchst die GNU
binutils, den GCC und die avr-libc (drei verschiedene Pakete).

Allerdings, Selbstcompilieren geht auf einem Unix (bzw. Linux)
deutlich simpler als auf einem Windows, weil Du Dir auf letzterem
erstmal die Umgebung dafür schaffen mußt.  Auf einem Unix, das schon
einen Compiler hat und einen einigermaßen aktuellen Prozessor, dauert
die ganze Compiliererei wohl weniger als eine halbe Stunde (ohne Doku
von avr-libc, diese braucht viele Abhängigkeiten, aber die wird
standardmäßig nicht gebaut -- kannste auch im Netz lesen).
Gast #176900
Lesenswert?

Ich hab ein funktionierendes Muster...
Aber leider schaffe ich nicht, den Controller zu programmieren.
Ich scheitere trotz neuer WinAVR Version bereits am kompilieren.
Der Makefilegenerator (mfile) kennt den Mega48 anscheinend nicht, also
habe ich in der Makefile manuell MCU = atmega48 eingetragen.
Doch beim Übersetzen kennt er die Registernamen nicht (UBRR1H, UBRR1L
...)
Gast #176901
Lesenswert?

Es ist richtig, Mfile kennt die neuen AVRs noch nicht.  Als Eric die
aktuelle
WinAVR-Version vorbereitet hat, hatte ich gerade noch die Zeit übrig,
ihm ein
aktuelles avr-libc-Release auszurollen, damit er von allen aktuellen
Bugfixes
ohne eigene Patches profitieren kann, aber für irgendwelche Arbeiten an
Mfile
hat meine Zeit nicht mehr gereicht.

> Doch beim Übersetzen kennt er die Registernamen nicht (UBRR1H,
> UBRR1L ...)

Mein Datenblatt kennt diese allerdings auch nicht.  Hast du wirklich
einen ATmega88 im Sinn?
Gast #176903
Lesenswert?

Datenblatt S. 325 (Register summary): UBRR0H/UBRR0L.  Die ATmegax8
haben nur eine USART, die hat dann die Nummer 0.  Die Beschreibung in
den Datenlättern ist nur völlig generisch und benutzt statt der
Kanalnummer die Metavariable `n'.

Nein, eine neue Version von Mfile ist noch nicht ,,um die Ecke''.
Ich
muss halt erst die Zeit finden dafür.  Es gibt noch paar andere Dinge,
die da mit rein sollen, insbesondere C++-Support.

Wenn es ein ATmega88 ist, dann sollte -mmcu= auch auf atmega88 stehen,
der ATmega48 hat nur halb so viel Speicher.
Gast #176908
Lesenswert?

Errm, was versuchst du denn mit dem Makefile und avrdude?  Willst du
avrdude das Makefile füttern?  Das geht wohl nicht...

Aber sorry, der pseudo-serielle Adapter von Ponyprog (bit-bang via
RS-232) ist nun gerade so ziemlich der einzige Adapter, den avrdude
nicht unterstützt.  (uisp unterstützt ihn, aber ob das so weit
gepflegt worden ist, dass es die neueren Controller schon kennt, weiß
ich nicht.)
Gast #176910
Lesenswert?

Ein guter Schaltplan für einen seriellen Adapter?  STK500 oder
AVRisp. ;-)  Oder halt USBisp, falls du nur USB hast.

(Welche Rechner gibt's eigentlich, die zwar eine serielle aber keine
parallele Schnittstelle haben?)

Man könnte sicher auch den seriellen Pingpong-Adapter dem avrdude
beibringen, aber da müsste sich halt ,,jemand'' hinsetzen.  Bei
diesem
,jemand' muss es sich notgedrungen um eine natürliche Person
handeln...

Wenn dein make derartige Fehler meldet, hast du wohl irgendwas am
Makefile verhunzt...
Gast #176912
Lesenswert?

Na komm, das AVRisp ist doch nun alles andere als zu teuer (für ein
STK500 würde ich das Argument eher einsehen).  Allein die Hälfte des
Preises dürftest du fast für die Platine bezahlen, wenn du das selbst
machen willst (als Einzelstück).  Ich weiß nicht, was die Nachbauten
so kosten sollen.  Außerdem brauchst du noch eine Firmware dafür.

Ich kann ansonsten Matthias Weissers USBisp wirklich empfehlen.  Wenn
du was selbst bauen willst, nimm das.  Spricht STK500-Protokoll,
Firmware ist Opensource.

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