DC-Motoransteuerung per PC

Alle allgemeinen Themen zu Elektronik und Elektro

Alle allgemeinen Themen zu Elektronik und Elektro

Moderator: Moderatorengruppe

Re: DC-Motoransteuerung per PC

Neuer Beitragvon Thom am Mittwoch 20. August 2008, 09:23

Klar, ich Depp hab übersehen, dass die Dioden nur benutzt werden wenn der Schalter offen ist. Und wegen dem Nachtrag... ich halte es für alles andere als ein Hindernisrennen, eine hardware pwm zu programmieren (2 zeilen bascom) und damit parallel alle L293 zu versorgen. Alles andere (mehrere hardware/software pwm per timer/mainloop, mehrere/andere µc, ...) ist Optimierung. Wenn ichs nicht schaffe ist das kein Beinbruch, und lernen tu ich ja in jedem Fall was.

Hm und gerold, da du meinen Vorschlag mit der Idee, einfach die vier hardware pwm auf beliebige I/O ports zu kopieren (wäre ja kaum Rechenleistung für erforderlich, ginge auch in nem timer statt mainloop) nicht aufgegriffen hast, kann ich das so interpretieren, dass das nicht klappen würde? Vier verschiedene PWMs wären für meine Zwecke eh schon mehr als ich verwenden kann, benutzen würd ich wahrscheinlich allerhöchstens drei.
Ähm und ich seh nur 3 OC* ports.. PD4, PD5, PD7 ( http://www.mcu.hk/GIF/ATmega32.gif )... welcher ist denn der Vierte?

Ansonsten finde ich die Variante mit drei 1kHz software PWM mit 50 Abstufungen ganz passabel, das wär noch absolut "flüssig" genug für meine Anwendung (<0.2V Schritte für den 12V Motor)... ich verstehe zwar nicht ganz wieso das weniger Rechenleistung erfordert, es kommt ja fast nur das auf-eins-setzen des runningvalue bei ner neuen Obergrenze dazu... :?:

Danke, ciao

Thomas
Thom
Threadstarter
33712
Junior Mitglied
 
Beiträge: 20
Registriert: Freitag 15. August 2008, 18:45

Re: DC-Motoransteuerung per PC

Neuer Beitragvon gerold am Mittwoch 20. August 2008, 10:31

Hallo Thom!

Thom hat geschrieben:eine hardware pwm zu programmieren (2 zeilen bascom) und damit parallel alle L293 zu versorgen.

Wenn du nur bis zu vier PWM-Signale brauchst, dann ist das natürlich eine mögliche Lösung für dein Problem.

Thom hat geschrieben:Hm und gerold, da du meinen Vorschlag mit der Idee, einfach die vier hardware pwm auf beliebige I/O ports zu kopieren (wäre ja kaum Rechenleistung für erforderlich, ginge auch in nem timer statt mainloop) nicht aufgegriffen hast, kann ich das so interpretieren, dass das nicht klappen würde?

Ob ich das PWM-Signal in der MainLoop erzeuge oder einfach von einem Timerausgang woanders hin kopiere, bleibt sich gleich. Beides ist davon abhängig, dass die Mainloop gleichmäßig durchläuft. Aber das macht sie nicht. Du hast Signale vom Computer auszuwerten und dementsprechend Pins zu setzen und PWM-Signale anzupassen. Das passiert nicht im Hintergrund. Da werden Systemticks verbraucht und es wird schon mal an einer Codestelle gewartet, bis Daten angekommen sind. Das wird nichts mit dem Kopieren des PWM-Signals in der MainLoop.

Und wenn du das Kopieren des PWM-Signals in einem Timer-Interrupt-Handler erledigst, dann hast du kaum gewonnen. Das Kopieren braucht auch seine Zeit. Du sparst dir nur das Hochzählen der Variable <Runningvalue> und den Vergleich des <Runningvalue> mit dem eingestellten PWM-Wert. Vielleicht kannst du pro Software-PWM-Kanal 2-5 Systemticks damit sparen.

Thom hat geschrieben:Ähm und ich seh nur 3 OC* ports.. PD4, PD5, PD7

PB3

Thom hat geschrieben:<0.2V Schritte für den 12V Motor

Du hast es noch nicht kapiert. Du regelst damit nicht die Spannung! Du regelst nur, wie lange oder wie kurz die volle Spannung am Motor anliegt oder nicht anliegt.

Thom hat geschrieben:ich verstehe zwar nicht ganz wieso das weniger Rechenleistung erfordert, es kommt ja fast nur das auf-eins-setzen des runningvalue bei ner neuen Obergrenze dazu...

Der Interrupt-Handler wird nicht mehr so oft angesprungen. Somit hat die MainLoop mehr Systemticks zum Arbeiten zur Verfügung.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
33713
Bronze Mitglied
 
Beiträge: 127
Registriert: Montag 30. Juli 2007, 11:19
Wohnort: Oberhofen im Inntal (Tirol)
Postleitzahl: 6410
Land: Austria / Österreich

Re: DC-Motoransteuerung per PC

Neuer Beitragvon Thom am Mittwoch 20. August 2008, 18:16

Hi Gerold. Also vier PWM würden absolut reichen, ich will ja niemals mehr als vier (eigentlich sogar höchstens drei denke ich) Motoren gleichzeitig betreiben... das Problem ist halt nur, dass ich dann schon beim Löten über die Verkabelung festlegen müsste, welche Motoren welche der vier PWM kriegen. Daran könnte ich dann im Betrieb nix mehr ändern, und könnte nicht jeder beliebigen Kombination von zwei Motoren verschiedene Geschwindigkeiten zuweisen. Oder geht das doch irgendwie?
Würde das kopieren von dem PWM port schneller gehen, wenn ich in nem Timer ne "If PORTC.0<>PIND.5 Then PORTC.0=PIND.5" benutze? 99% der Zeit würde er ja nur den Vergleich machen, ist sowas schneller als ein Schreibvorgang?

Wegen den 0.2V Schritten: wie ne PWM funktioniert hatte ich verstanden, ich dachte gestern nur, dass der Motor die Rechteckspannung etwas glättet, außerdem hatte ich noch überlegt nen 100nF Kondensator parallelschalten. Dann sollte der Motor eigentlich ne recht geglättete Spannung erhalten, die dann eben linear von der Pulsbreite abhängt; also bei ner PWM wo die Pulslänge ner halben Periode entspricht hätte ich dann sowas wie 6V DC. Der Plan dabei war, zu verhindern, dass der Motor so stockt oder "eiert", weil er dauernd Spannungsschubser bekommt statt eines durchgehenden Signals.
Die Idee hab ich aber auch wieder verworfen... bei 1kHz sollte das Stocken kein Problem sein, außerdem kanns auch sein, dass der Motor bei zu kleinen Spannungen gar nich mehr anspringt, also werd ich mir das wohl sparen.

Dann mal schönen Abend noch, tschö
Thomas
Thom
Threadstarter
33718
Junior Mitglied
 
Beiträge: 20
Registriert: Freitag 15. August 2008, 18:45

Re: DC-Motoransteuerung per PC

Neuer Beitragvon gerold am Mittwoch 20. August 2008, 21:54

Hallo Thom!

Nur mal so als Vorschlag:

http://halvar.at/krimskrams2/mehrere_mo ... a8_v08.gif

Ziel dieses Entwurfs war totale Freiheit, Flexibilität und Erweiterbarkeit. Zuerst wollte ich es mit dem ATtiny2313 probieren, aber dann ist mir eingefallen, dass der ja nur 100 Byte SRAM hat. Der ATmega8 hat 1000 Byte SRAM. Damit muss man das Programm nicht künstlich klein halten und kann die ATmega8-Steuereinheiten auch andere Dinge erledigen lassen -- wenn man möchte.

Der krumme Quarz ist *wichtig* und für die schnelle (115200 Baud) Datenübertragung zuständig. Weiters hat man damit auch genug Reserven für kompliziertere Programme.

Wenn du je einen ATmega8 auf je einer Platine aufbaust, dann kannst du jederzeit zusätzliche Motoren und Funktionen hinzufügen.

Kostenschätzung:

4 x ATmega8: 5 € (http://www.kessler-electronic.de/prodde ... PROD=55655)
1 x MAX232CPE: 1 € (http://www.kessler-electronic.de/prodde ... PROD=22278)
Kleinkram: 2 €

Jetzt solltest du selber entscheiden können, ob du unbedingt alles mit einem µC machen möchtest und dafür Kompromisse eingehst, oder ob du vier µC einsetzt und dafür alle Freiheiten hast. Ich bin nicht beleidigt, wenn du weiterhin alles mit einem µC machen möchtest. :-)

mfg
Gerold
:-)

PS:

Obwohl... der ATtiny2313 ist doch eine Überlegung wert. Der hat vier PWM-Ausgänge, Hardware-UART und genug Pins um die vier Motoren in die richtige Richtung steuern zu können. Den Schaltplan könnte man 1zu1 auf die ATtiny2313 umsetzen. Nicht wegen der Kosten -- nur weil damit nicht vier, sondern nur drei µC notwendig wären. So könnte man auch die Motortreiber besser aufteilen.

Ich glaube, mit drei ATtiny2313 ist man gar nicht mal so schlecht beraten. :-) Man müsste dann aber die ID des µC für die Ansteuerung per RS-232 im Programm fixieren. Denn dafür sind nicht mehr genug Pins übrig.

