Ich bin auf der Suche nach dem richtigen Mikrocontroller für meine Anwendung. Leider bin ich bei Atmel nicht auf den passenden µc gestoßen und bei anderen Herstellern habe ich keine Erfahrungswerte, vielleicht könnt ihr mir helfen. Spannungsversorgung 5Volt Hardware Multiplier und Divider 15-20 I/Os 1-2 Uart ( der zweite wäre n1 wenns ein USB ist ( Host funktionalität wird nicht benötigt)) 6 Timer ( 16-bit ) 1-2 mal SPI 2-3 ADC ( mind 4 Kanäle pro ADC ) externe Interrupts ( idealerweise mit Prioritätenmanagement) idealerweise noch Eeprom ( kann ich aber auch über Spi realisieren) mfg Jan
Für eine sinnvolle Antwort sind noch ein paar Fragen offen: Was darf er denn kosten? Willst du ein bestimmtes Gehäuse?
Es ist für den Hobbybetrieb gedacht, daher ist der Preis eher zweitrangig sollte natürlich sagen wir mal 30 € nicht übersteigen. Es sollte ein hobbymäßig lötbares Format sein. ( Die Pins außen nicht untendrunter). Stecksockel geht natürlich auch p.s. er sollte nicht zu empfnindlich gegenüber Vibrationen sein. mfg Jan
Auch, wenn Du meinem Rat mit Sicherheit nicht folgen wirst, nachfolgend die "Richtigen" für Dich: SH7286 läuft mit 5V und ist sehr leistungsfähig oder H8SX1668 läuft nur mit 3,3V hat dafür aber noch USB Unter 30€ wird locker eingehalten, sofern Du mit dem Preis nicht Deine Gesamtkosten gemeint hast.
Wenn es 5V sein müssen dann kann ich nicht dienen. Aber bei 2..3,3V hätte ich da einen. Der STM32F103xC-D-E (ab 256KB Flash) hat 3AD-Wandler (16CH) und 8 Timer, genügend UARTs, SPI und IIC. Gibt es in verschiendene Gehäuse, Pins außen (nicht unten). Schaue mal hier, Artikel: STM32 EEPROM muss extern sein oder man nutzt das Flash für Parameter die wenig ändern.
>SH7286 läuft mit 5V und ist sehr leistungsfähig oder >H8SX1668 läuft nur mit 3,3V hat dafür aber noch USB Der Sh7286 hat doch auch USB ? Leider gibts den bei Farnell nicht. * LQFP-176 (20mm x 20mm, 0.4mm pitch) * LQFP-176 (24mm x 24mm, 0.5mm pitch) Und der ist dann pinmäßig doch etwas übertrieben für meine Anforderungen ( 15-20 Pins ) ^^ 5Volt sollten es schon sein, da ich noch peripherie habe die ich mit 5Volt betreiben möchte.
Ein SN74LVC8T245 (z.B. TI) könnte als Level-Shifter dienen. Ich weiß ja nicht wie viele Signale auf 5V bleiben sollten. Der STM32 ist bei den meisten Eingängen 5V Tolerant. Ansonsten wenn eine Galvanische Trennung nötig ist, kann ein ADUM1201 verwendet werden, der kann 3,3 und 5V. Ansonsten ein dsPIC30Fxxxx. Aber den kann ich nicht empfehlen, denn der Stromverbrauch ist enorm, der glüht wenn man ihn mit voller Leistung betreiben möchte. Ich habe damit schon gearbeitet, war nicht zufrieden (und hab ihn gegen einen STM32 getauscht). Daher empfehle ich den STM32 mit einem Level-Shifter. Ist in jedem Fall etwas für die Zukunft. Der dsPIC30 wird nicht mehr weiter entwickelt.
>Der Sh7286 hat doch auch USB ? Oh, da hast Du gut aufgepaßt :-) Wenn Dich die vielen Pins stören, der SH7285 hat nur 144 und der SH7243 nur noch 100. Den gibt es auch nicht bei Farnell, aber bei Distributoren von Renesas. >Es ist für den Hobbybetrieb gedacht, Damit scheiden die erwähnten Lieferanten aber aus.
> 5Volt sollten es schon sein, da ich noch peripherie habe die ich mit > 5Volt betreiben möchte. Dann ist Renesas schonmal nicht schlecht. Selbst ein moderner R32 mit 50Mhz und Fliesskommaeinheit kann noch mit 5V laufen. Allerdings wohl auch leicht uebertrieben fuer deine Beduerfnisse. Schau doch mal was es an M16C gibt. In der Mittelklasse benutze ich gerne den M16C29: 8x Timer 2x Uart syncron/async 1x Uart syncron/Async/I2c 2x SPI 1x Multimaster I2C 10Bit AD mit 27Kanaelen 2x DMA CRC-Generator 64pin oder 80pin Gehaeuse. Das Problem ist natuerlich wenn du mehr Rechenleistung willst, wie z.B im R32, so werden die vermutlich ueberall mehr Pinne haben. Wenn die Hersteller schon ein grosses Stueck Silizium brauchen dann machen sie halt rundrum alles voller Pinne. :-) Es gibt auch welche mit integriertem USB. (M16C6C) BTW: Hier im Markt-Forum hat jemand eine Rolle mit alten M16C62A (M30624FGAP) und verkauft sie preiswert. Der hat nur den Nachteil das er kein Interface zum E8 hat und nur ueber RS232 programmiert werden kann. Ansonsten aber auch ein toller Prozessor mit viel Ram. Es kann sich lohnen davon 10Stueck zu beschaffen. Layout fuer ein Testboard koennte ich zur Verfuegung stellen. Olaf
> Leider bin ich bei Atmel nicht auf den passenden µc gestoßen und bei > anderen Herstellern habe ich keine Erfahrungswerte, vielleicht könnt ihr > mir helfen. Der ATMEGA1280 könnte passen. Ist zwar ein bisschen gross, erfült aber deine anforderung. Gibt es sogar auf einem Arduino Ev. Board. http://de.farnell.com/multicomp/mc-mega/bord-atmega1280-mega-compatible/dp/1813413 oder Sparkfun.com Tytus
Den Megas fehlt auch der 2. oder 3. ADC. Ebenso eine Prioritätenzuteilung von Interrupts. An diesem Punkt muß jetzt die Frage kommen: Wozu brauchst Du denn das Alles? Und dann werden die Anforderungen solange reduziert, bis ein ATtiny 45 sowie ein paar Schieberegister und LEDs reichen :-) Aber ernsthaft: für welche Hobbyanwendung braucht man die erfragten Eigenschaften?
> Den Megas fehlt auch der 2. oder 3. ADC. Das fehlt den M16C/R32 auch. Wenn ich ehrlich bin ich kann mich auch nicht erinnern jemals einen Controller gesehen zu haben der mehr als einen AD-Wandler hatte. > Ebenso eine > Prioritätenzuteilung von Interrupts. Das allerdings koennen doch IMHO alle Controller ausser den ollen alten Atmels oder? Ist auch IMHO unverzichtbar. > Wozu brauchst Du denn das Alles? Bitte! Keine intelligente Fragen in Threads! Wo kommen wir denn da hin? Olaf
>Bitte! Keine intelligente Fragen in Threads! Wo kommen wir denn da hin?
Entschuldigung! Du hast Recht, das geht mich nun wirklich nichts an.
Ich wollte meine erste Variante meines Motorsteuergeräts neu aufsetzen, diese arbeitet im Moment mit 3V3. Für die IGBTs und den IC vom Knock interface wären aber eigentlich 5Volt besser daher die Frage. Ich denke es würde auch dem ADC der Gaspedalposition gut tun, den ich allerdings bis jetzt noch nicht integriert habe ( daher weiß ich es nicht). mfg Jan
Welchen µC verwendest Du jetzt? (bleib ruhig, Olaf, sonst erzähl ich allen, welche Macken die M16 und R32 haben :-) Hast Du Probleme wegen der 3,3V? Der SH728x läuft gerade auch mit 5V, um die Störfestigkeit zu erhöhen.
> Ich wollte meine erste Variante meines Motorsteuergeräts neu aufsetzen, > diese arbeitet im Moment mit 3V3. Glyn sagte mir das irgendein deutscher Autohersteller den R32 verwendet. Allerdings wuerde ich den privat nicht empfehlen weil es fuer die R32 keinen gcc gibt und man sonst die 64k Grenze hat. > Ich denke > es würde auch dem ADC der Gaspedalposition gut tun, den ich allerdings > bis jetzt noch nicht integriert habe ( daher weiß ich es nicht). Also fuer solche Aufgaben reicht doch mit Sicherheit immer ein eingebauter ADC. Es gibt doch am Automotor keinen analogen Messwert den du oefters als 100mal pro Sekunde brauchst. Da kann man dann doch wohl den eingebauten Wandler auf einen anderen Kanal umstellen. Eine Frage die du unbedingt Stellen solltest ist aber nach dem Temperaturbereich. Du brauchst einen Controller der im Motorraum im Sommer und Winter ueberlebt! > Welchen µC verwendest Du jetzt? (bleib ruhig, Olaf, sonst erzähl ich > allen, welche Macken die M16 und R32 haben :-) Ich arbeite nicht fuer Renesas und kann die Wahrheit gut vertragen. :-) Also erzaehl mal ruhig. R32 hat sicher die Macke das er alles kann und Dinge eingebaut sind die man niemals fuer moeglich haelt und das man deshalb leider oft lange im Datenblatt nach irgendeinen §$%§$%"$% Bit sucht das man auch noch setzen muss damit eine Funktion endlich laeuft. Ausserdem merkt man dem Teil an das er wohl fuer wichtige Steuerungen wie z.B Motorsteuergeraete gedacht ist. Es gibt bergeweise Bits mit denen man Registerzugriffen freischalten muss damit ein ausserkontrolle laufendes Programm nicht zu viel zerstoert. Im Gegenteil dazu merkt man den SH deutlich an das sie bereits eine lange Geschichte haben. Irgendwie gereifter, aber teilweise (z.B Taktgenerierung) sehr primitiv. Der M16C hat unter dem gcc die bloede Macke das der gcc nur Pointer vom Type 16bit unterstuetzt und dies bei 24Bit Adressen leider zu einer Sprungtabelle im kostbaren Ram fuer jede Funktion fuehrt die man verwendet. Sonst wueste ich jetzt aber nichts. BTW: In den letzten Tagen habe ich das erstemal seit zehn Jahren wieder in Assembler programmiert. (Scheduler fuer Multitasking auf dem M16C) Es ist schon interessant was man da mittlerweile fuer Befehle hat. Da koennte es fast wieder Spass machen sich auf alte Tugenden zu besinnen. :-) Kann ein AVR sowas auch: mov.w 12[fp],2[sp] Da fragt man sich ja fast wofuer die CPU noch Register hat. > Der SH728x läuft gerade auch mit 5V, um die Störfestigkeit zu erhöhen. Ist das denn wirklich von Bedeutung? Ich wuerde sagen Stoerfestigkeit erreicht man doch ueberwiegend durch Layout und Gehaeuse. Olaf
Fritz schrieb: > Hardware Multiplier und Divider Ich halte die Forderungen für übertrieben. Wozu braucht man bei Motorsteuerungen schnelles Rechnen? Das ist doch Mechanik und die ist per se viel langsamer als Software. Die zeitkritische Steuerung machen ja die PWM-Einheiten in Hardware. > 6 Timer ( 16-bit ) 6 Timer habe ich noch nie benötigt. Ein Timer reicht eigentlich immer, wenn er die benötigte Anzahl PWM-Einheiten hat. Es ist Unsinn, für jede Timeraufgabe nen extra Timer zu benutzen. > 2-3 ADC ( mind 4 Kanäle pro ADC ) Warum nicht ein ADC reicht, erschließt sich mir nicht. Es ist doch wurscht, ob ein schneller ADC oder viele langsame ADCs. Informativer wäre daher die Angabe der maximalen Wandlungen pro s und natürlich die Auflösung. Peter
Ich hät noch die DSPIC33F reihe im angebot. Zum beispiel : http://de.farnell.com/microchip/dv164033/entwicklungsboard-kit-icd2-w-explorer/dp/1439839 :-( Olaf schrieb: > Das allerdings koennen doch IMHO alle Controller ausser den ollen alten > Atmels oder? Ist auch IMHO unverzichtbar. :-( Mikrokopter benutzt einen Atmel für den Speedcontroler um den Brushless motor zu steuern.
> 6 Timer habe ich noch nie benötigt. Ich auch nicht. Aber so 3-4 braucht man schon. Man kann dann verschieden wichte Aufgaben mit verschiedenen IRQ-Prioritaeten laufen lassen. Ein Beispiel... Ich lese den DS1820 mit einer Statemachine im IRQ aus. Ist sehr wichtig also hohe Prioritaet weil sonst die Uebertragung schief gehen kann. Scheduler fuer Multitasking hingegen ist relativ unwichtig und kann gerne auch mal verzoegert laufen. Also eigener Timer mit geringer Prioritaet. Eigener Timer fuer die Delayfunktion ist auch nett. Ich weiss wenn man nichts hat kann man es sich immer auch irgendwie hinbiegen. Aber es macht einfach mehr Spass wenn man ein paar Timer mehr hat. Olaf
Peter Dannegger schrieb: > Fritz schrieb: >> Hardware Multiplier und Divider > > Ich halte die Forderungen für übertrieben. > Wozu braucht man bei Motorsteuerungen schnelles Rechnen? > Das ist doch Mechanik und die ist per se viel langsamer als Software. > Die zeitkritische Steuerung machen ja die PWM-Einheiten in Hardware. Um eine präzise Berechnung des Zündzeitpunkts und der Einspritzmenge zu erreichen, mache ich die Berechnung nicht über das verschieben. Diese Tatsache im Zusammenhang damit, dass ich viele Zähne auf dem Inkrementenrad habe ( Zündaussetzererkennung und wasted spark nach dem Anlassen). Führt dazu, dass diese Berechnungen sehr schnell ausgeführt werden müssen. Abgesehen davon möchte ich auch noch zusätzlich ein Telemetriesystem benutzen. >> 6 Timer ( 16-bit ) > > 6 Timer habe ich noch nie benötigt. > Ein Timer reicht eigentlich immer, wenn er die benötigte Anzahl > PWM-Einheiten hat. Es ist Unsinn, für jede Timeraufgabe nen extra Timer > zu benutzen. > Aufstellung der Timer: 1. Drehzahl 2. Einspritzzeitpunkt / Einspitzzeit Bank A 3. Einspritzzeitpunkt / Einspitzzeit Bank B 4. Zündzeitpunkt/Ladezeit Bank A 5. Zündzeitpunkt/Ladezeit Bank B 6. Rundenzeit Wenn ich jetzt Bank A und B über einen Timer laufen lassen ergibt sich bei meinem Inkrementenrad eine rechnerische Höchstdrehzahl, die leider unter meiner geforderten liegt. >> 2-3 ADC ( mind 4 Kanäle pro ADC ) > > Warum nicht ein ADC reicht, erschließt sich mir nicht. > Es ist doch wurscht, ob ein schneller ADC oder viele langsame ADCs. > Informativer wäre daher die Angabe der maximalen Wandlungen pro s und > natürlich die Auflösung. Die Gaspedalstellung wird über zwei gegenläufige Widerstände errechnet. Diese möchte ich aus Sicherheitsgründen nicht über denselben ADC laufen lassen. Außerdem werden noch einige Betriebsparameter des Motors erfasst. mfg Fritz
>> Der SH728x läuft gerade auch mit 5V, um die Störfestigkeit zu erhöhen. >Ist das denn wirklich von Bedeutung? Ich wuerde sagen Stoerfestigkeit >erreicht man doch ueberwiegend durch Layout und Gehaeuse. Die µC internen Schaltschwellen haben bei höherer Vcc einen größeren Abstand '0' zu '1'. >Ich halte die Forderungen für übertrieben. >Wozu braucht man bei Motorsteuerungen schnelles Rechnen? Ich weiß nicht, was Fritz letztlich vor hat, aber bei neueren Autos - zum Beispiel - werden mehrere Einspritzungen pro Zündvorgang gesteuert. Da ist keine Zeit für Bittrixereien. Mehrere ADCs braucht man in der Regel bei Elektromotoren, um die Phasenströme synchron zu messen.
Fritz schrieb: > Um eine präzise Berechnung des Zündzeitpunkts und der Einspritzmenge zu > erreichen, mache ich die Berechnung nicht über das verschieben. Du hast ein mechanisches System mit einer Trägheit, quasi ein Schwungrad. Du kannst die Zündzeitpunkte nicht abrupt verschieben, sondern mußt sie in kleinen Schritten nachführen. Sonst werden die mechanischen Kräfte zu groß und alles fliegt Dir um die Ohren. Überschlage doch erstmal, welche und wieviele Berechnungen pro Sekunde Du brauchst und mit welcher Genauigkeit. Jeder 8051 hat übrigends HW-Multiplikation/Division. > Wenn ich jetzt Bank A und B über einen Timer laufen lassen ergibt sich > bei meinem Inkrementenrad eine rechnerische Höchstdrehzahl, die leider > unter meiner geforderten liegt. Heißt das jetzt, Bank A, B sind 2 Motoren mit verschiedenen Drehzahlen? Ansonsten, wenn Du 4 Zeitpunkte brauchst, die zueinander synchron sind, brauchst Du nur einen Timer mit 4 Capture-Ausgängen. > Die Gaspedalstellung wird über zwei gegenläufige Widerstände errechnet. > Diese möchte ich aus Sicherheitsgründen nicht über denselben ADC laufen > lassen. Das bringt genau 0,nix an Sicherheit. Wenn durch ESD was kaputt geht, dann ist es der Eingangspin und nicht der ADC. Sicherheit bringt nur eine Schutzbeschaltung und ein entsprechendes Layout. Peter
Olaf schrieb: > Das fehlt den M16C/R32 auch. Wenn ich ehrlich bin ich kann mich auch > nicht erinnern jemals einen Controller gesehen zu haben der mehr als > einen AD-Wandler hatte. Die STM32 haben bis zu 3 ADCs.
> Die Gaspedalstellung wird über zwei gegenläufige Widerstände errechnet. > Diese möchte ich aus Sicherheitsgründen nicht über denselben ADC laufen > lassen. Das ist quatsch! Ich wuerde Sicherheit eher so angehen das ein externes primitives Monoflop die Zuendung ausschaltet wenn es nicht regelmaessig von der Leseroutine zurueckgesetzt wird. Oder man vergleicht die Widerstaende ueber ein Opamp und stellt alles ab wenn es unplausibel wird. Dem Code im Prozessor kann man nicht trauen. > Jeder 8051 hat übrigends HW-Multiplikation/Division. Die haben Bosch ja auch fuer die ersten Steuergeraete gereicht. Ich hab mal sowas vom Lancia Theme V6 zerlegt weil der Zuendaussetzer hatte. Da war ein MCS51 im Zuendsteuergeraet und einer im Einspitzsteuergeraet. Oh..und letztens habe ich ein ABS-Steuergeraet von BMW auf dem Tisch gehabt. Da war ein 6805 oder was aehnliches drin. Und erzaehlen sie immer was von hochentwickelter Technik und man muesse schon verstehen das ein Ersatzeil 1000Euro kostet.... Aber gut, ich wuerde gerade fuer private Projecte immer einen Controller nehmen der deutlich groesser ist als man es brauchen wuerde. Macht die Entwicklung und Fehlersuche doch etwas angenehmer. Vor allem da man privat nicht unbedingt die ganzen Luxus Debugger und Emulatoren hat. Da ist es doch nett wenn man ordentlich Code fuer die Fehlersucher und Ueberwachung in sein Programm packen kann. > Sicherheit bringt nur eine Schutzbeschaltung und ein entsprechendes > Layout. Ich wuerde bei soetwas wichtiges wie der Gaspedalstellung schon eine gewisse Sicherheitsueberwachung haben wollen. Bei Motorraedern hat man ja nicht ohne Grund immer einen Killschalter. Wundert mich eigentlich das soetwas bei Autos nicht vorgeschrieben ist. Olaf
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.