PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Pro Unit Mega 128



IceWave
29.11.2015, 19:42
Hi, und zwar habe ich mir den Pro Bot von Conrad gekauft.
Habe ihn auch schon fertig zusammen gebaut. Funktioniert alles!

Jetzt bin ich natürlich "relativ" neu im Gebiet programmieren.
Ich wollte eigentlich jetzt erstmal einfach anfangen und mir die Belegung von dem Microcontroller ansehen.
Finde aber leider nicht wirklich was wo ich mich auskenne.

Man hat doch bei einem Microcontroller einmal die Spannungsversorgung und die Ein/Ausgänge. (Digital und Analog)
Liege ich da richtig?

RoboHolIC
29.11.2015, 20:13
Hallo und Willkommen, IceWave.

Ist so erstmal richtig, aber noch stark vereinfacht.
Erste Gegenfrage: Hast du ein Datenblatt des Controllers ?

Es gibt da ein paar Gruppen von Anschlüssen, die fast immer bei einem Controller vorkommen:
- Spannungsversorgung, manchmal aufgeteilt auf CPU-Versorgung und A/D-Wandler-Versorgung
- Reset-Eingang, oftmals per Chipkonfiguration (Stichwort "Fuse Bits") auch als I/O-Pin vewendbar; davon sollte man besser die Finger weg lassen
- Takteingang und Taktausgang der Oszillatorschaltung
- Input/Output-Pins
- analoge Eingänge

Die meisten dieser Pins sind neben der I/O-Funktion mehrfach belegt von verschiedenen internen Komponenten, z.B. UART, I2C-Bus, Timersignale, PWM, ...
Diese Sonderbelegungen werden i.d.R. durch die Aktivierung von Komponenten wirksam.
Nur wenige sind durch die "Fuses" ( = Fuse Bits) bestimmt, z.B. die Pins für das JTAG-Interface zum Debugging: Das ist bei manchen Controllerfamilien, wo sie ab Werk aktiviert sind, ein böser Fallstrick.

Jetzt empfehle ich dir fleißiges Einlesen und das Stellen konkreter Fragen. Da kann man nämlich besser helfen :)

Gruß
Christian.

IceWave
29.11.2015, 20:57
Danke erstmal.
Das hier habe ich gefunden: http://www.pic-upload.de/view-28991300/datenblatt.png.html
Da kenne ich mich jetzt schon etwas aus, nur wäre es nicht schlecht gewesen wenn ich was gehabt hätte wo
einfach drauf steht Analog Input Output usw..

Noch eine kleine Frage:
Hat der Controller dann auch Analoge Ausgänge oder? Weil der Motor des Roboters kann ja geregelt werden.
Oder funktioniert das anders?

bnitram
29.11.2015, 21:20
Hallo IceWave,
wie die C-Control intern verdrahtet ist liefert Conrad selbst mit:
30940
(das 2. IC ist jedoch nicht verbaut!)

Zudem gibt es auch eine Übersicht, welcher Pin welche Aufgabe hat:
30941

Analoge Ausgänge hat der Controller(ein Atmega128) nicht. Die Geschwindigkeit der Motoren wird mittels PWM geregelt.

MfG
bnitram

PS:
das Forum hat die Bilder ganz schön verkleinert. Wenn du mir ne PN schreibst, kann ich die auch nochmal in original Größe schicken.

IceWave
29.11.2015, 21:25
Dankeschön, wird jetzt langsam.
Wäre nur noch nett wenn mir jemand schreiben könnte was PE0/PB0/PD0/PG0/PC0/PA0/PF0 bedeutet.
Und noch wegen dem PWM. Wie funktioniert das? Schaltet der Mikrocontroller wenn beispielsweise der Motor mit 50% laufen soll dann einen Digitalen Ausgang für z.B 1msec aktiv / wieder inaktiv usw.. ?
MfG

RoboHolIC
30.11.2015, 20:05
Ja, so ähnlich.
PWM kann z.B. als Hardwaremodul durch einen Zähler und zwei Vergleichswerte realisiert sein. Das kann dann so funktionieren:
- der Zähler wird mit dem Systemtakt - ggf. noch vorab vom Vorteiler verlangsamt - hochgezählt
- beim Zählerstand Null wird der PWM-Ausgang high
- bei Gleichheit von Zähler und Vergleichswert 1 wird der PWM-Ausgang low
- bei Gleichheit von Zähler und Vergleichswert 2 wird der Zähler gelöscht und der nächste high-Zyklus fängt an
Daraus ergibt sich, dass die PWM-(Grund-)frequenz von Systemtakt, Vorteiler und Vergleichswert 2 abhängt, der Duty Cycle (das Tastverhältnis bzw. Einschaltverhältnis) aber nur von dem Verhältnis (Vergleichswert 1 / Vergleichswert 2) im Bereich 0,0 ..1,0, also 0..100%
Außer der Parameterübergabe muss das Programm nichts zur Erzeugung der PWM beitragen.

IceWave
03.12.2015, 17:07
Danke, Kann mir nur noch jemand dann sagen was PE0/PB0/PD0/PG0/PC0/PA0/PF0 bedeutet ?
MfG

RoboHolIC
03.12.2015, 22:57
Vielleicht ist mir ja der gemeinsame Nenner aller genannten Bezeichner entgangen, aber spontan würde ich mal tippen:
"P" steht für PORT, also schlichte I/O-Funktionalität
"A" .."G" dürften die einzelnen 8-Bit-Ports sein
"0" wäre dann das Bit 0, bzw. 2^0

IceWave
06.12.2015, 10:12
Vielen Dank.
Habe den Motor jetzt schonmal zum laufen gebracht.
Die Frage die sich mir jetzt jedoch stellt ist, das funktioniert mit dieser Funktion.
Timer_T1PWMX(256,128,128,PS_8);
Timer_T1PWA(222);
Woher kennt der Controller diese Funktion?
Sind die irgendwie festgelegt oder wie ist das ?


MfG

RoboHolIC
06.12.2015, 11:25
Das sind Bibliotheksfunktionen aus einer der Dateien, die an Anfang deines Programms mit #include dem Compiler bekannt gemacht -eingebunden- werden.

IceWave
06.12.2015, 18:42
Okay, habe die Library jetzt gefunden.
Aber es wird nirgendwo was mit #include eingebunden.
Vor allem in meinem selbst geschriebenen Programm habe ich das ja auch nicht gemacht.. ?

Und nochmal zum Mikrocontroller.
Habe mir das mal alles genauer durchgelesen.
Warum hat der 8x 10 Bit ADC ? Und auch 5x DACs
Bedeutet das, dass 8 Eingänge Analog in Digital umwandeln?
Und 5 Ausgänge für Digital in Analog sind?
Dann könnte man ja doch die Motoren des ProBot's so steuern und nicht mit PWM oder ?

RoboHolIC
06.12.2015, 22:54
Bedeutet das, dass 8 Eingänge Analog in Digital umwandeln?
Jo.


Und 5 Ausgänge für Digital in Analog sind?
Dann könnte man ja doch die Motoren des ProBot's so steuern und nicht mit PWM oder ?
Jein. Das sind vermutlich PWM-Ausgänge, deren Ausgangssignale in der peripheren Beschaltung standardmässig auch als geglättete, also gemittelte Gleichspannungen zur Verfügung stehen. Für die Motoransteuerung sind aber die PWM-Signale die bessere Wahl, weil nur damit eine verlustarme Leistungssteuerung möglich ist.