Hi, Wir möchten für eine Motorenregelung einen Mikrocontroller einsetzen. Weil wir uns auf diesem Gebiet aber nicht besonders auskennen, fällt und die Evaluation etwas schwer. Hier mal die Problemstellung: Wir verwenden eine fixfertige Motorensteuerung, der man einen Sollwert für das Drehmoment des Motors vorgeben kann. Diesen Sollwert wollen wir mit einem Mikrocontroller vorgeben (PWM). Die Motorensteuerung hat einen Ausgang, der eine Spannung Proportional zur Drehzahl abgibt. Diese Spannung wollen wir mit dem Mikrocontroller einlesen. Schlussendlich soll mit dem uC ein Regler realisiert werden, der aufgrund des Istwerts den Sollwert (Steuergrösse) verändert. Ein Display und eine Tastatur hängt natürlich auch noch dran, damit der User die Drehzahl vorgegen kann. Konkrete Fragen: -Welche Taktrate braucht unser Prozessor? -Welche Architektur (Busbreite, 8, 16, 32 Bit) brauchen wir? -Was ist die Busbreite überhaupt? Auf was hat sie Einfluss? Vielen Dank für die Hilfe P.S.:Im Anhang hat es ein Schema unserer Schaltung (Format:Vision)
Schaltungen immer als png, pdf oder anderes lesbares. Wer sagt, pdf kanner nich, dazu gibts ps2pdf. Peter
.jpg geht übrigens auch :) Interessant wäre noch zu erfahren, welche Frequenz und Auflösung die PWM und AD-Wandlung haben soll... Welche Gehäuseform Dir so vorschwebt wäre auch noch intressant (PDIP, TQFP, MLF,...) Datenrate: Hängt ein wenig von PWM und AD ab - können wir also noch nix zu raten... Wahrscheinlich könnte aber der interne Taktgeber einens AVR's reichen. Busbreite: Busbreite verstehe ich Adressierungslimit für Speicher und Hardware-Rechenwerk drunter... An Adressraum wird die 2x 16Bit eines AVR's für die bisher bekannte Aufgabenstellung mehr als reichen, Rechenoperationen hängen dann auch wieder von der benötigten Geschwindigkeit ab ob es ausreicht, aufwendigere Rechenoberationen in Software (z.B. "C") zu machen. Überhaupt solltest Du Dich auch evtl. herzu mal äußern, ob Du Assembler, C, Basic oder was anderes als Programmiersprache nutzen sollst/mußt.
Der Monitorausgang hat eine Aktualisierungsrate von 1.6 ms und eine Auflösung von 9 Bit. Es reicht also, wenn wir schneller sind als das und gleich hoch auflösen. Die Bauform soll kein Kriterium sein, aber am liebsten wäre uns ein DIL-Gehäuse. Programmieren wollen wir in C.Ich habe zwar einmal gelesen, das man zeitkritische Anwendungen besser in Assembler programmiert, aber es ist Jahre her, seit ich das zum letzten Mal gemacht habe. Die Frequenz des PWM spielt nicht so eine Rolle. Wir hängen sowieso ein Filter dran, um eine möglichst gute Gleichspannung zu erhalten. Ich bin mir nicht sicher, ob ich mit Busbreite den richtigen Ausdruck verwendet habe. Aber bei den AVR's z.B kan man doch auswählen 8 oder 32 Bit. Das meine ich. Also wieviel Bit brauche ich da? Im Anhang habe ich das Schema als .jpg attached. Vielen Dank für eure Hilfe und entschuldigt bitte unser Unwissen;-)
Ich weiß zwar auch nicht mehr als alle anderen, bin aber mutig :-) Ein ATmega8 (..48, ..88, ..168) würde m.E. für Dein Problem reichen. Hat ADC, genug RAM/FLASH und ist bis zu 20MHz schnell.
"Im Anhang habe ich das Schema als .jpg attached." Welcher Anhang? :) Also 1,6 ms sind wenn ich das richtig rechne 625 Samples/s - da sollte ein AVR ausreichend für sein... Bisher würde ich auch für einen Mega8 raten, da der dann noch genügend Anschlüsse für Tastatur und Display oder sonstiges frei hat. Wenn Geschwindigkeit keine Rolle spielt und auch nicht mit großen Datenmengen zu rechen ist (Programmspeicher (>128kB) bzw. RAM) reicht ein 8 Bit aus.
Hi Die PICs wären vl auch einer Erwähnung wert, denn immerhin ist ja eine Motorsteuerung genau ihr Einsatzgebiet ;-). Also ich würd wohl den PIC18F2220 nehmen (ist mein PErsönlicher Favorit). Wenn es mehr Speicher und mehr IO-Pns sein soll, dann würd ich den PIC18F4220(der grosse Bruder vom 2220)nehmen. C-Compiler gibts von Mircochip auch gratis. Schau doch einfach mal bei www.microchip.com vorbei. Am besten bei der PIC18F-Serie. AD-Wandler und PWM Module habe sie auch...UART ebenfalls (wenn ein anschluss an den PC vl auch einmal gedacht ist). Zum brennen des PICs gibts ganz günstige und einfache Schaltungen im Netz. WEnn du einen ordenltichen Brenner haben willst mit dem du so ziemlich jeden PIC(und auch dsPIC) brennen kanns, dann bau doch einfach den Brenner 5 von Sprut (www.sprut.de) nach. mfg schoasch
Ich versuch das mit dem Anhang noch einmal. Was haltet ihr z.B. von dem ATmega664?
Ich würde noch eine 5V (oder weniger) Spannungsversorgung vorsehen... die wenigsten uC's freuen sich über 24V :) Bist Du Dir sicher, dass Du einen Mega664 meinst und nicht evtl. einen Mega644? Was die Auswahl des richtigen uC's angeht solltest Du Dir gedanken machen, wie viele I/O's Du wirklich brauchst... mit einem 40Pin bist Du mit Sicherheit auf der sicheren Seite, ein 28Pin (schmale Bauform) wäre allerdings kompakter.
Aber vielleicht sollte man dann alternativ zum Mega644 überlegen ob es ein Mega16 oder Mega32 nicht auch tun würden - die sind wenigstens auch verfügbar...
Welche Funktion (und Pegel) hat eigentlich der "Enable Connecotr" mit dem nachgeschalteten Spannungsregler?
Das ist das Freigabesignal der Schweissmachine (0..24V, je nach Hersteller)...Ist der 644 schlecht verfügbar?...Wie haben den 644 genommen weil er schnell ist und genügend IO's hat.Es ist eben möglich, dass wir noch mehr IO's brauchen. Der Monitorausgang ist unter Umständen nicht genau genug, dann müssten wir die Hallsensoren des Motors direkt einelesen.
Der Mega644 hat grad soviele I/Os wie Mega16/32, dazu pinkompatibel, ist aber noch sehr neu und dementsprechend schlecht verfügbar. Und ist mit JTAG-Nachbeuten nicht ansprechbar. Besser Mega32.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.