PS2:

Haha.... :lol: Der ATmega48 hat 6 PWM-Kanäle :-) Wenn man auch hier die ID fest im Programm verankert, dann hast du mit zwei ATmega48 (je 1,20 €) alles was du brauchst. Volle Kontrolle über alle Motoren. Jetzt glaube ich, die ideale Lösung für dich gefunden zu haben. Denn mit zwei µC um insg. 2,4 Euro hast du 12 Hardware-PWM-Kanäle und genug Pins um die Treiber-ICs anzusteuern. :D

.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
33721
Bronze Mitglied
 
Beiträge: 127
Registriert: Montag 30. Juli 2007, 11:19
Wohnort: Oberhofen im Inntal (Tirol)
Postleitzahl: 6410
Land: Austria / Österreich

Re: DC-Motoransteuerung per PC

Neuer Beitragvon Thom am Donnerstag 21. August 2008, 08:06

Wow, nochmal vielen Dank für die ganzen Anregungen. Das mit den beiden Atmega48 hört sich an sich sehr gut an. Dazu nur ein paar Fragen...

Bisher wollte ich ja den mega32 auf das atmel-evaluationsboard setzen ( http://www.pollin.de/shop/shop.php?cf=d ... Y5OTgxOTk= , Lieferung ist schon unterwegs) . Das hat zwei rs232 anschlüsse, einen zum Programmieren, einen zum Steuern im Betrieb. Laut der Beschreibung ist das aber nicht zum mega48 kompatibel... was wäre für mich dann die einfachste Möglichkeit, den µc zu programmieren und zu steuern? Reicht ein Schaltplan, wie du ihn in deinem letzten Beitrag gepostet hast, dafür aus? Dann bräuchte ich also nur ne Platine, ein paar Kondensatoren, das max232, ne rs232 Buchse, ein 5V Netzteil (beim eva-board ist ein Spannungswandler/anpasser für 9V AC->5V DC dabei, der sollte aber ebenfalls reichen um die 12V, die ich für die Motoren benutze, in 5V für den µc umzuwandeln).. und das wars? Also evtl noch ein Quarz für die höhere Baud-rate?
Also da das evaluations-board schon unterwegs ist, werde ich zuerst mal mit dem mega32 arbeiten. In 10 Tagen sollte die ganze Apperatur laufen, und wenn ich zu viel gleichzeitig probiere und dann zwei Sachen nur halb fertig sind wär das nicht so optimal. Aber wenn du meinst, dass die Teile da oben zum Programmieren und Steuern ausreichen, dann könnt ich trotzdem noch schnell ne Bestellung rausschicken und mich um diese zweite Variante kümmern, wenn die mega32 Version schon komplett läuft. Hätte auch den Vorteil, dass ich die beiden Varianten modular austauschen könnte, da der mega48 ja nicht über das eva-board läuft.

Ach so und zum mega48, ich hab nicht ganz verstanden wieso man mit den Jumpern ne ID festlegen muss.. ich kann doch einfach jedes Signal vom sr232 parallel auf beide µc legen, und dann entscheidet ne IF-abfrage im bascom Programm, ob der jeweilige Steuerbefehl für den jeweiligen Chip gedacht ist. Natürlich müssten dafür auf den beiden chips zwei verschiedene Programme liegen, die sich halt in genau dieser Abfrage unterscheiden (sowas wie "IF motor_id < 6" im einen Programm und "IF motor_id >= 6" im anderen, noch bevor irgendetwas gemacht wird; vom PC aus muss ich ja eh ne motor_id mitschicken damit klar ist, welcher Motor angesteuert werden soll)

Vielen Dank nochmal für die ganzen Tips, das ist alles unglaublich hilfreich.
Aso und noch zwei ganz andere Sachen: man legt ja in bascom die Taktfrequenz des Chips am Anfang mit $crystal fest. Gibts irgendeinen Grund, da nicht immer die maximale Frequenz zu nehmen, die der Chip unterstützt? Und dann die maximale Baudrate, die damit möglich ist? (zB bei mega32 $crystal=16000000 und $baud=1000000 ?)

Und ich bin grad am überlegen ob ich das PC-seitige Ansteuerporgramm (am besten mit ner GUI) in python oder c# machen soll. Python lerne ich grade seit 2-3 monaten, in c# hab ich schon mehr gemacht, das ist aber schon was länger her.. was wär da deine Empfehlung? Python finde ich bisher klasse, aber ich hab das Gefühl dass das Erstellen einer GUI mit Visual c# express viel leichter geht.. aber nagut das ist wahrscheinlich reine Geschmackssache.

Ciaosen

Thomas
Thom
Threadstarter
33725
Junior Mitglied
 
Beiträge: 20
Registriert: Freitag 15. August 2008, 18:45

Re: DC-Motoransteuerung per PC

Neuer Beitragvon gerold am Donnerstag 21. August 2008, 08:44

Thom hat geschrieben:Bisher wollte ich ja den mega32 auf das atmel-evaluationsboard setzen ( http://www.pollin.de/shop/shop.php?cf=d ... Y5OTgxOTk= , Lieferung ist schon unterwegs) . Das hat zwei rs232 anschlüsse, einen zum Programmieren, einen zum Steuern im Betrieb. Laut der Beschreibung ist das aber nicht zum mega48 kompatibel

Hallo Thom!

Ich antworte mal in mehreren Einzelbeiträgen.

Dass der ATmega48 nicht in der Beschreibung des Pollin Evaluationsboards steht, heißt noch lange nicht, dass man ihn damit nicht verwenden kann. :-)

Die µC ATmega8, ATmega48, ATmega88 und ATmega168 sind pinkompatibel.
Die 48, 88 und 168 sind sozusagen erweiterte ATmega8.

Siehe:
- http://www.loetstelle.net/forum/viewtopic.php?t=2285
- http://akapuma.info/software/vergleichsliste.html

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
33727
Bronze Mitglied
 
Beiträge: 127
Registriert: Montag 30. Juli 2007, 11:19
Wohnort: Oberhofen im Inntal (Tirol)
Postleitzahl: 6410
Land: Austria / Österreich

Re: DC-Motoransteuerung per PC

Neuer Beitragvon gerold am Donnerstag 21. August 2008, 09:24

Thom hat geschrieben:man legt ja in bascom die Taktfrequenz des Chips am Anfang mit $crystal fest. Gibts irgendeinen Grund, da nicht immer die maximale Frequenz zu nehmen, die der Chip unterstützt? Und dann die maximale Baudrate, die damit möglich ist? (zB bei mega32 $crystal=16000000 und $baud=1000000 ?)

Und ich bin grad am überlegen ob ich das PC-seitige Ansteuerporgramm (am besten mit ner GUI) in python oder c# machen soll.

Hallo Thom!

Bascom hat keine Ahnung davon, mit welchem Systemtakt der µC läuft. Damit Bascom trotzdem weiß, wie schnell der µC getaktet ist, gibt man das im Programm mit ``$crystal=...`` an. Stimmt dieser Wert nicht mit dem Systemtakt überein, dann kann Bascom bestimmte Befehle nicht richtig synchronisieren/abstimmen. Es ist also nicht so, dass Bascom bestimmt, wie schnell der µC läuft, sondern umgekehrt.

Und ob du lieber mit Python oder C# programmierst, liegt an dir. :-) Aber wenn du im Moment noch nicht weißt, wie man in Python eine GUI programmiert, dann schaffst du das in den geplanten 10 Tagen nicht mit Python. Dann solltest du für dieses Projekt doch lieber auf C# setzen.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
33728
Bronze Mitglied
 
Beiträge: 127
Registriert: Montag 30. Juli 2007, 11:19
Wohnort: Oberhofen im Inntal (Tirol)
Postleitzahl: 6410
Land: Austria / Österreich

Re: DC-Motoransteuerung per PC

Neuer Beitragvon gerold am Donnerstag 21. August 2008, 10:45

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
33729
Bronze Mitglied
 
Beiträge: 127
Registriert: Montag 30. Juli 2007, 11:19
Wohnort: Oberhofen im Inntal (Tirol)
Postleitzahl: 6410
Land: Austria / Österreich

Re: DC-Motoransteuerung per PC

Neuer Beitragvon Thom am Donnerstag 21. August 2008, 10:51

gerold hat geschrieben:
Thom hat geschrieben:Bisher wollte ich ja den mega32 auf das atmel-evaluationsboard setzen ( http://www.pollin.de/shop/shop.php?cf=d ... Y5OTgxOTk= , Lieferung ist schon unterwegs) . Das hat zwei rs232 anschlüsse, einen zum Programmieren, einen zum Steuern im Betrieb. Laut der Beschreibung ist das aber nicht zum mega48 kompatibel

Hallo Thom!

Dass der ATmega48 nicht in der Beschreibung des Pollin Evaluationsboards steht, heißt noch lange nicht, dass man ihn damit nicht verwenden kann. :-)

Die µC ATmega8, ATmega48, ATmega88 und ATmega168 sind pinkompatibel.
Die 48, 88 und 168 sind sozusagen erweiterte ATmega8.

Siehe:
- http://www.loetstelle.net/forum/viewtopic.php?t=2285
- http://akapuma.info/software/vergleichsliste.html

mfg
Gerold
:-)


