Rückmeldung AVR Sonderheft

26/11/2007 - 21:27 von Erich Wälde | Report spam
Tag,

neulich hat jemand erwàhnt, daß es zu dem "AVR Sonderheft"
der 4.Dimension immer noch so gar keine Äußerungen gibt. Na
dann:

Ich fand das Heft "ganz gut". Der Artikel von Ron Minke war
mir als 4D-Leser natürlich schon bekannt, und daher nicht
neu. ByteForth kannte ich auch schon, weil ich Besitzer
eines AVRex boards von Willem Ouwerkerk bin.


Den Artikel zu AMForth fand ich sehr spannend. Meine Lesart:
AMForth ist ein sehr ordentlich gemachtes Forth. Schön auch
die Befehlsreferenz auf einer Seite. Soweit so gut.
Allerdings ist jedes Forth für mich nur Theorie, solange es
nicht auf einem Kontroller/Rechner làuft. Ja auch ich gehöre
eher zur praktischen Fraktion mit Lötkolben. Und daher war
mir der Artikel letzlich zu dünn.

Ich versuche gerade einen atmega32 auf dem AVRex Board mit
AMForth zu verheiraten. Ich kann den atmega programmieren
(mit avrdude und einen sehr simplen parport programmer). Ich
kann die Beispielapplikation (template.asm) mit amforth 2.3
erfolgreich assemblieren. Das Programm übertragen geht wohl
auch, sagt jedenfalls avrdude. Aber auf der seriellen
Schnittstelle rührt sich leider so gar nixx. Aber ich werd's
schon noch rauskriegen.

Ja, ich kann natürlich auch Byteforth und den dazugehörigen
dongle nehmen, aber dann muß ich dosemu anwerfen. Und das
gefàllt mir als hardcore Un*xer eben nicht.

Und ja, ich kann selbstverstàndlich auch ein Pollin board
kàuflich erwerben. Aber: das _muß_ doch auch mit dem schon
vorhandenen Material möglich sein.


Also wenn's nach mir geht, darf das in der 4.Dimension ruhig
konkreter sein, mit Schaltplan und so. Aber ich bin eben
einer mit Lötkolben.


Grüße,
Erich
 

Lesen sie die antworten

#1 Matthias Trute
27/11/2007 - 14:06 | Warnen spam
Hallo Erich,

Erich Wàlde schrieb:

Den Artikel zu AMForth fand ich sehr spannend. Meine Lesart: AMForth ist
ein sehr ordentlich gemachtes Forth. Schön auch die Befehlsreferenz auf
einer Seite. Soweit so gut. Allerdings ist jedes Forth für mich nur
Theorie, solange es nicht auf einem Kontroller/Rechner làuft. Ja auch
ich gehöre eher zur praktischen Fraktion mit Lötkolben. Und daher war
mir der Artikel letzlich zu dünn.



Erst mal danke für deine Meinung, die positiven Aspekte sind mir
natürlich am angenehmsten ;=)

Warum in dem Artikel kein Schaltplan oder àhnlich hardwarebezogenes
enthalten ist, ist einfach zu erklàren: Ich habe keine Ahnung von
Hardware. Ok, eine fertige Schaltung zusammenzulöten schaffe ich
noch. Kurz danach hört es aber auch schon auf. Damit hàtte ich
irgendeine Schaltung kopieren müssen. Wollte ich nicht.

Zweiter Aspekt ist, das amforth auf sehr vielen Schaltungen laufen soll.
Damit kann es natürlich keine Abhàngigkeiten von irgendwelchen
Funktionsbaugruppen brauchen. Zudem habe ich eine Unmasse an Beispiel-
schaltungen bis hin zu fertig aufgebauten Platinen im Internet gefunden,
so daß ich einfach davon ausging, dass, wer sich mit dem Thema AVR
ATMega beschàftigt, keine Probleme haben wird, eine passende Hardware
aufzutreiben. Das meine Wahl auf ein Pollin-Board gefallen ist, ist
schlichter Zufall. Zudem ist ein STK500 um einiges teurer (das es
auch mehr kann, ist unbestritten). Die Anpassung von amforth auf
neue Controllertypen, die dem "Beuteschema" entsprechen ist für
gewöhnlich eine Sache von Minuten.


