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 Samstag 23. August 2008, 16:14

So, jetzt hab ich noch ne Frage zur Elektronik. Hab versucht über google/irc/Freunde fragen ne Antwort zu finden, aber da kam nix definitives raus, da dacht ich ich frag nochmal an der Quelle nach :) Es geht um diesen Schaltplan von http://halvar.at/krimskrams2/12_motoren ... 48_v06.gif . Meine Frage ist die folgende: Das System wird oben links mit 12V gespeist, also 12V Potentialdifferenz Pluspol zu Minuspol (Masse) aus dem Netzteil. Die werden dann in 5V umgewandelt, also wieder relativ zur Masse des Netzteils. Diese 5V werden dann an den max232-Teil rechts angelegt. Aber das kann doch nur klappen, wenn die Masse des Netzteils identisch ist (vom Potential her) mit der Masse des PC, also mit Pin 5 des rs-232. Kann ich einfach so davon ausgehen? Ich hab zB mit nem Multimeter nachgemessen (Masse Netzteil vs Pin 5 rs232) und ne Spannung von 2-3V gemessen. Ist mir da ein Fehler unterlaufen? Wenn nicht, würd ich doch nen (gefährlichen) Kurzschluss herbeiführen, wenn ich die Massen miteinander verbinde. Und wenn ich die Massen nicht miteinander verbinde, sind die 5V Potentialdifferenz die durch die Stromversorgung geliefert werden für das max232 keine 5V mehr, weil sich ja das Bezugspotential verändert.
Oder kann ich einfach davon ausgehen dass die beiden Massen identisch sind? Hilft es, ein Netzteil zu nehmen mit einem Steckdosenanschluss der auch geerdet ist? Bisher benutze ich ein Netzteil mit so nem "flachen" Stecker, der den Erd-anschluss der Steckdose nicht berührt (also bisher dieses Format: http://www.amansis.de/pic/usb/usb_strom.jpg und vielleicht besser dieses: http://www.avu-netz.de/reactor_cms/_med ... tecker.jpg ?).
Ich hoffe mal ich hab da nich kompletten Humbug erzählt.
Abgesehen davon werd ich mal anfangen meinen bascom source code für den atmega32 (und wenn das klappt, fürs atmega48) zu schreiben... im Netz fliegen ja einige Beispiele für ne PWM durch die Gegend, hoffentlich blick ich da schnell genug durch. Werde ich auch Fusebits umsetzen müssen? Vor dem Thema hab ich mich bisher eher fern gehalten...
Dann mal schönes Wochenende noch, ciao
Thomas
Thom
Threadstarter
33746
Junior Mitglied
 
Beiträge: 20
Registriert: Freitag 15. August 2008, 18:45

Re: DC-Motoransteuerung per PC

Neuer Beitragvon gerold am Samstag 23. August 2008, 16:43

Thom hat geschrieben:Es geht um diesen Schaltplan von http://halvar.at/krimskrams2/12_motoren ... 48_v06.gif .
[...]
würd ich doch nen (gefährlichen) Kurzschluss herbeiführen, wenn ich die Massen miteinander verbinde.

Hallo Thomas!

Ich habe nur für eine kurze Antwort Zeit. Verbinde die Minus-Leitungen (-) miteinander. Das passt so. Ein Kurzschluss bedingt einen geschlossenen Stromkreis. Mit dem Verbinden der Minus-Leitungen, schließt du noch keinen Stromkreis. Deshalb gibt es auch keinen Kurzschluss.

mfg
Gerold
:-)
Zuletzt geändert von gerold am Samstag 23. August 2008, 16:54, insgesamt 1-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
33747
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 Samstag 23. August 2008, 16:54

Hallo Thomas!

Wenn du einen ATmega32 verwendest, dann musst du einen kleineren Quarz verwenden. Der ATmega32 kann nur (garantierte) 16 MHz.