Ok, ich verstehe. Das heißt ich kann den mega48 mit dem evaluations-board programmieren, und zum Steuern würd ich mir dann eine kleine Platine mit den genannten Bestandeteilen zusammenlöten - also Spannungsversorgung, rs232 Anschluss, elkos, evtl Quarz, max232. (Denn zwei mega48 werden gleichzeitig ja nich aufs board passen, oder?)

Und das mit $crystal war dann ein Mißverständnis meinerseits, ich dachte dass man bei bascom den Wert halt frei wählt, so wie $framesize. Aber wenn der Wert einfach vom Chip abhängt ist ja alles klar. Und wie ist das mit der Baudrate, da nehm ich einfach 1000000 (also meim atmega32 mit 16MHz), da der Wert laut http://halvar.at/elektronik/kleiner_bas ... _computer/ ja eine fehlerfreie Übertragung ermöglicht? Oder muss ich das Maximum nehmen, dass ich in der Windows Hardwareeinstellung für den COM1 port wählen kann (128000) oder den höchsten Wert aus dieser Liste, der eine fehlerfreie Übertragung zulässt (34800)?

Ciao
Thomas

Und danke für den neuen Schaltplan :) wofür brauche ich denn die ISP-Verbindung rechts vom mega48, oder kann ich die auch weglassen?
Thom
Threadstarter
33730
Junior Mitglied
 
