Hallo,
ich bin neu hier und würde mich über Hilfe sehr freuen!
Ich arbeite mich gerade in Arduino ein und würde für den Anfang auch
gerne dabei bleiben, also statt "echtes" C zu benutzten, meine ich.
Zum Ausprobieren von ersten eigenen Programmen würde ich ferner
eigentlich gerne das "Atmel Evaluationsboard (Pollin) nehmen, da man mit
3 Tastern, 2 LEDs und einem Summer viel mehr Möglichkeiten hat, als mit
dem Arduino-Board selbst - zumindest ohne ein weiteres Steckboard.
Mit Arduino (Version 1.6.12) selbst habe ich es noch nicht geschafft,
einen Atmel-uC (Attiny 2312, ATmega 8 und 16) direkt auf dem
"Pollin-Board" zu beschreiben. Ob aus Unkenntnis über nötige
Einstellungen oder schlicht nicht möglich scheint zunächst auch fast
egal, über den Umweg "kompilierte Binärdatei erzeugen" und das
Beschreiben mit "AVR8-Burn-O-Mat" klappt es eigentlich auch.
Einziges Problem ist dann, dass es ein buntes Durcheinander bei der
Pinbelegung gibt. Zum Beispiel beim Atmega16 sollen auf dem
"Pollin-Board" die LEDs an Pin 19 und 20 angeschlossen sein. Genauer
gesagt sind sie es auch tatsächlich, wenn man das Board "durchmisst". Im
Programm muss ich aber Pin 13 und 14 wählen, um die LEDs ansteuern zu
können.
Beim Atmega8 ist der Summer z.B. eigentlich an Pin13 angeschlossen.
Programmieren, um ihn anzusprechen, muss ich aber Pin7, der in Wahrheit
aber der VCC-Pin ist.
Was mache ich da falsch bzw. wo kann man das so verstellen, dass es
stimmt?
Danke!
marc
T. P. schrieb:> Was mache ich da falsch
Du machst erstmal eigentlich nichts falsch. Außer das du auf diesen µC
des Pollins Boards einen Arduino Bootloader flashen musst um ihn aus der
Arduino Umgebung zu beschreiben.
Zum Thema Pinbelege: Auch da ist das Pollin Board korrekt
gekennzeichnet. Ardunino hat da so ne ganz dämliche Eigenheit die Pins
mit Nummern durchzummieren. Dort heißen die Pins halt Digital 1-30 oder
Analog 1-10 - Das ist aber falsch. Denn die Pins stehen im Datenblatt
und werden richtig mit Port und Pin bezeichnet. Z.b. Port A - Pin 1 oder
Port E - Pin 4 etc... Das macht Arduino um alles so leicht wie möglich
zu halten - aber entbehrt sich sonst jeglicher Logik!
T. P. schrieb:> Was mache ich da falsch bzw. wo kann man das so verstellen, dass es> stimmt?AVR C Source Code kennt Pin 3 am Port A, aber keinen "Pin 13". Wo das
GPIO Signal für A3 genau rauskommt, ist vom Package abhängig ->
Datenblatt.
Auch bei Arduinos muss man nachschauen wo welcher Pin wirklich
rauskommt. Dort sind die Zuordnungen in den Libraries für irgendein
anderes fertiges Board gedacht.
Nicht auf das Board... sondern auf den µC in dem Board. Ich kenne mich
nun nicht sonderlich mit der Ardunio Umgebung aus, oder wie du das
Pollin Board mit deinem Rechner ansprichst. Aber üblicherweise haben die
Arduino MC (Was ja normale Atmel AVRs sind) einen Bootloader.
ach so, darum wundern wir uns gerade gegenseitig über unsere Antworten.
Nein, das Pollin-Board ist schlicht eine "feste Verschaltung" von
Tastern, LEDs und Summer, leeren IC-Fassungen für div. Atmel-uCs,
Eingängen (RS232, ISP, JTAG) sowie einem Wannenstecker zum "externen
Abgriff" aller IC-Pins. Alles was da an ICs fest drauf ist, ist der
RS232Chip sowie im weiteren Sinne der Festspannungsregler.
Der große Vorteil ist eben ("nur") dass man nicht etwas wackel-, fehler
und störanfällig mit einem Steckboard arbeitet, sondern wie gesagt LEDs,
Summer, Taster fest drauf sind.
Eben gerade drum löst das nicht meine Verwunderung über das
Pin-Durcheinander. Auch wenn ich in Arduino nicht direkt "hochlade"
sondern nur eine "Binärdatei exportiere", muss ich vorher dort alle
Angaben zum gewählten Atmel-uC machen. Beim Atmega 16 gibt es zB. die
Wahl "Pinout: Standard/Bobuino", was zB. auch die spätere reale
Pinbelegung verändert (aber bloß nie die eigentlich "richtige"
hervorbringt.)
Wo sitzt denn dann auf dem Weg zum Atmel-uC nochmal eine
"Software-Ebene" zwischen, die die Pins ordnen bzw. durcheinanderwürfeln
kann?
Etwas weiter oben wurde der Link schon einmal gepostet:
https://www.arduino.cc/en/Hacking/PinMapping168
Dort findest Du die "Übersetzung" welcher Port/Pin welcher Bezeichnung
zugeordnet wird, die in der Arduino-IDE verwendet wird.
Zum Beispiel unten rechts (Hardware Pin15):
PB1 des Datenblattes entspricht D9 der Arduino IDE
T. P. schrieb:> Wo sitzt denn dann auf dem Weg zum Atmel-uC nochmal eine> "Software-Ebene" zwischen, die die Pins ordnen bzw. durcheinanderwürfeln> kann?
Die Arduino-Umgebung sitzt dazwischen und würfelt alles durcheinander,
nur diese.
Wenn du wirklich normal arbeiten willst und eh C nutzt, dann tue dir
selber einen Gefallen - nutze das AVR / Atmel Studio.
@Frank:
> Etwas weiter oben wurde der Link schon einmal gepostet:> https://www.arduino.cc/en/Hacking/PinMapping168
Das hatte ich durchaus schon gelesen, frage mich nur sehr, was das
helfen kann. Denn um die auf dem Arduino-Board verbauten 168/328 geht es
ja nun gerade nicht.
@Rene, ja, Danke für den Hinweis mit C. Ich habe seit längerer Zeit
schon vor bzw. bin dabei, mich einzuarbeiten, "leider" wirklich "von
Null an". Soweit, mit "AVR / Atmel Studio" zu arbeiten war ich auch
schon, allerdings nur soweit gehend, fremde, fertige Programme auf die
Atmel-uCs zu programmieren. Ich glaube, langfristig wird mir C auch
nicht zu schwer sein. Allerdings habe ich bisher nur Bücher über C
gefunden, die ich den Autoren am liebsten um die O... h... würde
(Entschuldigung, kann es nicht anders sagen.)Zum Reinkommen für Anfänger
(und vor allem um eigene Programme so wie gebraucht zu schreiben) ist
Arduino nun tatsächlich genial, zudem habe ich hierfür endlich ein
geniales Buch gefunden, das nicht nur blind und fragmentarisch
beschreibt, sondern kleinschrittig und verständlich erklärt.
Somit also nach wie vor mein Wunsch, bei Arduino zu bleiben und das
Pollin-Board zusätzlich zu benutzen.
neulich nicht weiter verfolgt. Danke für die Antworten. Ich hatte vor
allem einen Denkfehler: Ich dachte, dass wenigstens noch "boardintern"
der sogenannte Pin Nr xy auch mit dem uC Ausgang Pin Nr. xy verbunden
wird - und erst danach vermischt irgendwas Rätselhaftes die Pins. Aber
selbst auf dem Board sind die Pinnnummern ja schon durcheinander. Macht
es zwar nicht einfacher aber verständlicher ;-).