Für den ATmega32 ist der größte Quarz mit dem du fehlerfrei Daten übertragen kannst, der 14,7456 MHz. Wenn du den 16 MHz-Quarz verwendest, der beim Pollin-Evaluationsboard mit drauf ist, dann darfst du keine so hohe Baudrate verwenden. Siehe: http://halvar.at/elektronik/kleiner_bas ... _computer/
Ich kenne deine Anwendung nicht, aber wahrscheinlich dürfte der 16 MHz-Quarz für dich reichen.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
33748
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 27. August 2008, 19:16

So, hallo nochmal.
Kannst du mir vielleicht noch nen Tip geben, wie man beim mega48 die sechs verschiedenen PWM Signale generiert? Die ersten zwei gehen ja sehr einfach über
Code: Alles auswählen
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Start Timer1
, das einstellen der Pulsweite geht dann ebenso einfach über Pwm1a=0..255 und Pwm1b=0..255.
Ich hatte zuerst gedacht, dass die anderen Timer genauso funktionieren (einfach Timer0,2 statt Timer1 schreiben), dem ist aber offensichtlich nicht so. Auf http://avrhelp.mcselec.com/index.html?config_timer0.htm und http://avrhelp.mcselec.com/index.html?config_timer2.htm steht auch, wie die "Config"-Syntax von der beim Timer1 abweicht, aber so wie ich das sehe, können Timer0 und Timer2 jeweils nur ein PWM Signal generieren - wie komme ich also an die sechs verschiedenen? Das Datenblatt vom mega48 hab ich hier, aber da hab ich die Antwort bisher auch noch nicht gefunden... kannst du mir noch nen Wink in die richtige Richtung geben?

Dankeschön, ciao

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

Re: DC-Motoransteuerung per PC

Neuer Beitragvon gerold am Mittwoch 27. August 2008, 19:55

Thom hat geschrieben:Kannst du mir vielleicht noch nen Tip geben, wie man beim mega48 die sechs verschiedenen PWM Signale generiert?

Hallo Thomas!

Ich werde mal recherchieren.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
33770
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 Mittwoch 27. August 2008, 20:14

Hallo Thomas!

Fertig recherchiert:
Code: Alles auswählen
$regfile = "m48def.dat"
$crystal = 1000000
$hwstack = 100
$swstack = 100
$framesize = 100
'$baud = 4800


'pd6 = oc0a
'pd5 = oc0b

'pb1 = oc1a
'pb2 = oc1b

'pb3 = oc2a
'PD3 = oc2b

Config Timer0 = Pwm , Prescale = 8 , Compare A Pwm = Clear Down , _
   Compare B Pwm = Clear Down

Config Timer1 = Pwm , Prescale = 8 , Compare A Pwm = Clear Down , _
   Compare B Pwm = Clear Down , Pwm = 8

Config Timer2 = Pwm , Prescale = 8 , Compare A Pwm = Clear Down , _
   Compare B Pwm = Clear Down


Ocr0a = 20
Ocr0b = 40
Compare1a = 60
Compare1b = 80
Ocr2a = 100
Ocr2b = 120

Do
   !nop
Loop

End

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
33771
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 28. August 2008, 14:42

Wahnsinn, danke. Ich glaub ohne deine ganze Hilfe hätt ich das Projekt knicken können. Kannste mir auch verraten wo/wie du das recherchiert hast? Die Fehlermeldung alleine hat mir nich weitergeholfen, und die bascom-Hilfeseiten die ich da verlinkt haben sahen ja ganz danach aus dass es für Timer0 und Timer2 nur je eine PWM gibt...
Also jetzt isses so dass man bei Timer1 eine 8,9 oder 10 bit PWM wählen kann, und Timer0 und Timer2 haben per default 8, alles klar.
Aso, werd ich außer CLKSEL0..3 auch SUT0..1 ändern müssen? Ich kann aus der Tabelle im datasheet nich rauslesen, welche Werte ich für den 18.43MHz Quarz nehmen soll...

