Forum: Mikrocontroller und Digitale Elektronik Pollin Entwicklungsboard ATMEL ATmega128A


von Benjamin L. (kbl)


Angehängte Dateien:

Lesenswert?

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

: Bearbeitet durch User
von Bernd K. (prof7bit)


Lesenswert?

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.

von Benjamin L. (kbl)


Lesenswert?

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.

von Bernd K. (prof7bit)


Lesenswert?

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.

von Benjamin L. (kbl)


Lesenswert?

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

von AVRUser (Gast)


Lesenswert?

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.

von Bernd K. (prof7bit)


Lesenswert?

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.

von Bernd K. (prof7bit)


Lesenswert?

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.

von Benjamin L. (kbl)


Lesenswert?

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?

: Bearbeitet durch User
von Bernd K. (prof7bit)


Lesenswert?

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
void uart_send8(char val) {
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)

: Bearbeitet durch User
von Benjamin L. (kbl)


Lesenswert?

ok momenten hänge ich beom avr-gcc fest was ich da downloaden muss

von Bernd K. (prof7bit)


Lesenswert?

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.

von Benjamin L. (kbl)


Lesenswert?

okay, das ist eine exe.
Aber ok könntest du mir zum testen mal ein fertiges projekt zukommen 
lassen?

von Bernd K. (prof7bit)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.