Beiträge: 20
Registriert: Freitag 15. August 2008, 18:45

Re: DC-Motoransteuerung per PC

Neuer Beitragvon gerold am Donnerstag 21. August 2008, 11:18

Thom hat geschrieben:Und wie ist das mit der Baudrate, da nehm ich einfach 1000000 (also meim atmega32 mit 16MHz), da der Wert laut http://halvar.at/elektronik/kleiner_bas ... _computer/ ja eine fehlerfreie Übertragung ermöglicht?
[...]
Und danke für den neuen Schaltplan :) wofür brauche ich denn die ISP-Verbindung rechts vom mega48, oder kann ich die auch weglassen?

Hallo Thom!

Für die ATmega48-Schaltung: Nimm den Quarz, den ich im Schaltplan eingezeichnet habe. Dann hast du ein schnell laufendes Programm und du kannst die Schaltung mit 115.200 Baud ansteuern. Info: Der Computer kann auch nicht jede beliebige Baud-Rate. Gehe davon aus, dass 115.200 Baud die höchste Baud-Rate ist die ohne Probleme funktioniert. Damit werden in der Sekunde 11.520 Zeichen übermittelt. Damit kannst du die Motoren richtig schnell ansteuern. Wenn du am Computer eine Taste drückst, dann legt der Motor sofort los. Dieses Gefühl hast du mit niedrigen Baudraten nicht.