Kann das übrigens sein dass der Simulator in der bascom-avr IDE Entwicklungsumgebung die PWM nich simulieren kann? Und auch andere Hintergrundprozesse , wie Signale empfangen bei UART nich? Ich hab die µc noch alle nich geliefert bekommen (wird aber langsam Zeit...) und will deshalb schonmal so viel wie möglich im Voraus programmieren...
So, dann nochmal dankeschön,
ciao
Thomas
Thom
Threadstarter
33776
Junior Mitglied
 
Beiträge: 20
Registriert: Freitag 15. August 2008, 18:45

Re: DC-Motoransteuerung per PC

Neuer Beitragvon gerold am Donnerstag 28. August 2008, 15:19

Hallo Thomas!
Thom hat geschrieben:Kannste mir auch verraten wo/wie du das recherchiert hast?

Die Bascom-Hilfe zu Timer0 und zu Timer1 verraten ziemlich viel. Aus der Hilfe zu Timer1 erfährt man, dass man mit Compare1a und Compare1b auf die Compare-Register zugreifen kann. In der Hilfe zum Timer2 steht z.B. der PWM-Parameter nicht drinnen. Also braucht man diesen Parameter auch beim Timer0 nicht.

Da das Zuweisen mit COMPARE0A und COMPARE0B nicht funktioniert, schaut man in der "m48def.dat"-Datei nach, welche Register man verwenden kann. Und dort gibt es in der Auflistung die Register OCR0A, OCR0B, OCR2A und OCR2B.


Thom hat geschrieben:Aso, werd ich außer CLKSEL0..3 auch SUT0..1 ändern müssen? Ich kann aus der Tabelle im datasheet nich rauslesen, welche Werte ich für den 18.43MHz Quarz nehmen soll...

Code: Alles auswählen
Low Fuse:  11111111
High Fuse: 11011111
Ext. Fuse: 11111111
Lockbits:  11111111



Thom hat geschrieben:Kann das übrigens sein dass der Simulator in der bascom-avr IDE Entwicklungsumgebung die PWM nich simulieren kann? Und auch andere Hintergrundprozesse , wie Signale empfangen bei UART nich?

PWM kann er nicht simulieren. Aber Empfang von Daten über die UART sollte schon funktionieren. INPUT erwartet das unsichtbare Zeichen CR (=13) als Zeilenende.


mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
33777
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 Freitag 29. August 2008, 16:45

Jo, UART funktiert doch, hatte nur die zwei recht wichtigen Worte "Enable Interrupts" vergessen, da ging dann nicht viel.
Zu UART hab ich auch noch ein paar Unklarheiten (das byte, mit dem ich die PWM breite übertrage, kann jeden Wert von &B00000000 bis &B11111111 annehmen, also auch &B00001101 = 13 = default-stopbyte. Sollte ich also mein c#-Programm so ändern, dass es ne Geschwindigkeit von 13 in eine von 14 oder so umändert, um nich versehentlich ein Stopbyte zu senden?)

Was jetzt grade für mich wichtig ist (hab das Paket mit den Teilen von Kessler-Elektronik jetzt bekommen, wollt grad mit dem Löten anfangen), ist dass ich zwar einen 10pol Wannenstecker hab für den STK200 Parportadapter http://www.mikrocontroller.net/articles/STK200 (ich werd das jetzt so versuchen statt mit dem eva-board), aber keine entsprechende Buchse. Kann ich nicht einfach einen der beiden mega48 Sockel "permanent" mit dem adapter verlöten? Und dann halt den zu programmierenden µc immer in diesen Sockel legen (einer von beiden µc würd dann im Betrieb auch drin bleiben)? Oder muss ich das so machen, dass ich den Adapter auch immer trennen kann?

Naja ich fang schonmal mit der Spannungsversorgung an. Bin kein wirklicher Profi im Löten, das sollte mich erstmal beschäftigen :)

Ciao,

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

Re: DC-Motoransteuerung per PC