Ich versuche gerade einen atmega32 auf dem AVRex Board mit AMForth zu
verheiraten. Ich kann den atmega programmieren (mit avrdude und einen
sehr simplen parport programmer). Ich kann die Beispielapplikation
(template.asm) mit amforth 2.3 erfolgreich assemblieren. Das Programm
übertragen geht wohl auch, sagt jedenfalls avrdude. Aber auf der
seriellen Schnittstelle rührt sich leider so gar nixx. Aber ich werd's
schon noch rauskriegen.



Wenn das eine schüchterne Bitte um Hilfe sein soll, bitte weiterlesen.

Wenn Du Hardwareprobleme ausschließen kannst (ja, ist auch schon
vorgekommen), liegt die Lösung deines Problems an der Konfiguration
der seriellen Schnittstelle.

Vermutlich làuft dein Controller mit einer Taktfrequenz von 1MHz.
Entgegen meiner bisherigen Meinung ist der Auslieferungszustand
1MHz nicht geeignet, um eine stabile serielle Verbindung mit 9600
bd 8N1 herzustellen. Mein PC hat damit zwar keine Probleme (was
mich dann zu der gemachten Aussage gebracht hat), aber das ist wohl
zu optimistisch.

0) Ursache ist eine zu hohe Abweichung der RS232 Signale im
Timing. IIRC sind 7% Abweichung vorhanden.

In der Diskussion haben sich drei Lösungen herauskristallisiert,

1) Takt àndern. Der interne Oszillator kann auf bis zu 8 MHz
aufgedreht werden. Hat natürlich Konsequenzen bzgl Stromverbrauch
etc pp. Externer Quartz ist natürlich besser. Baudratenquartz
das non-plus-ultra. Und je mehr Hz desto besser. Ein 1MHz
Quartz bringt nichts.

2) Drastisch runter von den 9600. 1200 hat wohl hinreichend oft
funktioniert.

3) Den Code zur Initialisierung der seriellen Schnittstelle àndern.
Wenn man den Double-Speed Modus aktiviert, soll es auch mit
1 MHz klappen. Leider muß man dann die Baudratenregister selbst
ausrechnen.

und zusàtzlich kann man noch folgendes ausprobieren (ok, das ist
nicht für den Novizen)

4) beim Butterfly habe ich mal mit dem OSSCAL Register experimentiert,
das "Ziehen" der Frequenz geht erstaunlich weit. Damit kann man
das serielle Timing auch zurechtbiegen. Nur liefert F_CPU dann
den falschen Wert.

Ob und welche Lösungen irgendwann mal in amforth einfließen, ist
derzeit noch offen. Es fehlen einfach Rückmeldungen zu diesem
Thema ;=) Mein Favorit zur Lösung ist übrigens 1). Eventuell
kann man auch 3) umsetzen, nur weiß ich nicht, ob das nicht
vielleicht ein anderes Loch reißt (a documented bug is a feature ;=) )

Und ja, ich kann selbstverstàndlich auch ein Pollin board kàuflich
erwerben. Aber: das _muß_ doch auch mit dem schon vorhandenen Material
möglich sein.



amforth làuft auch auf einem Mega8 in einem Steckbrett. Da gibt es
schlicht keine Schaltung, die den Namen auch verdient hat.


Im übrigen würde ich mich freuen, wenn sich mehr Anwender melden.
Sei es mit Wünschen oder mit Meinungen. Meine interne Mindmap, was
man noch alles machen kann, ist zwar groß, aber die wesentlichen
Änderungen der letzten 10 oder so Versionen sind zu einem guten Teil von
Anwendern angestoßen worden.

Matthias

Ähnliche fragen