Der nächst kleinere Quarz, mit dem du auch 115200 Baud fahren kannst ist 14,7456 MHz. Weiter würde ich nicht runter gehen.

Wenn du auf der Platine einen ISP-Anschluss vorsiehst, dann kannst du die ATmega48 auf dieser Platine programmieren, ohne sie jedes mal ausbauen zu müssen. Auch wenn du einen Sockel verwendest (was sowiso Plicht ist), so ein Pin kann sehr leicht abbrechen. Und wenn du so einen Stecker, wie er hier http://halvar.at/elektronik/kleiner_bas ... rogrammer/ erklärt wird, auf der Platine unterbringst, dann hast du das Problem nicht.

Im Normalfall kannst du die AVRs so direkt programmieren. Im schlimmsten Fall musst du die Verbindungen MOSI, MISO und SCK über je einen Jumper vom Rest der Schaltung trennen, während du das Programm übertägst.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
33731
Bronze Mitglied
 
Beiträge: 127
Registriert: Montag 30. Juli 2007, 11:19
Wohnort: Oberhofen im Inntal (Tirol)
Postleitzahl: 6410
Land: Austria / Österreich

Re: DC-Motoransteuerung per PC

Neuer Beitragvon Thom am Donnerstag 21. August 2008, 14:16

Hm welcher Quarz ist das denn? Da steht nur "Quarz" dran, keine Bezeichnung... brauch ich den für die atmega32 Variante auch, bzw ist das da von Vorteil? Selbst bei ner baudrate von 9600 ist die "Reaktionszeit" dann ja bei 1/(960 Zeichen/sek)=1.04ms, das wär für meine Ansteuerung ja erstmal genug, pro Motor bräucht ich ja grad mal 2 byte oder so... obwohl klar, schneller ist besser :)

Und zu dem Schaltplan: Offenbar kommt das Signal das ich am PC per UART ausgebe aus dem 3. Pin des rs232 - ist das immer so? Und ist Pin 5 immer schon GND? Nich dass ich da meinen PC kurzschließe :) und hier http://www.blafusel.de/misc/atmega8_io.html zum Beispiel ist Pin 3 aufm Ausgang des max232 statt auf nem Eingang.. wie lässt sich das erklären?

Und hier http://www.roboternetz.de/wissen/images ... max232.gif zum Beispiel werden nur drei, nicht fünf Verbindungen vom rs232 zum max232 hergestellt, liegt das daran dass ich in deiner Variante irgendwie zwei parallele Ausgangs- und zwei parallele Eingangs-kanäle hab? Kann ich deswegen die Verbindungen der rs232-Pins 2,6,7 in deiner Zeichnung weglassen, wenn ich eh nur einen Sende-Pin brauche? (Nein das ist mir nicht zu viel Arbeit ;), ich frage größtenteils nur zum Verständnis)

Ok und wenn ich dich richtig verstanden habe, kann ich den mega48 entweder wie gehabt aufm evaluations-board programmieren, und dann zum Motor steuern auf die eigene Platine legen, oder ich kann ihn auf der Platine lassen und per 6 pin ISP programmieren. Ich hab mir jetzt schon ein bißchen was über die Programmer durchgelesen, und nicht ganz alles verstanden - aber was für ein Kabel brauch ich denn wenn ich über das ISP programmieren will? Hier http://www.avrfreaks.net/index.php?modu ... tem_id=786 gibts eins für 99$ und hier http://www.roboternetz.de/wissen/index. ... mmierkabel eins zum zusammenlöten, das gefällt mir beides nicht so richtig. Also.. gibts ne einfache Möglichkeit auf der Platine gleichzeitig zu Programmieren und zu steuern? Dafür bräucht ich ja nicht nur das Kabel sondern auch ne Buchse auf der Platine... wenn das alles relativ einfach geht, würd ich gleich noch bestellen, denke ich. Wenn nicht, is nich schlimm, dann nehm ich den µc halt zum Programmieren immer da raus und steck ihn ins eva-board.

Empfielst du mir auch noch das mysmartusb Teil zu holen wenn ich an nem Rechner programmieren will der kein rs232 hat? Die Programmierung aufm eva-board geht ja auch indirekt über ubs, mit nem einfachen 5€ usb-rs232 interface, wenn man vorher so nen "megaload" bootloader draufspielt von http://www.microsyl.com/megaload/megaload.html - hab ich mir jedenfalls sagen lassen (#roboternetz.de auf irc.euirc.net).. kennst du diese Möglichkeit?

