Hallo,
habe mir dies Entwicklungsboard besorgt und einen bootloader für den
Atmega 128A für den Arduino habe ich gefunden. Nun habe ich auch
Testweise "Blink" Raufgeschrieben, aber das er mir zusätzlich über
Serial LED An oder Aus ausgibt, da dieses board keine LED hat.
Es kommen allerdings in putty nur wilde Zeichen an, denke das die
Belegung an meinem Board anders ist (die dateien stammen vom
crumbuino128)
Baudrate(9600) ist bei dem setupteil sowie in putty eingetragen, daran
kann es nicht liegen.
Wie kann ich die Pins für dieses Board selber richtig belegen odr gibt
es da was fertiges schon?
Vielen Dank
Benjamin
Benjamin L. schrieb:> Wie kann ich die Pins für dieses Board selber richtig belegen
Indem Du in den Schaltplan des Board schaust und in das Datenblatt des
darauf verbauten ATmega.
Ja, den Schaltplan habe ich, nur wie funktioniert das in der Arduino
Software?
arduino.pins.h habe ich gefunden, da werde ich aber nicht schlau draus,
viele ist da nur kommentiert drinne.
Benjamin L. schrieb:> Ja, den Schaltplan habe ich, nur wie funktioniert das in der Arduino> Software?
Ach so, hab ich falsch gelesen, Du willst also Arduino Software damit
verwenden. Das geht bestimmt, aber da muss Dir jemand helfen der sich in
den Arduino-Innereien auskennt.
Ich persönlich an Deiner Stelle würde das lieber zum Anlass nehmen mich
von den Fesseln und Unzulänglichkeiten der Arduino-Software zu befreien
und das volle Potential zu entdecken. Das fängt schon bei der
unsäglichen Arduino-"IDE" an die ja noch nichtmal einen vernünftigen
Editor beinhaltet und eher frustet als hilft und geht dann weiter mit
dem undurchschaubaren Pseudo-C++-Gestrüpp, der unnötigen
Arduino-Pinnummern-Abstraktion (mit der Du gerade kämpfst) und vielem
mehr.
Ich würde mich von all dem auf einen Schlag befreien, das einzig
Sinnvolle ist der Arduino-Bootloader, alles andere würde ich für einen
sauberen Neuanfang und Einstieg in die wirkliche Welt über Bord werfen.
Meine Empfehlung an Dich:
* Eclipse-CDT
* avr-gcc (nimm die Version von Atmel)
* Eclipse AVR-Plugin
* Avrdude
und
* Als Ausgangspunkt ein minimales Blink-Beispiel in reinem C, das ist
gerade mal ein Dutzend Zeilen lang (inklusive ausführliche Kommentare)
und ausgehend von dem springst Du dann ins kalte Wasser und erarbeitest
Dir die Programmierung dieses Controllers (und anderer ähnlicher) anhand
der Datenblätter und Schaltpläne des jeweiligen Boards in kleinen aber
wichtigen Schritten. Das bringt Dich auf lange Sicht erheblich weiter
als das ewige Stochern im dichten Arduino-Nebel.
okay, eclipse kenne ich, damit haben wir in der Schule mal Java gemacht.
Werde mir das mal ansehen. kann man das mit den plugins alles "Portable"
installieren oder muss das fest instllier werden im system?
avr-gcc und so? Eclipse lief mein ich so
Bernd K. schrieb:> Meine Empfehlung an Dich:>> * Eclipse-CDT> * avr-gcc (nimm die Version von Atmel)> * Eclipse AVR-Plugin> * Avrdude
Naja, alles nicht schlecht, aber bei dieser Kombination wird er erst
mal mit der Konfiguration der ganzen Bausteine so viel zu tun haben
dass er die Lust verliert.
Wenn man nicht den neuesten latest-and-greatest Prozessor braucht
ist das AVR Studio (4.18) die leichteste Art seine Projeke ganz
alleine selbständig hochzuziehen. Da kommt man auch schnell zu
seinen lauffähigen Fünfzeiler.
Benjamin L. schrieb:> kann man das mit den plugins alles "Portable"> installieren oder muss das fest instllier werden im system?
Du kannst das alles Portable machen.
Zunächst lädst Du Dir das Eclipse Zip File runter, das fertige "Eclipse
für C/C++" Bundle und entpackst es in ein Verzeichnis Deiner Wahl. Keine
Installation nötig.
Dann lädst Du Dir avr-gcc runter (von der Atmel-Webseite), entpackst es
ebenfalls in ein Verzeichnis Deiner Wahl.
Dann installierst Du in Eclipse (mittels des eingebauten "Marketplace")
das AVR-Plugin. Das konfigurierst Du dann noch um ihm mitzuteilen in
welchen Ordnern die zuvor heruntergeladene und entpackte avr-gcc
Toolchain und make und Konsorten zu finden sind (und auch wo avrdude zu
finden ist das Du ebenfalls runtergeladen und in einen Ordner Deiner
Wahl entpackt hast).
Pack alles in einen Ordner mit kurzem Pfadnamen, z.B. "C:\avr\" und
darin in entsprechende Unterverzeichnisse, dann kannst Du das ganze in
einem Rutsch auch von einem auf einen anderen Rechner verfrachten.
Das sollte im Prinzip funktionieren.
AVRUser schrieb:> aber bei dieser Kombination wird er erst> mal mit der Konfiguration der ganzen Bausteine so viel zu tun haben> dass er die Lust verliert.
So viel ist das auch wieder nicht, eigentlich nur die Konfiguration von
2 oder 3 Pfaden im AVR-Plugin und fertig. Ich glaube nicht daß er so
schnell die Lust verliert, wenn er es wirklich haben will dann schafft
er es.
ok, ich werde mich mal versuchen da das board keine LED hat
wär es möglich Serial ein beispiel zu bekommen?
baudrate 9600
Text an pc senden
LED AN
pause
LED Aus
Pause
quasi den blink als Serial?
also den AVR-GCC finde ich bei atmel leider nicht oder heißt es da
anders?
Die Initialisierug der seriellen Schnittstelle (das würd ich mir
parallel dazu auch mal im Datenblatt anschauen, die Bedeutung der
einzelnen Register und bits):
1
// UART
2
// (dieses spezielle Board von Pollin ist mit 7.3728 Mhz getaktet,
3
// UBRRO-Wert von Wormfood's Baudrate Calculator)
4
5
UBRR0=95;// 9600 Baud
6
UCSR0A=(1<<U2X0);// double-speed
7
UCSR0B=(1<<RXEN0)|(1<<TXEN0);
8
UCSR0C=(1<<USBS0)|(1<<UCSZ01)|(1<<UCSZ00);
und um ein Zeichen zu senden dann folgendes:
1
voiduart_send8(charval){
2
// warte (falls noetig) bis es frei ist
3
loop_until_bit_is_set(UCSR0A,UDRE0);
4
5
// das löst den Sendevorgang aus
6
UDR0=val;
7
}
Natürlich fehlt jetzt noch die main() und eine while(1) loop mit einem
delay, und auch eine funktion die nicht nur ein einziges Zeichen sondern
einen ganzen String senden kann, aber das ist dann nicht mehr
Board-spezifisch, das hab ich jetzt noch nicht hingeschrieben aus
Faulheit, aber die Initialisierung des UART hätte Dich einige Nerven
gekostet, das ist der härteste Brocken, der fehlende Rest ist einfach)
Benjamin L. schrieb:> ok momenten hänge ich beom avr-gcc fest was ich da downloaden muss
Hier gibts downloads für die avr-gcc Toolchain. Nicht verwirren lassen
von der Versionsnummer, da steckt ein neuerer gcc drin, Atmel hat sich
da wohl aus unerfindlichen Gründen eigene höchst verwirrende
Versionsnummern ausgedacht.
http://www.atmel.com/tools/ATMELAVRTOOLCHAINFORWINDOWS.aspx
Ich bin mir jetzt nicht 100% sicher ob das für Windows einfache zip
files zum Entpacken sind oder Installer die sich automatisch irgendwohin
entpacken, notfalls mal ausprobieren.
Die Downloads für Linux (das ist was ich verwende) sind einfache Archive
zum manuell Auspacken.
Letzten Endes kann (sollte) man alles in einen Ordner entpacken mit
einem nicht allzulangen Pfadnamen und möglichst ohne Leerzeichen im
Namen.
Benjamin L. schrieb:> Aber ok könntest du mir zum testen mal ein fertiges projekt zukommen> lassen?
Heute nicht mehr (keine Zeit mehr), vielleicht morgen Abend.