Hallo
ich suche einen gut lötbaren 16-Bit µC. Ich habe hier einen von
Freescale im LQFP 160 Gehäuse, für maschinelle Bestückung ist der
bestimmt super. Aber für den Hausgebrauch nicht so toll.
Folgende Ausstattung wäre gut:
-50 I/O's
-10-12 Bit ADC, mindestens 4
-PWM
-Uart
Gerne noch
- Quadratur Decoder für Inkrementalgeber
Ich brauche diesen für eine Digitale Regelung, insgesamt werden vier
Regler damit realisiert. Ich möchte gerne einen 16-Bit Controller nutzen
da diese schneller sind. Für andere Vorschläge bin ich aber auch offen.
Gerne würde ich den ATMega128 nehmen, ich habe aber bedenken das dieser
8-Bit µC die Geschwindigkeit erreicht. Die Abtastzeit liegt bei 1ms,
also 16000 Befehle bei 16 MHz pro Zyklus. Eigentlich müsste das doch
reichen, oder?
Ich bin gespannt auf eure Meinungen.
Danke
Christopher
Apropos Gehäuse: Ich bin mit diesen Namen nicht ganz so vertraut, aber
der LPC213x steckt laut Datasheet in einem LQFP (0,5mm) und der
ATmega128 in einem TQFP (0,5mm). Kann nicht recht erkennen, wie das eine
gut lötbar sein soll, das andere nicht.
Ohne QFP sieht es eng aus. Was die Anzahl Pins angeht, gibt es wohl ein
paar 51er die schon aus historischen Gründen auch in grösseren PLCCs
daherkommen. Aber sonst läuft es dann eher auf Header-Boards raus.
Was die benötigte Leistung angeht, kann ich das nicht bewerten. Aber
LPC21xx mit 46-47 I/O-Pins sind jedenfalls recht gut verfübar, ggf. auch
per Header-Board.
Apropos 16bit: Meiner Einschätzung nach liegen die kleineren 16bitter
(z.B. MSP430) in der gleichen Klasse wie die 8bitter. Die grösseren
(z.B. M32c) werden dann mittlerweile stark von den 32bittern bedrängt
(meist ARM7 Basis), die noch dazu eher günstiger zu kriegen sind.
Also die Abstände der Pins des Atmega128 betragen 0,8mm. Und da beide
Prozessoren hier vor mir liegen sieht das TQFP(mit 64 Pins) Gehäuse
humaner aus als das LQFP(mit 160 Pins). Aber Danke für den Tip mit den
Header Boards.
Hallo Christopher,
also ich weiß nicht ob dir das wirklich weiterhilft aber bei dem
Wörtchen "selberlöten" fiel mir sofort das folgende Projekt ein:
http://www.lochraster.org/etherrape/
hier noch ein deutsches wiki:
http://wiki.lochraster.org/wiki/Etherrape
Drauf ist ein ATmega644 (8-Bit). Wie schon gesagt, das ganze paßt nicht
wirklich zu deiner Suchanfrage, aber ich finde das Projekt ziemlich
spannend. Und mit 60 Euro für den Bausatz find ich das ganze recht
günstig. Also vielleicht hast du ja Lust das ganze mal auszuprobieren.
Wenn nicht, dann vergiß den Vorschlag einfach wieder. :-)
Liebe Grüße,
Trillian
Renesas H8/3003 und H8S/239x sind zu empfehlen.
H8 mit 0,65mm Pinabstand, 2xUART, 1xQuadraturdecoder und 5x 16Bit Timer
mit PWM, +++
H8S mit 0,5mm, 3xUART, 2xQuadraturdecoder, noch mehr Timer, +++.
Hallo
Danke für die vielen Antworten. Ihr habt mich jetzt auf eine Idee
gebracht. Bei Reichelt gibt es für 16 Euros (L,P,T)QFP-Multiadapter
Platinen die das QFP Format auf Stiftleiste bringen. Dann muss ich zwar
einmal löten, aber kann das ganze dann auswechselbar gestalten. Außerdem
wirds dank Lötstoppmaske bestimmt einfacher.
Ob nun 4-, 8-, 16-, 32-, 64-, 128-Bit CPU ist nun wirklich sowas von
schnurz.
Viel wichtiger ist ne ordentliche Projektvorbereitung, also rausfinden,
wo ist der Flaschenhals und kann dabei ne höhere Datenwortbreite
überhaupt helfen oder nicht.
Wenn man den Flaschenhals erstmal erkannt hat, ist es oftmals
verblüffend einfach, ihn drastisch zu erweitern.
Ich hab z.B. einige Applikationen, die durch simples Umstellen des
Programmablaufs von 80% auf 10% CPU-Last gesunken sind, aber für den
User spürbar schneller arbeiten.
Es gibt überall ne hohe Bandbreite an Leistung, z.B. 8-Bitter gehen von
etwa 1MIPS ... 100 MIPS.
Peter
Hallo
Ich denke eine höhere Datenwortbreite wird schon helfen. da bei einer
Digitalen Regelung immer nur zyklisch Rechnungen ausgeführt werden. Der
Flaschenhals dabei ist die Abtastzeit. 1ms ist in Mhz Zeiten nicht
sonderlich viel. Nur sollte sich herausstellen das der Controller die
Rechnungen in der besagten Zeit nicht schafft, kann man auch nichts mehr
aufweiten. Codeoptimierungen sind da nicht mehr möglich. Eine
alternative wäre dann nur die Abtastzeit zu erniedrigen(also z.B. 2 ms)
das geht aber zu Lasten der Regelung. Ich denke schon, dass gerade die
vier Grundrechenarten mit einem 16-Bit mC schneller zu erledigen sind
als mit einen 8-Bit mC. Aber ich denke auch das ein (-Bit AVR mit 16 Mhz
und somit satten 16000 Befehlen pro Millisekunde das auch bei vier
Reglern hinbekommen sollte.
Christopher
Christopher wrote:
> Ich denke eine höhere Datenwortbreite wird schon helfen.
Nur dann, wenn auch ein Großteil der CPU-Zeit 16Bittig gerechnet wird.
Bei 8Bit oder Bitschubsen, Statemachines usw. hilfts genau Null,Nix.
> Nur sollte sich herausstellen das der Controller die> Rechnungen in der besagten Zeit nicht schafft, kann man auch nichts mehr> aufweiten. Codeoptimierungen sind da nicht mehr möglich.
Da irrst Du aber !
Es gibt vielfältige Optimierungen beim Umsetzen einer mathematischen
Formel in ein Programm. Nur werden die leider oft nicht angewendet.
Z.B. Herausnehmen von konstanten Rechnungen aus der Schleife,
kleinstmöglicher Datentyp, Aufheben benötigter Ergebnisse aus vorherigen
Iterationen, Annährung mittels Tabellen, Minimierung von Divisionen usw.
Auch reicht es oft, bei großen Regelabweichungen erstmal ne grobe
Annäherung zu machen und die Feinarbeit dann im nächsten Schritt.
> Ich denke schon, dass gerade die> vier Grundrechenarten mit einem 16-Bit mC schneller zu erledigen sind> als mit einen 8-Bit mC.
Nö, das hängt nur davon ab, ob die Rechenarten in HW implementiert sind
oder in SW gemacht werden müssen.
Z.B. hat der DS80C400 (8Bit) ne 32/16Bit Division und rechnet daher
schneller als viele 16Bitter ohne MUL/DIV-Einheit.
Peter