Naja.. ich bn jetzt wieder etwas durcheinander.. aber solange die Variante mit dem eva-board funktioniert bin ich ja erstmal auf der sicheren Seite.

Wieder ein Haufen Text. Hoffentlich hat ein Teil davon Sinn gemacht.

Ciao,

Thomas
Thom
Threadstarter
33733
Junior Mitglied
 
Beiträge: 20
Registriert: Freitag 15. August 2008, 18:45

Re: DC-Motoransteuerung per PC

Neuer Beitragvon gerold am Donnerstag 21. August 2008, 15:47

Hallo Thom!

Thom hat geschrieben:Hm welcher Quarz ist das denn?

18.432.000 Hz (= 18,432 MHz)

Thom hat geschrieben:Offenbar kommt das Signal das ich am PC per UART ausgebe aus dem 3. Pin des rs232 - ist das immer so? Und ist Pin 5 immer schon GND?

Ja! Der Computer schickt das Signal über den Pin 3 (= TX, vom Computer aus gesehen). Wird das Signal über ein 1zu1-Kabel geschickt, wird das Signal über den Pin 3 erwartet und von dort nach RX (vom µC aus gesehen) geleitet.
Siehe:
- http://www.hardwarebook.info/Serial_(PC_9)
- http://www.sprut.de/electronic/interfac ... /rs232.htm
- http://halvar.at/elektronik/rs232/

Thom hat geschrieben:zum Beispiel ist Pin 3 aufm Ausgang des max232 statt auf nem Eingang.. wie lässt sich das erklären?

Vergleiche diese Schaltpläne miteinander:
- http://halvar.at/elektronik/kleiner_bas ... 1zu1kabel/
- http://halvar.at/elektronik/kleiner_bas ... odemkabel/

Thom hat geschrieben:Kann ich deswegen die Verbindungen der rs232-Pins 2,6,7 in deiner Zeichnung weglassen, wenn ich eh nur einen Sende-Pin brauche? (Nein das ist mir nicht zu viel Arbeit ;), ich frage größtenteils nur zum Verständnis)

Und ich wollte schon eine blöde Antwort geben. ;-)

Die Verbindungen, zwischen RS-232-Buchse und dem MAX232, 2, 7 und 8 könnten weggelassen werden. Pin 2 würde gebraucht werden, wenn der ATmega8 dem Computer auch antworten soll. Die Pins 7 und 8 wären für das RTS und CTS zuständig. "Request to Send" und "Clear to Send". Der Computer gibt mit RTS das Signal, dass er etwas schicken möchte. Der µC antwortet dann mit CTS, sobald er bereit für den Empfang ist. Damit kannst du den Datenaustausch synchronisieren. Das ist nur dann wichtig, wenn der µC so beschäftigt ist, dass er nicht ständig empfangen kann. Das brauchen wir nicht.

Thom hat geschrieben:was für ein Kabel brauch ich denn wenn ich über das ISP programmieren will?

Ich habe das jetzt schon so oft geschrieben, dass sich meine Hände dagegen sträuben, das schon wieder zu schreiben. Ich halte mich kurz:

Mit dem Pollin Evaluationsboard kannst du nur dann einen AVR flashen, wenn du in deinem Computer eine eingebaute Hardware-RS-232-Schnittstelle hast, die noch mit mindestens 5 Volt arbeitet. Es gibt auch welche, die nur mehr mit 3 Volt arbeiten. Das ist z.B. in fast jedem Laptop so der Fall. Nix gute RS-232 --> nix flashen mit Pollin Evaluationsboard.

Wenn du es schaffst, mit dem Pollin-Evaluationsboard einen AVR zu flashen, dann kannst du das Pollin-Evaluationsboard auch als Programmer verwenden. Du kannst dir dann ein Kable machen, welches du am ISP-Anschluss (10-polig) des Pollin-Evalboard anschließen kannst. Mit diesem Kabel kannst du dann die AVRs in den Schaltungen flashen.

Schaffst du es nicht, mit dem Pollin-Evalboard einen AVR zu flashen, dann brauchst du einen externen Programmer. Idealerweise ist das in meinen Augen der mySmartUSB (28 Euro). Da weiß ich dass er bei jedem Computer funktioniert.

Willst du auf Kosten des "Probierens" Geld sparen, dann kannst du dir einen Parallelport-Programmer aus einem 74244-IC machen. Siehe: http://halvar.at/elektronik/kleiner_bas ... rogrammer/ Wenn du einen eingebauten Parallelport hast, dann ist das eine richtig geile Sache. Dann kannst du sogar die Fusebits der AVRs direkt aus Bascom heraus einstellen. Und das mit Hardwarekosten unter 2 Euro. Also wenn ich du wäre, dann würde ich mir auf jeden Fall einen 74HC244 mitbestellen. Dann kannst du zur Not sofort einen Programmer für den Parallelport zusammenbasteln.

Thom hat geschrieben:Empfielst du mir auch noch das mysmartusb Teil zu holen wenn ich an nem Rechner programmieren will der kein rs232 hat?