Neuer Beitragvon gerold am Freitag 29. August 2008, 17:16

Hallo Thomas!
Thom hat geschrieben:Sollte ich also mein c#-Programm so ändern, dass es ne Geschwindigkeit von 13 in eine von 14 oder so umändert, um nich versehentlich ein Stopbyte zu senden?

INPUT nimmt man, wenn Text über die UART empfangen werden soll. Das Einfachste wäre also, wenn du nicht ein einzelnes Byte für die Geschwindigkeit überträgst, sondern drei Textzeichen "000" bis "256". Dann kann nie ein CHR(13) darunter sein. Für den Empfang von Binärdaten gibt es INPUTBIN und noch ein paar andere Befehle. Aber nichts ist so einfach als der Tipp mit dem *Text*. :-)


Thom hat geschrieben:Und dann halt den zu programmierenden µc immer in diesen Sockel legen (einer von beiden µc würd dann im Betrieb auch drin bleiben)?

Sehr unpraktisch, nicht wahr? :-) Du könntest dir statt dem Wannenstecker die SIL-Leiste als Buchse und Stecker verwenden. Siehe: http://rowalt.de/mc/avr/AvrbuchOnline/A ... 19_949.htm


Thom hat geschrieben:Naja ich fang schonmal mit der Spannungsversorgung an.

Vielleicht interessiert dich, dass ich dieses Kapitel bereits fertig habe: http://halvar.at/elektronik/motorsteuer ... odul-bauen :-)


mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
33785
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 Freitag 29. August 2008, 21:47

Hm.. jetzt bin ich wieder etwas unsicher wie ich den Programmierteil mit dem µc verbinden soll.. laut http://halvar.at/krimskrams2/12_motoren ... 48_v06.gif führen 6 Leitungen zur Schnittstelle - reset, GND, vcc, sck, miso, mosi. Aber auf http://www.mikrocontroller.net/articles/STK200 wird ein 10poliger Anschluss benutzt, der zusätzlich noch Port 16 vom 74hc244 mit pin 3 aufm 10pin-Anschluss verbindet, und dann noch 4 "GND-Klone" hat. Kann ich die port 16 -> pin 3 Verbindung einfach ignorieren und nur die sechs Verbindungen (im 10pin Bild auf den PIns 1,2,4,5,7,9) benutzen?
Ich werd das erstmal so machen. Hoffentlich stimmts, scheint irgendwie offensichtlich, aber dass port 16 dann fehlt stört mich etwas... dann ist das ja kein echter STK200 mehr, den bascom/ponyprog etc kennen.. oder?
Ok dann mal gute Nacht, ciao
Thomas

ps. ich hab ein paar Seiten aus dem eingescannten Buch von Roland Walter gelesen, aber vielleicht isses schon zu spät, jedenfalls hab ich davon nich viel verstanden :/
Thom
Threadstarter
33786
Junior Mitglied
 
Beiträge: 20
Registriert: Freitag 15. August 2008, 18:45

Re: DC-Motoransteuerung per PC

Neuer Beitragvon gerold am Freitag 29. August 2008, 22:52

Thom hat geschrieben:Hm.. jetzt bin ich wieder etwas unsicher wie ich den Programmierteil mit dem µc verbinden soll..

Hallo Thomas!

Es sind nur die Stecker anders. Aber die Leitungen sind überall die gleichen (Pin 3 kann beim 10-poligen Wannenstecker frei gelassen werden). Auf dieser Seite http://halvar.at/elektronik/kleiner_bas ... rogrammer/ sind die Stecker gegenübergestellt. Den Link zum Buch von Roland Walter habe ich dir nur deshalb gegeben, weil dort erklärt wird, wie man aus SIL-Leisten einen solchen Stecker und eine Buchse macht. Zwei Sechserreihen der SIL-Leiste abbrechen (ganz vorsichtig mit zwei Zangen). Eine dieser Sechserreihe wird als Buchsenleiste auf die Platine gelötet. Und die andere Sechserreihe wird an das Kabel des Programmers gelötet. Einfach die einzelnen Kabel in die Kelche löten. Danach die Kabel mit Heißkleber fixieren, damit sie nicht abreißen. Und nicht vergessen, den RESET-Pin am Kabel und auf der Platine kennzeichnen, damit man das Kabel nicht verkehrt herum einsteckt.