Ja, ohne Einschränkung, jederzeit, sofort!

Thom hat geschrieben:Die Programmierung aufm eva-board geht ja auch indirekt über ubs, mit nem einfachen 5€ usb-rs232 interface, wenn man vorher so nen "megaload" bootloader draufspielt

Um den Bootloader drauf zu bekommen, musst du es erst einmal schaffen, den AVR zu flashen. Und wenn du das einmal geschafft hast, dann gibt es keinen Grund mehr für den Bootloader. Zumindest nicht für normale Projekte. Es ist etwas Anderes, wenn du einem Kunden die Möglichkeit eines Firmwareupdates bieten möchtest... Das ist nichts, was du innerhalb dieser 10 Tage andenken solltest. Viel wichtiger ist, dass du es überhaupt schaffst, einen AVR zu flashen. Und das ist mit dem Pollin-Evalboard erst mal Glücksache. Wenn du nicht immer EVA-Board geschrieben hättest, dann hätte ich dich schon früher warnen können. Dass du nur noch 10 Tage hast, hast du ja erst jetzt rausgerückt. ;-)

mfg
Gerold
:-)

PS: Wenn du das Pollin-Board zusammenlötest, dann solltest du die Quarze nicht direkt drauf löten. Zumindest nicht beim 28-Pin-Sockel. Löte einen Quarzsockel oder einzelne Stücke eines SIL-Sockels ein. Dann kannst du die Quarze tauschen.
Siehe: http://www.loetstelle.net/forum/viewtop ... =8390#8390

PS2: Noch etwas: Pollin ist kein Schnelllieferant. Die haben mich schon mal (ohne Meldung) drei Wochen warten lassen, weil sie ein Teil nicht liefern konnten. Bei denen musst du auf jeden Fall anrufen und nachfragen, wie weit sie mit deiner Lieferung sind und wie lange es noch dauern wird.

.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
33734
Bronze Mitglied
 
Beiträge: 127
Registriert: Montag 30. Juli 2007, 11:19
Wohnort: Oberhofen im Inntal (Tirol)
Postleitzahl: 6410
Land: Austria / Österreich

Re: DC-Motoransteuerung per PC

Neuer Beitragvon gerold am Donnerstag 21. August 2008, 16:33

Hallo Thom!

Für ISP nimmt man normalerweise entweder einen 10-poligen Wannenstecker oder eine SIL-Leiste.
- http://www.kessler-electronic.de/prodde ... PROD=28324
-http://www.kessler-electronic.de/proddetail.asp?ID=15EFCFFC39274799B8139D6D63222723&PROD=28291
- http://www.kessler-electronic.de/prodde ... PROD=51595

Als Sockel würde ich nicht die Doppelfederkontakt, sondern die Präzisionssockel verwenden. So wie diese hier: http://www.kessler-electronic.de/prodde ... PROD=33486

Der dazu passende ATmega48: http://www.kessler-electronic.de/prodde ... PROD=55664

Dann noch der MAX232: http://www.kessler-electronic.de/prodde ... PROD=22278

Der passende Quarz: http://www.kessler-electronic.de/prodde ... PROD=24887

Die zum Quarz passenden Kondensatoren: http://www.kessler-electronic.de/prodde ... PROD=21189

Die Kondensatoren zum Entstören der Stromversorgung der AVRs und für den 7805: http://www.kessler-electronic.de/prodde ... PROD=21411

Dann noch der 7805 itself: http://www.kessler-electronic.de/prodde ... PROD=37046

Die Kondensatoren für den MAX232 und den 7805:
- http://www.kessler-electronic.de/prodde ... PROD=45963
- http://www.kessler-electronic.de/prodde ... PROD=45943
- http://www.kessler-electronic.de/prodde ... PROD=13344

Die Diode für den 7805: http://www.kessler-electronic.de/prodde ... PROD=38625

Und die Buchse hätte ich fast vergessen: http://www.kessler-electronic.de/prodde ... PROD=28067

Den Sockel für den MAX232 habe ich auch noch vergessen: http://www.kessler-electronic.de/prodde ... PROD=33480

Jetzt dürfte jede Klarheit aus der Welt geschafft sein. :-)

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
33735
Bronze Mitglied
 
Beiträge: 127
Registriert: Montag 30. Juli 2007, 11:19
Wohnort: Oberhofen im Inntal (Tirol)
Postleitzahl: 6410
Land: Austria / Österreich

Re: DC-Motoransteuerung per PC

Neuer Beitragvon Thom am Donnerstag 21. August 2008, 17:02

Wow.. unglaublich, danke. Ich hab grad schon angefangen mir hier und da Teile von reichelt&co zusammenzusuchen, aber da gibt es so oft Varianten von Bausteinen bei denen ich nicht weiß, welchen ich brauche.. die Liste ist super, vielen Dank :D
Und dieser Händler scheint auch nochmal günstiger zu sein als reichelt, auch nicht schlecht.

(hust) ein bißchen unverschämt sich noch zu beschweren, aber der Link auf den max232 geht nich, und da gibts bei kessler direkt mal 17 Treffer: http://www.kessler-electronic.de/Index. ... 6D63222723 ääähm welchen nehm ich da am besten?

Einen 74hc244 haben die übrigens scheinbar leider nicht... aber ich glaube ich werd zuerst einmal gucken ob ich mit dem eva-board Glück habe... das hat ja übrigens bereits einen zweiten rs232, der mit dem isp 10-pin anschluss verknüpft ist, den wollt ich dann zum proggen benutzen. Ich hab hier in der Uni auch mehrere PCs mit rs232, einer von denen wirds schon schaffen. Wenn ich merke dass das nix wird, bestell ich sofort ein mysmartusb hinterher. Die Sachen sollten morgen oder spätestens übermorgen bei mir ankommen, so lang würd ich noch warten.

Dann nochmal danke, ciaosen
Thomas
Thom
Threadstarter
33736
Junior Mitglied
 
Beiträge: 20
Registriert: Freitag 15. August 2008, 18:45

Re: DC-Motoransteuerung per PC

Neuer Beitragvon gerold am Donnerstag 21. August 2008, 17:15

Thom hat geschrieben:da gibt es so oft Varianten von Bausteinen bei denen ich nicht weiß, welchen ich brauche

Hallo Thom!

Das ist die Liste, die ich mir zuerst gemacht hatte. Ich wollte nur mal wissen, wie teuer dieses Projekt werden würde:

2 x PSW10 - Pfostenstecker 10-polig Wanne print stehend
- 0,11 x 2 = 0,22 €

1 x SIL64 - IC-Fassung 64-polig Single-Inline Low-Cost-Präzisionskontakt
- 1,08 €

1 x PRF16 - IC-Fassung 16-polig Dual-Inline LowCost-Präzision RM 7,62mm
- 0,21 €

2 x PRF28-S - IC-Fassung 28-polig Dual-Inline LowCost-Präzision RM 7,62mm
- 0,36 x 2 = 0,72 €

2 x ATMEGA48-20PU - 8-Bit-CMOS-µC 20 MHz 4KB-FLASH 2,7..5,5V DIP28-S
- 1,19 x 2 = 2,38 €

1 x MAX232CPE - RS232-Sender/Empfänger je 2-fach DIP16 Maxim
- 0,99 €

2 x Q 18,432MIN - Quarz 18,432 000 MHz Gehäuse HC49/U-S
- 0,34 x 2 = 0,68 €

4 x KER 22P R2,5 - Keramikkondensator 22 pF 63 V RM 2,54 mm
- 0,04 x 4 = 0,16 €

10 x KER 100N R5 - Keramikkondensator 100 nF 63 V RM 5,08 mm
- 0,07 x 10 = 0,7 €

1 x 7805 - Spannungsregler + 5V 1,0A TO220
- 0,17 €

1 x ESM 100/16 - Miniatur-Elko stehend 100 µF 16 V= ø 6,3 x 7 mm RM2,5
- 0,09 €

4 x ESM 1,0/63 - Miniatur-Elko stehend 1,0 µF 63 V= ø 4 x 7 mm RM1,5
- 0,05 x 4 = 0,2 €

1 x EST 1000/35 - Elko stehend 1000 µF 35 V ø 13x21mm RM 5,0 mm
- 0,24 €

1 x 1N4148 - Universal-Diode 75 V 100 mA DO35
- 0,02 €

1 x SDB9LK - SUB-D-Buchse 9-pol. mit Lötkelch vergoldete Stanzkontakte
- 0,1 €

GESAMT: 7,96 €uro (ohne Versand, Platinen, Kabel und Montagematerial)



Für den Parallelport-Programmer:

1 x KE011SC-LC - Serielles Kabel SD25ST auf SD25ST 1,0 m Kabel 18p Low-Cost
- 1,59 €

1 x SDB25LK - SUB-D-Buchse 25-pol. mit Lötkelch vergoldete Stanzkontakte
- 0,16 €

1 x HC244 - Leitungstreiber 8-Bit-Bus DIP20
- 0,23 €

1 x 1N4148 - Universal-Diode 75 V 100 mA DO35
- 0,02 €

1 x KER 100N R5 - Keramikkondensator 100 nF 63 V RM 5,08 mm
- 0,07 €

GESAMT: 2,07 €



Passende Lochrasterplatinen (Streifen) für den Aufbau der Schaltungen:
(siehe: http://www.strippenstrolch.de/1-1-3-die ... atine.html)

- HSR100X160MM - Lochrasterplatte 100x160 Hartpapier Streifenraster
- HSR50X100MM - Lochrasterplatte 50x100 Hartpapier Streifenraster
- HSR75X100MM - Lochrasterplatte 75x100 Hartpapier Streifenraster

mfg
Gerold
:-)

PS: Kessler ist nicht unbedingt der schnellste Lieferant. Wenn du die Teile schnell brauchst, dann bist du mit Reichelt besser bedient.

MAX232CPE

.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
33737
Bronze Mitglied
 
Beiträge: 127
Registriert: Montag 30. Juli 2007, 11:19
Wohnort: Oberhofen im Inntal (Tirol)
Postleitzahl: 6410
Land: Austria / Österreich

VorherigeNächste

Zurück zu Elektronik Allgemein

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 56 Gäste