Und vielleicht interessiert es dich. Das Kapitel über die RS-232-Verbindung ist fertig: http://halvar.at/elektronik/motorsteuer ... odul-bauen :-)

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
33787
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 Sonntag 31. August 2008, 21:49

Hallo Thomas!

Vielleicht hast du den Programmer noch nicht aufbebaut. Dann könnte dich vielleicht interssieren, dass dieses Kapitel jetzt auch fertig ist:

http://halvar.at/elektronik/motorsteuer ... mmer-bauen

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
33790
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 Montag 1. September 2008, 21:43

Soo, also jetzt hab ich schonmal nen guten Teil fertig und wollte das erste Testprogramm übertragen. Um genau zu sein hab ich den STK200 (nach der Anleitung von http://www.mikrocontroller.net/articles/STK200 , hatte es fertig bevor du deinen Link gepostet hast :) ), drei L293D nach http://www.skilltronics.de/versuch/elek ... /l293.html , den max232 teil, stromversorgung und mega48 verkabelung nach http://halvar.at/krimskrams2/12_motoren ... 48_v06.gif . Ich bin auch relativ sicher dass die Verbindungen alle ok sind, hab immer zwischendurch mit nem Multimeter die Widerstände über Knotenpunkte gemessen.
Also, Oszilloskop an einen L293D angeschlossen, 12V angelegt (bzw dadurch 5V an den µc), LPT und rs232 verbunden, versucht in bascom ein Programm zu übertragen -->
Fehlermeldung "Could not identify chip with ID:FFFFFF"
Dann: "Selected chip and target chip do not match AT90S2313 <> ATmega48"
Dann kann ich zwischen FlashROM, EEPROM und Lock and Fuse Bits wählen, wähle Lock&Fuse-->
"ReadLB entry not found"
ein ähnliches Problem hatte offenbar hier auch einer, http://www.wrighthobbies.net/phpBB2/vie ... b5bffd0b7c
Hab jetzt mal mit $crystal=8000000 und $crystal=18432000 probiert, mit und ohne Quarz, hilft auch beides nichts.. :/ was kann ich da jetzt machen? Gibts ne einfache Möglichgkeit, zu gucken, ob der Programmer überhaupt funktioniert, also richtig verlötet ist?
Ich werd mal ein bißchen weiter rumprobieren, aber ein richtiges Konzept hab ich grad nicht...
Aso die Sicht auf den LPT port hier http://www.mikrocontroller.net/articles/STK200 ist auf die Innenseite, richtig? also auf die Rückseite der Buchse, die ich belöte (war auch genauso nummeriert)..
Naja ich bin sehr dankbar für jeden Hinweis... so ein kleines Erfolgserlebnis nach dem ganzen gelöte wär nicht schlecht :)
Bis dann, ciao
Thomas


edit: FFFFFF , nicht FFFF
Thom
Threadstarter
33795
Junior Mitglied
 
Beiträge: 20
Registriert: Freitag 15. August 2008, 18:45

Re: DC-Motoransteuerung per PC

Neuer Beitragvon Thom am Montag 1. September 2008, 21:58

Aaaaaaah, Erfolgserlebnis ahoi, der LC224 war nich richtig eingerastet :rock:

Ok nicht zu früh freuen, jetzt erstmal gucken ob ich ein Signal auf den Oszi kriege.. melde mich wieder
Thom
Threadstarter
33796
Junior Mitglied
 
Beiträge: 20
Registriert: Freitag 15. August 2008, 18:45

VorherigeNächste

Zurück zu Elektronik Allgemein

Wer ist online?

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