Der Atmel-Süchtige schrieb:> ...und eine Einschätzung von dritter Seite:> http://www.elektroniknet.de/halbleiter/mikrocontroller/artikel/98530/
Das ist keine dritte Seite. Die leben von der Werbung, die Firmen in
Auftrag geben.
> Tolle Teile!
Dafür sehe ich keine Belege
> Der Atmel-Süchtige
Begebe dich sofort in Behandlung. Heilung ist möglich (siehe ST).
elektronik.net: "Über die Daten der MCU hinsichtlich Energiesparmodi und
Leistungsaufnahme gibt es in der ersten veröffentlichten
Datenblattversion leider keine Angaben."
Kein Kommentar.
was für ein Schwachsinn in dem Bericht steht, soweit ich mich
zurückerinnern kann, ist der Xmega bereits vor EnergyMicro Gründung
entwickelt worden und da gab es schon das bekannte Event System...
ich finde das Sercom Design interessant, man kann nun wirklich eine
schöne Plattform aufbauen. mir gefällt auch das BIST Modul, der Chip
passt ganz gut zwischen Xmega und CM3, wenn man gute analoge Peripherie
will mit gain stage kann man jetzt zwischen Xmega und CM0+ von Atmel
wehln
Mike schrieb:> ... kann man jetzt zwischen Xmega und CM0+ von Atmel> wehln
Sieht eher nach dem Sargnagel für die 32-bit AVRs aus :-(
Mal gespannt wie lange sich die UC3s noch in der Roadmap von Amtel
halten.
Heiko Jakob schrieb:> Sieht eher nach dem Sargnagel für die 32-bit AVRs aus :-(> Mal gespannt wie lange sich die UC3s noch in der Roadmap von Amtel> halten.
glaub nicht dass die so schnell von der Bildfläche verschwinden, für die
32bit AVR kommt eher ein CortexM4 entgegen (DSP) und Atmel hat ja schon
seit längerem die low power SAM4L Serie im Angebot, trotzdem hat sowohl
Samsung als auch Microsoft den UC3L den Vorzug gegeben - hätte der 32Bit
AVR keinen Markt dann wäre er also schon lange verschwunden denke ich.
UC3L im Microsoft Surface:
http://www.ifixit.com/Teardown/Microsoft+Surface+Teardown/11275/2
UC3L im Samsung Galaxy Tab:
http://www.highbeam.com/doc/1G1-310928378.html
Wenn der 32Bit AVR in einer Foundry produziert wird, dann gibt es fast
gar keinen Grund den abzukündigen - man muß ja keine Technologie
vorrätig halten sondern bestellt seine Wafer einfach nach wenn jemand
danach fragt.
Theoretisch könnte so ein Bauteil jahrelang weiterangeboten werden
selbst wenn dafür in einer eigenen Fab kein Platz mehr ist.
Was aber gut sein kann dass Atmel keine neuen 32Bit AVR mehr designed,
aber das heißt ja nicht dass der Baustein nicht mehr vorhanden ist. Noch
ein wenig dann wird es auf CM3/CM4 auch keine weiterentwicklungen mehr
geben, wird aber wohl eine weile weiterproduziert, kommt sicher
irgendwann ein neuer Core und dann geht das ganze von vorn lso
Atmel musste auf jeden Fall was die Richtung tun, wer will schon ATMEGA
Krücken haben, wenn zum selben Preis Cortexe zu haben sind. Mich wundert
es sowieso, wie manche bei Neuentwicklungen die Technik auf dem Stand
vor >10 Jahren einsetzt, nur weil man es schon immer gemacht hat? Aber
jetzt zum Atmel Cortex Chip selbst. Ich habe mir die Teile angesehen und
sehe keinen Grund die neuen Chips von Atmel den bereits länger
vorhandenen von ST, NXP etc. vorzuziehen.
♪Geist schrieb:> wer will schon ATMEGA Krücken haben, wenn zum selben Preis Cortexe zu> haben sind.
Beispielsweise Leute, die Betrieb bei 5 V brauchen (soll wohl in
der Fahrzeugtechnik noch sehr verbreitet sein). Es gibt meines
Wissens bislang keinen einzigen ARM, der das kann.
Wenn du nur 'ne Fensterscheibe runterleiern willst, ist dir das als
Anwender völlig wurscht, ob der Controller nun 8 Bit oder 32 auf
einmal verarbeitet. Schneller wird das Fenster davon sowieso nicht. :-)
Christian Kreuzer schrieb:> Schade, wieder ohne CAN, da bleibt wohl doch nur NXP.>> Christian_RX7
Oder ST
Jörg Wunsch schrieb:> Beispielsweise Leute, die Betrieb bei 5 V brauchen (soll wohl in> der Fahrzeugtechnik noch sehr verbreitet sein). Es gibt meines> Wissens bislang keinen einzigen ARM, der das kann.>> Wenn du nur 'ne Fensterscheibe runterleiern willst, ist dir das als> Anwender völlig wurscht, ob der Controller nun 8 Bit oder 32 auf> einmal verarbeitet. Schneller wird das Fenster davon sowieso nicht. :-)
In der Fahrzeugindustrie setzt man sowieso (wie in Luftfahrt +
Raumfahrt) auf alte, wenn nicht veraltete Mikrocontroller. Meist
Freescale oder Motorola HCxxxxx. Hat den einfachen Sinn, dass die sehr
bekannt sind und vor allem robust. Die Teile sind schon so lange auf dem
Markt, dass man jeden einzelnen Fehler auswendig kennt und die
etablierten Teile sind zuverlässig wie keine anderen.
Aber das mag dem Hobbybastler so und so egal sein, kaum einer weiß ja
von den Errata geschweige denn liest sie. Außerdem interessiert es
niemanden wenn mal die blinkenden LEDs beim Hobbyprojekt ausgehen oder
der µC sich verhaspelt. Wenn jedes halbe Jahr ein neuer Mikrocontroller
raus kommt dann wird der einzelne nie so gut "erforscht" werden wie es
besagte Klassiker sind.
Jörg Wunsch schrieb:> Beispielsweise Leute, die Betrieb bei 5 V brauchen (soll wohl in> der Fahrzeugtechnik noch sehr verbreitet sein). Es gibt meines> Wissens bislang keinen einzigen ARM, der das kann.
Fujitsu und Toshiba müssten da etwas haben.
STM hat an einuigen pins 5V toleranz
LPC111x auch
Nuvoton auch
TI auch ...
gibt also einige die 5V abkönnen zumindest an den GPIOs
5V treiben war noch nie die stärke eines µC und meist nur eine
krückenlösung
hhhhh schrieb:> STM hat an einuigen pins 5V toleranz> LPC111x auch> Nuvoton auch> TI auch ...
Ist aber was anderes als Betrieb mit 5 V.
> 5V treiben war noch nie die stärke eines µC und meist nur eine> krückenlösung
So'n Quatsch. Nur, weil da mal krückige 8051-Lösungen rumliefen,
die nur einen Pullup-Widerstand nach 5 V benutzt haben, heißt das
nicht, dass dies die einzige mögliche Lösung wäre. Sämtliche
einfachen PICs sowie ATtiny/ATmega haben damit überhaupt kein
Problem, und seit mittlerweile fast einem Jahrzehnt haben sie
dafür sogar symmetrisch belastbare Ausgangsstufen (d. h. die
p-Transistoren haben vergleichbare Stromergiebigkeit wie die
n-Transistoren).
Jörg Wunsch schrieb:>> 5V treiben war noch nie die stärke eines µC und meist nur eine>> krückenlösung>> So'n Quatsch. Nur, weil da mal krückige 8051-Lösungen rumliefen,> die nur einen Pullup-Widerstand nach 5 V benutzt haben, heißt das> nicht, dass dies die einzige mögliche Lösung wäre. Sämtliche> einfachen PICs sowie ATtiny/ATmega haben damit überhaupt kein> Problem, und seit mittlerweile fast einem Jahrzehnt haben sie> dafür sogar symmetrisch belastbare Ausgangsstufen (d. h. die> p-Transistoren haben vergleichbare Stromergiebigkeit wie die> n-Transistoren).
Aber 5 Volt Betriebspannung für den Kern bedeutet meist grössere
Strukturen.
Daneben hat man auch häufig einen Mischbetrieb 3.3 und 5 Volt. Um 3.3
Volt Logik sicher am 5 Volt AVR zu betreiben, braucht man
Pegelumsetzter. Und betreibt man den AVR mit 3.3 Volt, verliert man
Geschwindigkeit und hat keine 5-Volt Toleranz mehr.
Atmel scheint mir überhaupt mit der 5 Volt Toleranz auf Kriegsfuss zu
stehen, siehe Arduino Due.
Uwe Bonnes schrieb:> Aber 5 Volt Betriebspannung für den Kern bedeutet meist grössere> Strukturen.
Sagt ja keiner, dass man den Kern damit betreiben muss. Der kann
ja auch über einen Spannungsregler angebunden werden, und in den
Padzellen macht man dann die Pegelwandlung.
Aber es ging ja nur um die Frage, warum denn überhaupt noch jemand
klassische AVRs (oder vergleichbare Controller) einsetzt, wenn doch
der Preisunterschied zu den 32-Bittern minimal ist.
Einen typischen Fall sehe ich beispielsweise darin, dass man einen
Controller direkt von einer LiPo-Zelle betreiben will: das geht mit
einem nur 3,3-V-fähigen Controller eben nicht. Wenn man dann einen
externen Spannungsregler hat, macht man wieder Klimmzüge beim
Einschalten, damit man den Regler während der Schlafphasen im
standby halten kann (sodass die Zelle nicht nennenswert entladen
wird) und trotzdem beim Eintreffen eines äußeren Ereignisses
aufwachen. Hat man einen Controller für 5 V, dann klemmt man
das Teil direkt an die Zelle: der gesamte gültige Spannungsbereich
einer solchen Zelle (3 … 4,2 V) ist für den Controller eine
zulässige Spannung. Der Controller kann beim standby ggf. noch
externe Peripherie herunterfahren und legt sich dann selbst schlafen,
wobei er < 1 µA braucht und damit im Bereich der Selbstentladung
liegt.
Geschwindigkeit oder Wortbreiten sind für derartige Anwendungen
völlig nachrangig. Oft genug laufen die zufriedenstellend schon mit
einem Takt von 1 MHz. Nicht jede Applikation muss erst ein Windows
booten, bevor sie arbeiten kann. :-))
> Beispielsweise Leute, die Betrieb bei 5 V brauchen (soll wohl in> der Fahrzeugtechnik noch sehr verbreitet sein). Es gibt meines> Wissens bislang keinen einzigen ARM, der das kann.
XMC1100 von Infineon wäre so ein Teil. CM0 mit 5V
>> Beispielsweise Leute, die Betrieb bei 5 V brauchen (soll wohl in>> der Fahrzeugtechnik noch sehr verbreitet sein). Es gibt meines>> Wissens bislang keinen einzigen ARM, der das kann.>Fujitsu und Toshiba müssten da etwas haben.
und Nuvoton
Marc N. schrieb:>> In der Fahrzeugindustrie setzt man sowieso (wie in Luftfahrt +> Raumfahrt) auf alte, wenn nicht veraltete Mikrocontroller. Meist> Freescale oder Motorola HCxxxxx.
Für die Luft+Raumfahrt ist die Aussage richtig, aber die Begründung
unvollständig. Neben Zuverlässigkeit geht es hauptsächlich um
Analysierbarkeit und Vorhersagbarkeit.
Marc N. schrieb:> In der Fahrzeugindustrie setzt man sowieso (wie in Luftfahrt +> Raumfahrt) auf alte, wenn nicht veraltete Mikrocontroller. Meist> Freescale oder Motorola HCxxxxx.
Das ist so pauschal schlicht Unfug. Einen HCirgendwas hatte ich noch nie
in den Fingern (außer aus historischem Interesse), dafür reichlich
Tricores. Renesas fertigt inzwischen Automotive-µCs in 40nm, die anderen
sind bei 60nm unterwegs.
Richtig ist, dass die Halbleiter-Prozesse der automotive-tauglichen ICs
immer ein bis zwei Strukturbreiten hinter denen der Consumerware
hinterherhinken. Die Produktlebenszyklen sind aber auch etwas länger
als bei einem Tablet oder Handy.
In Luft- und Raumfahrt mag es anders aussehen, da kenne ich mich nicht
aus.
Max
Jörg Wunsch schrieb:> Beispielsweise Leute, die Betrieb bei 5 V brauchen (soll wohl in> der Fahrzeugtechnik noch sehr verbreitet sein). Es gibt meines> Wissens bislang keinen einzigen ARM, der das kann.
Die NuMicro CM0 von Nuvotron können 5V.
So arg schwer ist es eigentlich nicht. Der Core von ARM Controllern
arbeitet sowieso oft <2V, runtergeregelt, mit Spannungstrennung zwischen
Core und IO.
A. K. schrieb:> Die NuMicro CM0 von Nuvotron können 5V.
Wurde ja inzwischen schon genannt.
> So arg schwer ist es eigentlich nicht. Der Core von ARM Controllern> arbeitet sowieso oft <2V, runtergeregelt, mit Spannungstrennung zwischen> Core und IO.
Ist schon klar, man muss es „nur“ machen …
Zwei Dinge sind in den letzten Jahren doch ganz klar geworden:
- 8-Bitter sterben aus. Sie werden vom Cortex M0 verdrängt.
- Die Cortex-M-Serie ist im Moment bei kleinen Controllern das Maß der
Dinge. Inzwischen baut fast jeder uC-Hersteller ARM-Kerne in ihre neuen
Bausteine ein.
Dem konnte sich auch Atmel nicht entziehen.
Die Hersteller müssen sich jetzt eben umstellen. Früher war der
Prozessorkern und die Toolchain noch Teil ihres Hauptgeschäftes. Jetzt
müssen sie sich anhand der Peripherie und Support differenzieren.
>- 8-Bitter sterben aus
wetten dass nicht?
Frag mal Microship, die werden alles dran setzen auch weiterhin ihre
(vom Grunde her seit Anf. der 70er Jahre(!!!) bestehende 8-Biter zu
vermarkten.
MCUA schrieb:> Frag mal Microship, die werden alles dran setzen auch weiterhin ihre> (vom Grunde her seit Anf. der 70er Jahre(!!!) bestehende 8-Biter zu> vermarkten.
Nicht wirklich. Wenn Microchip das tut, werden sie vom Markt
verschwinden. Es gibt keinen vernünftigen Grund mehr, weiterhin auf
8-Bitter zu setzen.
8-Bit schrieb:> - 8-Bitter sterben aus. Sie werden vom Cortex M0 verdrängt.
Kaum. Es wird beide nebenher geben. Möglicherweise werden aber einige
eher exotische Serien eingestampft. Das 51er bald aussterben kann man
wohl ausschliessen.
> Die Hersteller müssen sich jetzt eben umstellen. Früher war der> Prozessorkern und die Toolchain noch Teil ihres Hauptgeschäftes. Jetzt> müssen sie sich anhand der Peripherie und Support differenzieren.
Je leistungsfähiger Cores werden, desto grösser ist das Risiko für den
Hersteller. Denn ernsthafte Bugs können dann existenzbedrohend sein, und
deren Wahrscheinlichkeit wächst mit der Komplexität. Als zuverlässig
bekannte Cores einzukaufen ist weniger riskant.
Weil zudem Toolchains und ihr Support auch nicht kostenlos vom Himmel
fallen, ist stets die Frage, ob Ausgaben für eine eigene Architektur
teurer oder billiger als Lizenzkosten sind. Software ist nicht unbedingt
das Kerngeschäft eines Halbleiterherstellers.
8-Bit schrieb:> Es gibt keinen vernünftigen Grund mehr, weiterhin auf> 8-Bitter zu setzen.
Ich bin anderer Meinung. Als ich vor Jahren mein Aha-Erlebnis bit dem
ARM hatte, sagte ich mir: "Nie wieder 8-Bitter!"
Tatsache ist aber, dass ich bei Neuentwicklungen ganz gerne mal wieder
einen 8-Bitter einsetze. Nicht jetzt unbedingt wegen dem Preis; aber sie
sind schlicht einfacher in der Handhabung (Software).
A. K. schrieb:> Kaum. Es wird beide nebenher geben. Möglicherweise werden aber einige> eher exotische Serien eingestampft. Das 51er bald aussterben kann man> wohl ausschliessen.
Ganz aussterben natürlich nicht, aber sie werden nur noch für exotische
Anwendungen überhaupt interessant.
A. K. schrieb:> Je leistungsfähiger Cores werden, desto grösser ist das Risiko für den> Hersteller. Denn ernsthafte Bugs können dann existenzbedrohend sein, und> deren Wahrscheinlichkeit wächst mit der Komplexität. Als zuverlässig> bekannte Cores einzukaufen ist weniger riskant.>> Weil zudem Toolchains und ihr Support auch nicht kostenlos vom Himmel> fallen, ist stets die Frage, ob Ausgaben für eine eigene Architektur> teurer oder billiger als Lizenzkosten sind. Software ist nicht unbedingt> das Kerngeschäft eines Halbleiterherstellers.
Genau das sind die Gründe, wieso man auf Standard-Cores setzt und eigene
Architekturen immer mehr aussterben werden.
Mehmet Kendi schrieb:> Tatsache ist aber, dass ich bei Neuentwicklungen ganz gerne mal wieder> einen 8-Bitter einsetze. Nicht jetzt unbedingt wegen dem Preis; aber sie> sind schlicht einfacher in der Handhabung (Software).
Preislich liegen Cortex M0 schon lange gleich auf. Und auf der
Toolchain-Seite wird sich noch einiges tun. Wobei ein Crossworks jetzt
schon mindestens genauso komfortabel ist wie ein AVR-Studio.
gibt es die M0 von Atmel denn schon? wollte mir aus Neugier mal
anschauen was die können. Aber die Datenblätter sind ein wenig
merkwürdig. Es gibt nicht mal einen Abschnitt wo die maximal zulässigen
Ströme drin stehen. Oder wie man den Quarz anzuschießen hat. Oder suche
ich nur falsch?
http://www.atmel.com/devices/SAM_D20E14.aspx?tab=documents
Auch vermisse ich die Infos welche Hilfsmittel man zum "brennen"
braucht.
>Ganz aussterben natürlich nicht, aber sie werden nur noch für exotische>Anwendungen überhaupt interessant.
Nö. exotische Anwendungen bedeuten sehr geringe Stückzahlen.
Bei den (verfügbaren) 8-Bitern ist das Gegenteil der Fall.
Zudem sind 8-Biter in einigen Fällen leistungsfähiger und besser als
32Biter.
(Es ist auch fraglich, ab man eine CPU als "32Biter"bezeichnen soll,
bloss weil da ein paar 32-Bit-Register drin sind.)
>Genau das sind die Gründe, wieso man auf Standard-Cores setzt und eigene>Architekturen immer mehr aussterben werden.
Würde ja heissen, dass es in Zukunft nur noch Cores eines -Einzigen-
Herstellers gibt. Na dann gute Nacht.
MCUA schrieb:> Würde ja heissen, dass es in Zukunft nur noch Cores eines -Einzigen-> Herstellers gibt. Na dann gute Nacht.
Wenn du die Leistungstreppe bis zum Ende erklimmst, dann landest du in
der Masse bei einer einzigen ISA mit knapp über 2 Herstellern (mit
langfristiger Option auf exakt einen).
Wobei es in solchen Fällen eben mehr als einen Core-Designer geben kann.
So gibts die oberen ARMs nicht nur von ARM. Qualcomms Krait hat zwar die
ARM ISA, ist aber eine eigenständige Implementierung davon.
Aber irgendwie glaub ich nicht, dass dich das beruhigt. ;-)
>Wenn du die Leistungstreppe bis zum Ende erklimmst, dann landest du in>der Masse bei einer einzigen ISA mit knapp über 2 Herstellern, mit>langfristiger Option auf exakt einen.
wäre X86(?) , Alpha(?), PPC(?), Grossrechner mit 1 Mio Kernen (?).
Also dann muss 'jetzt' Microship den X86 nehmen und den in 8Piner
einbauen???
Es ist doch nicht das absolute Ende der Leistungstreppe massgebend (das
zudem extrem schwer zu definieren ist), sondern schlichtweg das, was man
für einen bestimmten Preis bekommt.
Ich wollte damit ausdrücken, dass bei vergleichbarer Funktion eine
Reduktion von Vielfalt eine völlig natürliche Folge einer langfristigen
Technikentwicklung ist. Einerseits unübersehbar bei
PC/Server-Prozessoren, da ist das schon weit gediehen. Andererseits
zeigt sich das aber eben auch bei Controllern.
Jörg Wunsch schrieb:> ♪Geist schrieb:>> wer will schon ATMEGA Krücken haben, wenn zum selben Preis Cortexe zu>> haben sind.>> Beispielsweise Leute, die Betrieb bei 5 V brauchen (soll wohl in> der Fahrzeugtechnik noch sehr verbreitet sein). Es gibt meines> Wissens bislang keinen einzigen ARM, der das kann.>
Cypress PSoC5
Jörg Wunsch schrieb:> Beispielsweise Leute, die Betrieb bei 5 V brauchen
Wenn hier schon Werbung für Atmel und Co gemacht wird, kann ich ja mal
Toshiba empfehlen. Cortex-M3 basierende, echte 5V-Devices mit
integriertem Spannungsregler für die interne Logik, die auf 1.5V läuft.
Also draußen echte 5V-I/Os, intern stromsparende 1.5V für den Core.
Typen: M380 und M370 (für Motorcontrol).
http://www.toshiba-components.com/microcontroller/M37Sigma.html
Industrieanwendungen setzten zum Teil immernoch auf 5V. Damit ist auch
die Anbindung an die Leistungselektronik ohne Level-Shifter leichter.
Für Automotive: M350
http://www.toshiba-components.com/automotive/autocortexm3.html
> gibt es die M0 von Atmel denn schon?
samples ja, production ende 2013
>wollte mir aus Neugier mal anschauen was die können. Aber die Datenblätter >sind
ein wenig merkwürdig. Es gibt nicht mal einen Abschnitt wo die maximal >zulässigen
Ströme drin stehen. Oder wie man den Quarz anzuschießen hat. > >Oder suche ich nur
falsch?
nein, das datenblatt ist aj auch noch Preliminary.
>Auch vermisse ich die Infos welche Hilfsmittel man zum "brennen">braucht.
SAM D20 Xplained Pro Evaluation Kit hat debugger integriert (j-link)
Atmel Studio 6.1 hat Unterstützung eingebaut.
gruss
gerhard
MCUA schrieb:> Nö. exotische Anwendungen bedeuten sehr geringe Stückzahlen.> Bei den (verfügbaren) 8-Bitern ist das Gegenteil der Fall.> Zudem sind 8-Biter in einigen Fällen leistungsfähiger und besser als> 32Biter.
Mit exotisch meinte ich Dinge wie RF, wo man aufgrund des großen
analogen Anteils andere Strukturbreiten fährt und deshalb die
Siliziumfläche des Cores wieder eine ganz andere Rolle spielt. Riesige
Stückzahlen gibt es dort aber auch. Für Standardanwendungen sind Cortex
M0 im Moment fast unschlagbar, und das sowohl bei Einzelstücken als auch
Millionenstückzahlen.
8-Bit-uC können wenn überhaupt noch mit größerer oder speziellerer
Peripherie punkten, aber das liegt einfach daran, dass die M0 noch sehr
neu sind. Man sieht ja auch schon, dass sich da sehr viel tut.
MCUA schrieb:> Würde ja heissen, dass es in Zukunft nur noch Cores eines -Einzigen-> Herstellers gibt. Na dann gute Nacht.
Wie schon erwähnt wurde ist das genau die Situation, die man auf dem PC-
und Servermarkt hat. Dort sind vor ca. 5-8 Jahren die letzten
nicht-x86-Massenprodukte ausgestorben - heute gibt es nur noch Exoten.
Und selbst die Konsolenwelt wird gerade aufgeräumt und wird bald von x86
dominiert.
Auch wenn sich eine Architektur durchsetzt, heißt das noch lange nicht,
dass es auch nur einen Hersteller gibt. Das sieht man ja auch in der
PC-Welt. Und im Embedded-Markt ist es ja so, dass es mehrere Hersteller
gibt. Lediglich der Kern wird von einer Firma bereit gestellt, und es
gibt ja auch Ansätze von anderen Firmen, kompatible Cores zu entwickeln
(Qualcomm wurde ja schon genannt).
8-Bit schrieb:> deshalb die Siliziumfläche des Cores wieder eine ganz andere Rolle> spielt.
Ich glaube, die Siliziumfläche des Cores spielt auch bei normalen
Controllern nicht die große Rolle. Es überwiegt der Flächenverbrauch
der Peripherie und des Speichers (Flash + SRAM) deutlich das
bisschen Core. Damit ist es aber nun auch egal, ob der Core ein
AVR oder ein CM0 ist.
Besserwisser schrieb:> Wenn hier schon Werbung für Atmel und Co gemacht wird, kann ich ja mal> Toshiba empfehlen. Cortex-M3 basierende, echte 5V-Devices mit> integriertem Spannungsregler für die interne Logik, die auf 1.5V läuft.
Gibt es die im DIP-Gehäuse und kannst Du mir die Bestellnummer von R*
nennen? Oder soll ich mit RX210 kommen?
Ich habe mir erst einmal wieder ein paar hundert ATmega88 bestellt.
Deren Möglichkeiten entsprechen meinen Fähigkeiten :-)
Jörg Wunsch schrieb:> Ich glaube, die Siliziumfläche des Cores spielt auch bei normalen> Controllern nicht die große Rolle. Es überwiegt der Flächenverbrauch> der Peripherie und des Speichers (Flash + SRAM) deutlich das> bisschen Core. Damit ist es aber nun auch egal, ob der Core ein> AVR oder ein CM0 ist.
Genau das meinte ich. Bei RF-Prozessen sieht das aber vielleicht etwas
anders aus, weil man gröbere Strukturen hat. Die Chips haben eben viel
weniger Flash und RAM und dafür mehr analoge Schaltung drauf.
Vitamin-B schrieb:> Die Chips haben eben viel weniger Flash und RAM und dafür mehr analoge> Schaltung drauf.
Naja, der ATmega256RFR2 hat mit den größten RAM, den AVRs überhaupt
so haben (und den zweitgrößten Flash). ;-) (Beides übrigens genauso
viel wie der größte SAMD20.)
Ja, es wird wohl auf die tatsächlich verwendete Technologie ankommen.
Andere Hersteller setzen bei solchen Anwendungen immer noch stark auf
den 8051, aber auch das ändert sich natürlich. Wenn das so funktioniert
gibt es jedenfalls noch einen Grund weniger für 8-Bit-uC.
8-Bit schrieb:> Andere Hersteller setzen bei solchen Anwendungen immer noch stark auf> den 8051, aber auch das ändert sich natürlich. Wenn das so funktioniert> gibt es jedenfalls noch einen Grund weniger für 8-Bit-uC.
Nur teilweise. Für einen neuen Core/Chip müsste der Hersteller in vielen
Bereichen auch qualifizierte Tools bereitstellen. Welche, von den hier
diskutierten Teilen, haben den Entwicklungstools mit Qualifizierung für
FDA,FAA,MIL etc ? (Gerne auch Drittanbieter)
Grüße
Andreas
P.S: Man glaubt ja kaum wo überall C51/52 cores drin sind.
Teilweise ahnt man garnicht, dass da überhaupt irgendwas digitales auch
dem Chip ist.
A.
Andreas H. schrieb:> Welche, von den hier> diskutierten Teilen, haben den Entwicklungstools mit Qualifizierung für> FDA,FAA,MIL etc ? (Gerne auch Drittanbieter)
Gutes Beispiel für eine exotische Anwendung (auch wenn da womöglich auch
Millionenstückzahlen dahinterstecken können...)
Besserwisser schrieb:> Also draußen echte 5V-I/Os, intern stromsparende 1.5V für den Core.> Typen: M380 und M370 (für Motorcontrol).
Aber die Eingänge sind im Gegenzug auch nicht 3.3V kompatibel wie bei
AVR...
Beim M374 war ich mal auf nem Workshop bei GLYN. Die Anwendung um einen
Motor zu steuern war so am Poller (RAM mäßig) das byteweise am Stack der
FreeRTOS Tasks gedreht werden musste damit es überhaupt lief.
>Auch wenn sich eine Architektur durchsetzt, heißt das noch lange nicht,>dass es auch nur einen Hersteller gibt.
Doch, der eigentliche CPU-Hersteller ist dann nur Einer, nicht Mehrere.
Und nur Einer am Markt (egal welcher) ist immer schlecht!
>Das sieht man ja auch in der PC-Welt.
Ist total was anderes wie Embedd.Bereich, weil das an PC-Software (X86)
festgemacht.
Im Embedd.Bereich ist das ja nirgentwo vorgeschrieben.
Und mit Sicherheit wird es auch in 20 Jahren noch einige verschiedene
CPU-Archit f. Embedd geben.
Jörg Wunsch schrieb:> Geschwindigkeit oder Wortbreiten sind für derartige Anwendungen> völlig nachrangig. Oft genug laufen die zufriedenstellend schon mit> einem Takt von 1 MHz. Nicht jede Applikation muss erst ein Windows> booten, bevor sie arbeiten kann. :-))
Aha, es kommt bei solchen Anwendungen aber auf die Summe von Suspend und
Run an. Da kann die CPU noch so wenig im Suspend verbrauchen und dann im
Run alles wieder verbraten ;-).
MCUA schrieb:> Doch, der eigentliche CPU-Hersteller ist dann nur Einer, nicht Mehrere.> Und nur Einer am Markt (egal welcher) ist immer schlecht!
Nein! Siehe Krait, siehe OpenCores. Es gibt Möglichkeiten, alternative
Implementationen einer Architektur zu entwickeln.
MCUA schrieb:> Im Embedd.Bereich ist das ja nirgentwo vorgeschrieben.> Und mit Sicherheit wird es auch in 20 Jahren noch einige verschiedene> CPU-Archit f. Embedd geben.
Es gibt auch im PC- und Serverbereich noch verschiedene Architekturen.
Die spielen keine Rolle mehr. Auch im Embedded-Bereich kommt das Thema
Standardsoftware immer stärker. Es fängt bei der Toolchain an und hört
bei Echtzeitbetriebssystemen und Standardbibliotheken auf.
>Auf dem SAM D20 Explained board befinden sich erstaunlich wenige>Bauteile? Ist der Debugger auf der Rückseite oder in der MCU selbst>integriert?
auf dem board ist der sog, Atmel Embedded Debugger bestückt, welcher
eine SWD Schnittselle zum debuggen zur verfügugn stellt. diese kann auch
für externe boards verwendet werden. am besten mal das user guide
runterladen:
http://www.atmel.com/Images/Atmel-42102-SAMD20-Xplained-Pro_User-Guide.pdf
gruss
gerhard
Karlo schrieb:> Aha, es kommt bei solchen Anwendungen aber auf die Summe von Suspend und> Run an. Da kann die CPU noch so wenig im Suspend verbrauchen und dann im> Run alles wieder verbraten ;-).
Da der Stromverbrauch im aktiven Betrieb (solange man weit genug
außerhalb des Bereichs der Leckströme bleibt) relativ linear mit
der Taktfrequenz skaliert, ist es im Allgemeinen ziemlich egal,
ob man 100 µs lang mit 20 MHz oder 2 ms lang mit 1 MHz arbeitet.
Kritischer ist in dieser Hinsicht der Einfluss irgendwelcher
„Totzeiten“, bspw. falls erst ein Quarz anschwingen muss, bevor die
CPU richtig losarbeiten kann. In dieser Zeit fließt ein Strom fast
wie im aktiven Betrieb, ohne dass die CPU irgendwas sinnvolles tun
würde.
Nö, das stimmt so nicht.
Nehmen wir den EFM32TG (oder "Tiny Gecko"):
Der verbraucht 210µA/MHz bei 1MHz und 150µA/Mhz bei 32MHz mit einem
Cortex M3, der 1,25DMIPS/MHz hat.
Das heißt der Energieverbrauch bei gleicher Spannung ist 1.4 höher bei
1MHz verglichen zu 32MHz.
Der SD20 soll auch 150µA/MHz können - für welche Frequenzen dies gilt,
habe ich noch nicht finden können.
Allerdings mit einem Cortex M0+, d.h. mit 0.93 DMIPS/MHz.
Damit folgt dass diese MCU ca. 1.34x mehr Energie verbraucht als die mit
Cortex M3.
D.h. für Anwendugen mit möglichst niedriegem Energieverbrauch lohnt sich
der genaue Blick auf die Effizient der CPU und auch die µA/MHz-Werte
über die jeweiligen Taktfrequenzen.
Dazu kommen natürlich die genannten Unterschiede bzgl. Wake-up-Zeiten
(bei EFM32TG 2µs, beim SAM D20 habe ich noch keine Werte gefunden, und
vor allem wieviel Strom im Standby verbraucht wird.
Beim Tiny Gecko kann ich Funktionen mit 1-2µA erledigen (Display
ansteuern, UART, Captouch, etc.).
Gruß Cpt Haddock
Cpt Haddock schrieb:> Der verbraucht 210µA/MHz bei 1MHz und 150µA/Mhz bei 32MHz
Das ist das, was ich mit „relativ linear“ meinte; es ist eben nicht
exakt linear. (Offenbar auch bei den ARMs mit ihren kleinen
Strukturen stärker nichtlinear als bei den AVRs mit ihren etwas
größeren Strukturbreiten.)
Natürlich hängt es immer von der Applikation ab, aber für Applikationen,
die viel schlafen, ist der Punkt, an dem der Energieverbrauch während
der aktiven Phase nicht mehr dominiert, ganz schnell erreicht. Dann
muss man alles Augenmerk auf die Schlafphasen setzen, und zwar auf
alles, was da verbaut ist, nicht nur den Prozessor. Es wäre nicht
das erste Mal, dass da ein paar Mikroampere durch den Flussmitteldreck
abfließen …
Jörg Wunsch schrieb:> Das ist das, was ich mit „relativ linear“ meinte; es ist eben nicht> exakt linear. (Offenbar auch bei den ARMs mit ihren kleinen> Strukturen stärker nichtlinear als bei den AVRs mit ihren etwas> größeren Strukturbreiten.)
Logisch, bei kleinen Strukturen nimmt die statische Stromaufnahme extrem
zu. Ein großer FPGA im 28nm-Prozess kann schon einmal auf ein halbes
Watt rein statische Leistungsaufnahme kommen.
>Es gibt Möglichkeiten, alternative>Implementationen einer Architektur zu entwickeln.
Das ists aber keine andere Architektur, sondern fast das Gleiche in
Grün.
>Es gibt auch im PC- und Serverbereich noch verschiedene Architekturen.
PC ist was andere als Server. Bei PC gibts fakt nur X86.
>..und hört bei Echtzeitbetriebssystemen und Standardbibliotheken auf.
Das benötigt gerade keine bestimmte CPU.
Aber alles was Standard-OSs oder -Bibl. sind, hat auch Einschränkungen
(ua zu aufgeblähter Code, zu langsam, wegen Std auch eingeschränkt (da
man auf spez uC-Features nicht eingehen kann)) gegenüber auf den konkr.
Chip optimierte Software.
Und genau aus dem Grund wird noch lange nicht jede Appl mit Std-Softw
gemacht. (Obwohl manche dass schon seit 20 Jahren proklamieren)
>>..und hört bei Echtzeitbetriebssystemen und Standardbibliotheken auf.
Das benötigt gerade keine bestimmte CPU.
Also wenn es nicht gerade um Hochsprachenfeindliche Krüppel-ISAs wie
8051 und PIC geht, ist die ISA eines MCUs eigentlich auch ziemlich
belanglos. Die Probleme bei der Portierung zwischen den Architekturen
entstehen durch die Peripherie.
Gerade wenn hier mehr Flexibilität erreicht werden soll, helfen
allerdings etwas mehr Rechenpower und 32Bit. Daher ist ein Schritt von 8
auf 32Bit absehbar. Es muss aber keine ARM Monokultur werden. Von den
Japanern gibt es noch einige interessante Alternativen. Auch MIPS ist
noch nicht tot, wird aber wohl nicht im Low-End MCU bereich zu finden
sein.
Nur schade, dass Atmel Ihre Produktlinien so breitwillig der Erosion
überlassen...
>>ist die ISA eines MCUs eigentlich auch ziemlich belanglos.>VonWegen. Die entscheidet über die Leistung (der CPU).
Zur Info: ISA=Instruction Set Architecture.
Wie stark unterscheidet sich denn die Performance zwischen AVR und ARM
bei Berechnung von 8 Bit Aufgaben? Oder ARM vs. MIPS? Der Unterschied,
den die ISA ausmacht ist ab einem gewissen Level relativ marginal. (Wie
gesagt, Antikes mal außen vor gelassen)
MCUA schrieb:> Das ists aber keine andere Architektur, sondern fast das Gleiche in> Grün.
Wie eben im PC-Markt und x86.
Es steht natürlich jedem frei, eigene Architekturen auf den Markt zu
bringen und damit erfolgreich zu sein. Nur im Moment sieht es eben so
aus, als würde sich ARM durchsetzen. Die 8-Bit-Architekturen werden
jedenfalls nicht in der heutigen Breite überleben und eine wirkliche
Konkurrenz für die Cortex M gibt es auch noch nicht.
MCUA schrieb:> Aber alles was Standard-OSs oder -Bibl. sind, hat auch Einschränkungen> (ua zu aufgeblähter Code, zu langsam, wegen Std auch eingeschränkt (da> man auf spez uC-Features nicht eingehen kann)) gegenüber auf den konkr.> Chip optimierte Software.
Vorurteile, die heutzutage oftmals gar nicht mehr zutreffen. Heutzutage
setzt mal lieber auf einen stärkeren Core (eben z.B. einem Cortex M) und
verwendet Standardbibliotheken. Time-To-Market wird heutzutage vielmals
höher bewertet als Kostenoptimierung auf den letzten Cent. Wobei die
Cortex-M ja sogar Kostenvorteile bieten.
MCUA schrieb:> Und genau aus dem Grund wird noch lange nicht jede Appl mit Std-Softw> gemacht. (Obwohl manche dass schon seit 20 Jahren proklamieren)
Meine Erfahrung ist eher, dass das mehr am Ego der Programmierer liegt
als an "harten" Gründen.
8-Bit schrieb:> Vorurteile, die heutzutage oftmals gar nicht mehr zutreffen. Heutzutage> setzt mal lieber auf einen stärkeren Core (eben z.B. einem Cortex M) und> verwendet Standardbibliotheken. Time-To-Market wird heutzutage vielmals> höher bewertet als Kostenoptimierung auf den letzten Cent. Wobei die> Cortex-M ja sogar Kostenvorteile bieten.
Was soll "man" jetzt mit dieser Aussage anfangen? Wer ist überhaupt
"man"?
Persönlich nehme ich immer noch die Teile, die für die betreffende
Anwendung sinnvoll sind.
Wenn ich mich nach "man" richten müßte, müßte ich jeden Sonntag mit dem
Geländewagen zum Bäcker fahren. Ich laufe lieber!
Noch ein Nachtrag zum Thema Energiefreundlichkeit (s.a. oben):
Jörg Wunsch schrieb:> Das ist das, was ich mit „relativ linear“ meinte; es ist eben nicht> exakt linear. (Offenbar auch bei den ARMs mit ihren kleinen> Strukturen stärker nichtlinear als bei den AVRs mit ihren etwas> größeren Strukturbreiten
Der AVR-8 hat 0.328DMIPS/MHz
(http://www.ecrostech.com/Other/Resources/Dhrystone.htm)
Ein ATTiny hat ca. 375µA/MHz (1.5mA@3V@4MHz). D.h. er verbraucht bezogen
auf DMIPS ~9x mehr als ein Tiny Gecko mit ARM Cortex M3.
Das ist nun natürlich bezogen auf einen rechenintensiven Benchmark. D.h.
bei sehr einfachen Applikation ohne viel Anforderungen an die CPU (ud
vielleicht noch in Assembler programmiert?!) wird der ATTiny seinen
Dienst mit wenig Energie tun.
Die Zeiten der Autocodegeneratoren, Libraries, C/C++,... + mehr
benötigte lokale Rechenperformance treiben die Rechenleistung nach oben.
Wie bei jedem Thema: Gute Analyse der eigenen Anforderungen und
Benchmark mit eigenen Code auf den Eval-Boards der möglichen
MCU-Kandidate.
Bei mir hat der Tiny Gecko (EFM32TG) gewonnen :-)
M. N. schrieb:> Was soll "man" jetzt mit dieser Aussage anfangen? Wer ist überhaupt> "man"?> Persönlich nehme ich immer noch die Teile, die für die betreffende> Anwendung sinnvoll sind.
Natürlich kannst du für dich machen, was du willst. Ich beschreibe nur
die Situation, wenn es in der Industrie um Stückzahlen, Kosten, Qualität
und Wartbarkeit geht.
Cpt Haddock schrieb:> Das ist nun natürlich bezogen auf einen rechenintensiven Benchmark.
Richtig. Ein „Controller“ jedoch heißt ja vor allem deshalb so,
weil er etwas steuert. Solche Aufgaben sind oft genug IO-intensiv,
und die reine Rechenleistung rückt massiv in den Hintergrund. Wenn
du nur 2 Taster und 3 LEDs zu bearbeiten hast, dann bringt es dir
keinen Systemvorteil mehr, dass deine CPU 32 Bits auf einmal
durchsetzt. Dieser Systemvorteil ist aber bei Rechen-Benchmarks
wie Dhrystone natürlich immer implizit dabei.
Aber s. o., batteriebetriebene Geräte verbrauchen oft nach meinen
Erfahrungen einen nicht zu unterschätzenden Teil ihrer Energie in
der Schlafphase. Die paar Dhrystones interessieren dort überhaupt
nicht :), und man muss die Hardware insgesamt optimieren. Mit ihren
kleinen Strukturgrößen haben die ARMs hier einen systembedingten
Nachteil aufgrund ihrer viel größeren Leckströme, den sie nun durch
technische Tricks erst allmählich wettmachen können. (Energymicro
dürften die ersten gewesen sein, die in dieser Richtung was hatten.)
8-Bit schrieb:> Natürlich kannst du für dich machen, was du willst. Ich beschreibe nur> die Situation, wenn es in der Industrie um Stückzahlen, Kosten, Qualität> und Wartbarkeit geht.
Das ist eine gewagte Aussage. Hast Du Zahlen, dies zu belegen?
Wer ist denn die "Industrie"? Ein homogener Haufen, der irgendwelchen
Maktprognosen-Gurus hinterherläuft? Das glaube ich nicht!
Ich sehe auch einen Unterschied, ob jemand in Stückzahlen Autos,
Telefone, Fernseher oder Staubsauger herstellt. Gerade bei
consumer-Elektronik ist es doch mit Qualität und Wartbarkeit eh nicht
weit her.
Hoffentlich bleibt eine Vielzahl diverser Architekturen noch lange
erhalten. Je nach Anwendung sind die Anforderungen immer unterschiedlich
und somit bleibt auch Platz für persönliche Vorlieben und Abneigungen,
denen sich keiner entziehen kann. Wer einen 8051 in der Muttermilch
hatte, dem wird er weiterhin gut schmecken :-)
Wenn hier an einer Stelle um nA gefeilscht wird, ist das für Manche
substantiell und für andere völlig belanglos.
Für Anwendungen, wo viel gerechnet werden muß, sind 32Bit Register eine
Wohltat. Die braucht man aber überhaupt nicht, um ein paar IO-Pins
wackeln zu lassen. Ganz zu schweigen von einem 4GB IO-Adressraum, wie er
an anderer Stelle vor ein paar Tagen erwähnt wurde.
Um auf den Titel zurückzukommen: Atmel hat jetzt einen Cortex-M0+ im
Angebot. Das ist ja schön, läßt mich aber völlig kalt.
Und aus Erfahrung gefragt: Können sie überhaupt liefern? Wenn nicht,
wann denn? Und kontinuierlich oder mal für eine halbes Jahr kein
einziges Stück?
Der Punkt fehlt in der obigen Auflistung: Verfügbarkeit :-)
M. N. schrieb:> Das ist eine gewagte Aussage. Hast Du Zahlen, dies zu belegen?> Wer ist denn die "Industrie"? Ein homogener Haufen, der irgendwelchen> Maktprognosen-Gurus hinterherläuft? Das glaube ich nicht!
Natürlich gibt es unendlich viele Anwendungen und Nischen, in denen
andere Lösungen sinnvoll sind. Ich spreche hauptsächlich von Automotive,
Consumer und Industrieanwendungen. In den meisten Anwendungen haben dort
32-Bit-uC die Nase vorne. Für Neuentwicklung versteht sich, es wird
natürlich auch noch in vielen Jahren Altsysteme mit 8-Bit-uC geben (das
ist wohl der Hauptgrund, wieso es noch recht viele 8051er gibt).
Marktprognosen interessiert keinen profesionellen Ingenieur. Es geht
rein um die technische Weiterentwicklung. Die Cortex M sind eben heute
in vielerlei Hinsicht das Maß der Dinge.
M. N. schrieb:> Ich sehe auch einen Unterschied, ob jemand in Stückzahlen Autos,> Telefone, Fernseher oder Staubsauger herstellt. Gerade bei> consumer-Elektronik ist es doch mit Qualität und Wartbarkeit eh nicht> weit her.
Wenn es um den Preis geht, sind die ARM-uC weit vorne. Heute bekommt man
einen Cortex M4 für einen Preis, für den man vor vier Jahren gerade mal
einen größeren Atmega oder MSP430 bekommen hat. Und wirklich billiger
geworden sind die auch nicht.
M. N. schrieb:> Wer einen 8051 in der Muttermilch> hatte, dem wird er weiterhin gut schmecken :-)
Professionelle Ingenieure müssen anders denken. Da geht es um harte
Fakten, nicht um Vorlieben und Gefühle.
M. N. schrieb:> Und aus Erfahrung gefragt: Können sie überhaupt liefern? Wenn nicht,> wann denn? Und kontinuierlich oder mal für eine halbes Jahr kein> einziges Stück?
Atmel hat sich in dieser Hinsicht in den letzten Jahren massiv
verbessert.
8-Bit schrieb:> M. N. schrieb:>> Und aus Erfahrung gefragt: Können sie überhaupt liefern? Wenn nicht,>> wann denn? Und kontinuierlich oder mal für eine halbes Jahr kein>> einziges Stück?>> Atmel hat sich in dieser Hinsicht in den letzten Jahren massiv> verbessert.
Du reihst Behauptung an Behauptung. Kannst du wenigstens diese belegen.
Lohnt es sich denn überhaupt noch sich mit zb.8Bit AVR zubeschäftigen,
Denn wenn ich mir ansehe was ein Atmega128 kostet kriegt ich fast zum
gleichen
Preis ein STM32F103ZET6
>Wenn es um den Preis geht, sind die ARM-uC weit vorne.
Das sind nicht die Einzigsten, die günstig sind.
>Ich spreche hauptsächlich von Automotive,>Consumer und Industrieanwendungen.
AchNe. Also gehen alle 8Biter zu den Hobbyisten?
>In den meisten Anwendungen haben dort>32-Bit-uC die Nase vorne.
Keineswegs.
>Professionelle Ingenieure müssen anders denken. Da geht es um harte>Fakten, nicht um Vorlieben und Gefühle.
Jo. Und das Beste wird genommen.
Und das ist noch lange nicht immer ARM.
>Hoffentlich bleibt eine Vielzahl diverser Architekturen noch lange>erhalten.
Mit Sicherheit.
Denn es gibt viel zu viele Anwendungen, als dass da nur eine Archit.
Platz finden sollte.
Davis schrieb:> Du reihst Behauptung an Behauptung. Kannst du wenigstens diese belegen.
Tut mir leid, geht nicht - NDA sei Dank.
MCUA schrieb:> Das sind nicht die Einzigsten, die günstig sind.
Ja, andere 32-Bit-uC, zum Beispiel von TI, sind teilweise auch sehr
günstig.
MCUA schrieb:> AchNe. Also gehen alle 8Biter zu den Hobbyisten?
Wie gesagt - Altsysteme. Vor zwei/drei Jahren war die Situation noch
ganz anders.
MCUA schrieb:> Jo. Und das Beste wird genommen.> Und das ist noch lange nicht immer ARM.
Aber immer öfter.
dennis schrieb:> Denn wenn ich mir ansehe was ein Atmega128 kostet
Der kostet Museumsgebühren.
Aber in diesem Thread ging's um ein anderes Thema, nämlich die SAMD20.
Wenn du etwas völlig anderes anfangen willst, dannn bitte in einem
eigenen Thread.
8-Bit schrieb:> M. N. schrieb:>> Wer einen 8051 in der Muttermilch>> hatte, dem wird er weiterhin gut schmecken :-)>> Professionelle Ingenieure müssen anders denken. Da geht es um harte> Fakten, nicht um Vorlieben und Gefühle.
Ach, wenn das so wäre, gäbe es keine Promo-Boards zum 'Anfüttern'. Würde
ein STM32F407-Discovery-Board € 395,-- netto kosten, wäre es hier nie
erwähnt worden und nicht bei mir auf dem Tisch gelandet. Allein die
Lektüre des Datenblattes würde mir zum Schnuppern nicht reichen, auch
wenn die dortigen Zahlen gut aussehen (und die Errata ganz woanders
stehen).
Aber gut, ich bin ja kein professioneller Ingenieur, ich verdiene nur
mein Geld mit dem Kram, von dem ich erwarte, dass er mir auch noch Spaß
macht.
8-Bit schrieb:> Davis schrieb:>> Du reihst Behauptung an Behauptung. Kannst du wenigstens diese belegen.>> Tut mir leid, geht nicht - NDA sei Dank.
Wessen NDA? Oder NSA?
Mir kommt das Alles etwas vor, wie das Hochjubeln von Aktien. Wenn sie
am nächsten Tag ins Bodenlose gefallen sind, kommt der nächste Experte,
der das schon immer vorausgesagt hat.
M. N. schrieb:> Ach, wenn das so wäre, gäbe es keine Promo-Boards zum 'Anfüttern'. Würde> ein STM32F407-Discovery-Board € 395,-- netto kosten, wäre es hier nie> erwähnt worden und nicht bei mir auf dem Tisch gelandet.
Die Verfügbarkeit von Entwicklungstools spielt natürlich eine gewisse
Rolle. Und gerade bei Konzernen ist es einfacher, wenn man sich vom FAE
ein paar Low-Cost-Eval-Kits kostenlos zuschicken lassen kann. Und
natürlich spielt es bei gleichwertigen Produkten eine Rolle, ob man
vielleicht als Student oder privat schon einmal mit dem ein oder anderen
Baustein gearbeitet hat.
M. N. schrieb:> Wessen NDA?
Wenn du deine Brötchen mit Entwicklung verdienst, solltest du eigentlich
wissen, dass du Firmengeheimnisse nicht ausplaudern darfst. Aber du bist
ja nur Bastler, wie du ja selbst sagst, da kannst du so etwas natürlich
nicht wissen.
>> Du reihst Behauptung an Behauptung. Kannst du wenigstens diese belegen.> Tut mir leid, geht nicht - NDA sei Dank.
Totaler Humbug.
Etwaige NDA-Kenntnisse haben nichts mit Markt-Kenntnissen zu tun.
Und wenn man eine F-i-r-m-a kennt, kennt man den M-a-r-k-t noch lange
nicht!
MCUA schrieb:> Totaler Humbug.> Etwaige NDA-Kenntnisse haben nichts mit Markt-Kenntnissen zu tun.> Und wenn man eine F-i-r-m-a kennt, kennt man den M-a-r-k-t noch lange> nicht!
Also nochmal langsam. Es ging darum, dass jemand nach Belegen für das
Lieferverhalten einer Firma fragt. Diese Belege kann ich nicht
herausrücken, ohne Firmengeheimnisse zu verraten. Dazu gehören nämlich
nicht nur technische Infos, sondern auch konkrete Angaben über
Lieferzeiten, Stückzahlen, Preise, Abkündigungen (diese werden den
großen Kunden nämlich schon viel früher mitgeteilt) usw.
Ich kann nur sagen, dass sich Atmel in dieser Hinsicht in den letzten
zehn Jahren massiv gebessert hat, weil sie bei einigen großen Kunden
Probleme bekommen haben.
8-Bit schrieb:> Also nochmal langsam. Es ging darum, dass jemand nach Belegen für das> Lieferverhalten einer Firma fragt.
Da hat sich etwas missverständlich entwickelt. Als Bastler ist mir Atmel
im Grunde doch Schnuppe. Mir ging es um diese (Markt) Aussagen:
8-Bit schrieb:> Es steht natürlich jedem frei, eigene Architekturen auf den Markt zu> bringen und damit erfolgreich zu sein. Nur im Moment sieht es eben so> aus, als würde sich ARM durchsetzen. Die 8-Bit-Architekturen werden> jedenfalls nicht in der heutigen Breite überleben und eine wirkliche> Konkurrenz für die Cortex M gibt es auch noch nicht.> ...> Heutzutage> setzt mal lieber auf einen stärkeren Core (eben z.B. einem Cortex M) und> verwendet Standardbibliotheken. Time-To-Market wird heutzutage vielmals> höher bewertet als Kostenoptimierung auf den letzten Cent. Wobei die> Cortex-M ja sogar Kostenvorteile bieten.
Das ist doch weichgespültes Marktgeschreie - konkrete Angaben bleiben
aus! Und wenn Jemand Zahlen dazu liefert, möchte ich auch gerne wissen,
von wem er bezahlt wird und welche Aktien er im Depot hat.
Du scheinst nur Cortex-M zu kennen, die auch ihre Schwächen haben.
Diskussionen darüber gab es schon vor längerer Zeit.
Ich muß aber noch einmal hierauf zurückkommen:
8-Bit schrieb:> Professionelle Ingenieure müssen anders denken. Da geht es um harte> Fakten, nicht um Vorlieben und Gefühle.
Dabei fällt mir unweigerlich BER ein. Knallharte Profis basteln
Milliarden in den Brandenburger Sand.
Jörg Wunsch schrieb:> Aber s. o., batteriebetriebene Geräte verbrauchen oft nach meinen> Erfahrungen einen nicht zu unterschätzenden Teil ihrer Energie in> der Schlafphase. Die paar Dhrystones interessieren dort überhaupt> nicht :), und man muss die Hardware insgesamt optimieren. Mit ihren> kleinen Strukturgrößen haben die ARMs hier einen systembedingten> Nachteil aufgrund ihrer viel größeren Leckströme, den sie nun durch> technische Tricks erst allmählich wettmachen können. (Energymicro> dürften die ersten gewesen sein, die in dieser Richtung was hatten.)
Hi Jörg, kann ich nur bestätigen! In diesem Feld hat sich der Tiny Gecko
als sehr sparsam erwiesen. Ich kann viele Funktionen mit nur 1-2µA
durchführen und dank eines Event Systems (bei Energy Micro heißt es PRS)
Ablaufsteuerungen in den Deep Sleep Mode verlagern.
Aber dennoch: Ich kann sehr schön die Libs verwenden und in C
programmieren ohne mir die Finger krumm zu programmieren und bekomme
mehr Leistung zu weniger Energie. Das möchte ich nicht mehr vermissen.
So, nun reicht's für diesen Thread, der eher esoterisch wird. Es
scheinen sich hier eher die Marketing-Heinis der Hersteller auszuweinen.
Ich dachte das Forum ist für Bastler und Tüftler.
Mit diesen Worten eines knallharten Bastlers ... :-)
Schönes Wochenende!
M. N. schrieb:> Das ist doch weichgespültes Marktgeschreie - konkrete Angaben bleiben> aus! Und wenn Jemand Zahlen dazu liefert, möchte ich auch gerne wissen,> von wem er bezahlt wird und welche Aktien er im Depot hat.
Ich hatte mal Aktien von Atmel, Infineon und TI. ARM hatte ich noch
nicht, darüber ärgere ich mich jetzt. Ansonsten sitze ich auf
Kundenseite und setze dabei unter anderen Atmel, Microchip, TI und
Renesas ein. Wie du dir denken kannst, waren da nicht nur
ARM-Prozessoren dabei.
Ich kann dir nur sagen, dass wir für Neuprojekte Angebote von
verschiedensten Prozessoren verglichen haben und die neueren 32-Bit-uC
hatten preislich immer die Nase vorne. Im Low-Cost-Bereich (ab 30-50
Cent) ist der Cortex M0 fast unschlagbar. Der M4 hat noch mehr
Konkurrenz, zum Beispiel durch den C2000. Dabei ging es um 5-6stellige
Stückzahlen. Für einen Bastler ist das logischerweise weniger relevant,
dem ist im Endeffekt egal, ob der Chip jetzt 1 oder 5 Euro kostet.
Und ich kann dir sagen, wie wir bei solchen Stückzahlen in der
Entwicklung vorgehen. Wir haben zum Beispiel eine Anwendung, ganz
einfaches Datenhandling, ein paar ADC-Kanäle auslesen, kleine Umrechnung
und über die serielle Schnittstelle verteilen. So etwas kann jeder
8-Bit-AVR problemlos. Wir setzen dort trotzdem einen 32-Bit-uC ein, weil
wir damit auf die gleiche Softwareplattform einsetzen können, die wir
auch für unsere größeren Anwendungen verwenden. Dadurch entfällt nicht
nur Entwicklungs-, sondern vor allem Doku- und Testaufwand. Insgesamt
etwa 2 Mannmonate. Und dabei ist der Prozessor sogar noch günstiger als
die üblichen 8-Bit-AVR, dir wir sonst teilweise im Einsatz hatten.
Das war jetzt mal ein Beispiel, aber wir sind ja ständig mit den FAE der
Hersteller in Kontakt und die plaudern auch mal aus dem Nähkästchen. Und
da hört man auch etwas heraus, wie andere Firmen unterwegs sind. Und es
sieht wohl so aus, als wären wir nicht die einzigen, die so arbeiten.
Vermutlich ist das jetzt auch für dich wieder nur "weichgespültes
Marketinggeschrei", weil es nicht so ganz in dein Weltbild hineinpasst.
Aber da kann ich dir jetzt auch nicht mehr helfen.
8-Bit schrieb:> Und ich kann dir sagen, wie wir bei solchen Stückzahlen in der> Entwicklung vorgehen. Wir haben zum Beispiel eine Anwendung, ganz> einfaches Datenhandling, ein paar ADC-Kanäle auslesen, kleine Umrechnung> und über die serielle Schnittstelle verteilen. So etwas kann jeder> 8-Bit-AVR problemlos. Wir setzen dort trotzdem einen 32-Bit-uC ein, weil> wir damit auf die gleiche Softwareplattform einsetzen können, die wir> auch für unsere größeren Anwendungen verwenden. Dadurch entfällt nicht> nur Entwicklungs-, sondern vor allem Doku- und Testaufwand. Insgesamt> etwa 2 Mannmonate. Und dabei ist der Prozessor sogar noch günstiger als> die üblichen 8-Bit-AVR, dir wir sonst teilweise im Einsatz hatten.
Das ist für mich der Hauptgrund gewesen, jetzt für Neuentwicklungen
komplett auf 32 Bit (und da die STM32) zu gehen: man hat nur noch eine
Plattform, die leistungsmäßig eben einen deutlich größeren Bereich
abdeckt als bspw. die AVR-Serie.
Das heisst für uns: Bibliotheken nur noch für eine Architektur, kein
Umdenken/Einarbeiten mehr, nur eine Werkzeugkette etc.
Dazu gibt es die ARMs ja mittlerweile in einer gigantischen Fülle an
Typen. Da ist für unsere Aufgaben immer ein passender dabei.
Der Preis ist bei uns nicht wichtig - die Entwicklungskosten übersteigen
bei unseren geringen Stückzahlen die Bauteilkosten bei weitem.
Im Automotive-Bereich gibt es noch andere Andorderungen z.B. an die
Robustheit.
Da spielt der Temperaturbreich, EMV-Festigkeit und Flash-Lebensdauer ein
Rolle. Also kurz: wie zuverlässig ist der Controller über Lebendauer. Da
können Argumente wie größere Rechenleistung zu gleichem Preis schnell in
den Hintergrund geraten.
8-Bit schrieb:> Vermutlich ist das jetzt auch für dich wieder nur "weichgespültes> Marketinggeschrei", weil es nicht so ganz in dein Weltbild hineinpasst.
Im Gegenteil, ich freue mich über Deine konkreten, konstruktiven
Aussagen. Ich mag es nur nicht, wenn Leute vorgeben wollen, wohin der
Hase läuft und alle hinterherlaufen sollen.
Meine Stückzahlen liegen nur im dreistelligen Bereich, daher ist der
Einzelpreis nicht so entscheidend.
Vielleicht kennst Du ja die RX6x und die STM32F4xx. Letzterer ist schön
schnell, aber Ersterer zehnmal 'schöner' zu programmieren. Mal sehen,
wie ich mich entscheiden werde.
8-Bit schrieb:> Im Low-Cost-Bereich (ab 30-50> Cent) ist der Cortex M0 fast unschlagbar.
Dieses Teil, zu dem Preis, in einem TQFP32/48, dass man auch alle
Interna nutzen kann: da bin ich dabei :-)
Chris D. schrieb:> Das ist für mich der Hauptgrund gewesen, jetzt für Neuentwicklungen> komplett auf 32 Bit (und da die STM32) zu gehen: man hat nur noch eine> Plattform, die leistungsmäßig eben einen deutlich größeren Bereich> abdeckt als bspw. die AVR-Serie.
Genau das meinte ich damit.
chris schrieb:> Im Automotive-Bereich gibt es noch andere Andorderungen z.B. an die> Robustheit.> Da spielt der Temperaturbreich, EMV-Festigkeit und Flash-Lebensdauer ein> Rolle. Also kurz: wie zuverlässig ist der Controller über Lebendauer. Da> können Argumente wie größere Rechenleistung zu gleichem Preis schnell in> den Hintergrund geraten.
Richtig. Mit ARM ist man an sich da nicht falsch unterwegs, schließlich
sind bei den Cortex M doch sehr viele Erfahrungen aus dem sehr bewährten
ARM7 eingeflossen. Es hängt dann eher von der Implementation und der
Umgebung ab. Gerade die von dir erwähnten Punkte hängen eher an der
Technologie, nicht an der Architektur des Rechenkerns.
M. N. schrieb:> Im Gegenteil, ich freue mich über Deine konkreten, konstruktiven> Aussagen. Ich mag es nur nicht, wenn Leute vorgeben wollen, wohin der> Hase läuft und alle hinterherlaufen sollen.
Ich habe mit keinem Wort geschrieben, dass sich jemand nach meinen
Aussagen richten muss. Ich habe lediglich eine Beobachtung beschrieben.
Mag sein, dass das falsch ankam, aber das liegt auch an der
Interpretation des Lesers.
M. N. schrieb:> Dieses Teil, zu dem Preis, in einem TQFP32/48, dass man auch alle> Interna nutzen kann: da bin ich dabei :-)
Gibt es, aber eben erst bei entsprechenden Stückzahlen.
M. N. schrieb:> Dieses Teil, zu dem Preis, in einem TQFP32/48, dass man auch alle> Interna nutzen kann: da bin ich dabei :-)
Freescale MKL05Z8VLC4 liegt bei 250 Stück bei ~ 0,74 € (Digi Key)
Mal ein Beispiel:
Beim Übergang von MEGA auf den XMEGA ist es pi mal daumen beim gleichen
Kern, aber leider komplett neue Onchip-Peripherie. Das war so als ob man
einen komplett neuen Controller vor sich hatte (trotz IDE). IHMO ist
beim Wechsel oft die OnChip-Peripherie das Problem. Sogar innerhalb der
"Familie" bzw. des Kerns.
Natürlich würde auch die MCU-Linie nehmen, die meine Anwendungen am
besten abdecken. Für den einen sind es ARM, für den anderen MSP, der
nächste nimmt 8051...
Alle schreien ARM, aber clevere Entwickler gehen Hybrid und nutzen ARM
UND AVR ;-)
http://www.kickstarter.com/projects/secretlabs/agent-the-worlds-smartest-watch
Wenn ich mich nicht täusche ist es ein tiny1634.
So jetzt mal meine Fragen:
- Warum nicht diese olle TinyGecko Familie?
- Warum überhaupt Hybrid und nicht EnergyMicro die ja so
energieeffizient sein sollen?
- Warum wurde kein CortexM0(+) genommen, dann hätte man ja eine
Toolchain nutzen können
Ich stell mal meine Behauptungen und Fragen auf:
- EM sei gar nicht so stromsparend wie der Name suggeriren soll
- Der Preis ob ein Cortex günstiger als ein AVR ist sei reine
Verhandlungssache und vom Geschick des Einkäufers abhängig
- Wenn man einen AVR zum Mercedes-Preis verkaufen kann, warum soll man
dann den Preis halbieren und zum CortexM0 Preis verkaufen?
Offensichtlich ist einigen vielen Leuten der Preis wert
- Den End-Preis bestimmen die Distributoren, wenn sie ein Produkt teurer
verkaufen können dann ist es ok. Offensichtlich lässt sich der Cortex
lediglich über den Preis den Kunden schmackhaft machen, wäre der Preis
dem AVR gleich, würden wohl mehrere beim AVR bleiben. Offensichtlich
gibt es doch nicht genug Vorteile um den Cortex gut verkaufen zu können.
- Warum verkauft ein Produzent A z.b. einen AVR für 2.5Euro, wobei man
bei einigen Konkurrenten (laut Marketing) mehr Leistung, 32Bit zum
halben Preis bekommt? Warum hat man den Cortex, der ja 4x soviele Bits
hat wie ein AVR (ich sag jetzt auch mal wie ein PIC oder ähnliche, damit
es hier nicht so einschlägig wird ;-)), viel mehr MHz aufweist, nicht
z.b. 4x teurer verkauft? Oder zumindest den Preis dem AVR
gleichgestellt? Warum muß man den Preis den so niedrig ansetzen um
überhaupt was verkaufen zu können? Taugt der Cortex doch nicht so wie
ARM marketing es allen andrehen will?
Schon interessant oder? Warum verlieren die anderen Produzenten (ok
Atmel hat jetzt auch einen Cortex der die 8Bitter ersetzen soll)
freiwillig Geld? Wenn ich ein Produkt hätte, z.b. ein VW Golf der 7Liter
verbraucht, und dieser 30000Euro kostet, und nun bringt ein Konkurrent
eine Alternative zum Golf raus der nur noch 3.5Liter verbraucht, viel
schneller fährt und mehr Zylinder hat (Bits), ja warum muß dieser
Produzent dann noch den Preis auf 15000Euro setzen um dieses Fahrzeug
verkaufen zu können?
Und warum kaufen dann Leute immer noch den Golf?
fragen über fragen, aber ich hab grad ne Flasche Wein auf ;-)
Matthias schrieb:> gibt es doch nicht genug Vorteile um den Cortex gut verkaufen zu können.> - Warum verkauft ein Produzent A z.b. einen AVR für 2.5Euro, wobei man> bei einigen Konkurrenten (laut Marketing) mehr Leistung, 32Bit zum> halben Preis bekommt?
Ganz einfach: Er wird ihn bald nicht mehr verkaufen - zumindest nicht
für Neuprojekte. Es gibt aber genug Altprodukte, die logischerweise
nicht mehr auf eine neue Architektur umgestellt werden können. Aber mit
diesen Altprojekten wird auch die alte, teure Architektur (bzw.
Technologie) aussterben.
Matthias schrieb:> Warum muß man den Preis den so niedrig ansetzen um> überhaupt was verkaufen zu können? Taugt der Cortex doch nicht so wie> ARM marketing es allen andrehen will?
Den ARM kann man aufgrund der neueren Fertigungsprozesse viel billiger
produzieren. Der Rest ist reines Gesetz des Marktes: Es gibt viel
Konkurrenz und ein wichtiges Kriterium ist der Preis, besonders wenn man
sich nicht mehr technisch hervorheben kann. Bei Low-Cost-uC ist das eben
der Fall. Das ist im übrigen eine fast lehrbuchreife
Penetrationsstrategie.
Matthias schrieb:> ja warum muß dieser> Produzent dann noch den Preis auf 15000Euro setzen um dieses Fahrzeug> verkaufen zu können?
Weil es nicht nur einen Konkurrenten gibt, sondern viele. Sie
konkurrieren schon lange nicht mehr mit dem Golf mit 7 Liter Verbrauch,
sondern untereinander.
Matthias schrieb:> Und warum kaufen dann Leute immer noch den Golf?
Hier hinkt der Vergleich. Wie erwähnt handelt es sich dabei meistens
noch um Altprojekte, die entweder schon weit im Produktlebenszyklus
stehen oder noch auf einer alten Softwareplattform basieren, die nicht
mehr portiert werden soll. Das ist ein Prozess, der sich über Jahrzehnte
zieht. Er hat aber erst vor etwa ein bis zwei Jahren begonnen. Wir
stehen also noch ganz am Anfang, und deshalb kaufen natürlich noch viele
die alten Prozessoren für einen teuren Preis.
8-Bit schrieb:>> FDA,FAA,MIL etc ? (Gerne auch Drittanbieter)>> Gutes Beispiel für eine exotische Anwendung (auch wenn da womöglich auch> Millionenstückzahlen dahinterstecken können...)
Exotische Anwendung ?
FDA ist die Foot & Drugs Administration, deren (abgeleitete) MPG
Vorschriften in D, die Grundlage aller Zulassungen für Medizingeräte
sind.
FAA ist die Federal Aviation Administration, mit der man sich
rumschlägt, wenn irgendwas im Bereich Luft- & Raumfahrttechnik
zugelassen werden soll. Da greift dann auch schon oft der MIL-Standard.
Exotische Anwendungen ! Alles klar^^
Grüße
Andreas
Preisfrage: Wann verlangen diese Vorschriften tatsächlich eine
zertifizierte Toolchain? Also wirklich zwingend verlangen, nicht nur
empfehlen. Letzeres wird in quasi jeder Norm gemacht, man kann es aber
auch quasi immer durch andere Methoden umgehen.
8-Bit schrieb:> Preisfrage: Wann verlangen diese Vorschriften tatsächlich eine> zertifizierte Toolchain? Also wirklich zwingend verlangen, nicht nur> empfehlen.
Die Frage stellt sich doch meist so gar nicht.
Wenn Du aber z.B. bei einem Medizingerät in den USA einen Case hast,
dann musst DU nachweisen, dass Du nach dem aktuellen Stand der Technik
gearbeitet hast. Und das schliesst z.B. auch ein, dass Du Dich
bestmöglichst von der Brauchbarkeit Deiner Werkzeuge überzeugt hast.
Und wie machst Du das ? Z.B. Indem Du Compiler benutzt, die von einer
"fachkundigen Stelle" zertifiziert sind.
Oft wird das auch direkt vom Kunden verlangt, der genau in dieser
Situation NICHT feststellen will, dass sein Zulieferer (also DU) durch
ungenügende Entwicklungsprozesse (incl. Tools) das Ganze versiebt hat.
Das wird dann nämlich richtig teuer.
Grüße
Andreas
Chris D. schrieb:> Das ist für mich der Hauptgrund gewesen, jetzt für Neuentwicklungen> komplett auf 32 Bit (und da die STM32) zu gehen: man hat nur noch eine> Plattform, die leistungsmäßig eben einen deutlich größeren Bereich> abdeckt als bspw. die AVR-Serie.
Mich würde interessieren, mit welchen µCs Du zuvor gearbeitet hast, und
ob diese mit ihrer Leistung nicht sowieso schon am Anschlag waren. Nur
AVR?
Setzt Du auch die 'kleineren Brüder' STM32F051 ein?
Arc Net schrieb:> Freescale MKL05Z8VLC4 liegt bei 250 Stück bei ~ 0,74 € (Digi Key)
Die gefallen mir nicht so recht. Auch wird wieder deutlich, das ARM nur
der Kern ist, die Peripherie hängt wieder ganz von den Vorlieben (und
der µC-Entwicklungsgeschichte) des jeweiligen Herstellers ab. Wenn man
auf der einen Seite mit STM32 arbeitet und dann beispielsweise mit
obigen Freescale-Typen, ist es mit gemeinsamen, erprobten Bibliotheken
wieder Essig.
Um noch einmal auf die oben angesprochene 5V-Fähigkeit zu kommen: sobald
im System MOSFETs, Motortreiber (L6203), o.ä. direkt angesteuert werden
sollen/müssen, kann man dies mit 5V-µCs (AVR) sehr einfach erledigen.
Auch aus diesem Grund sind für mich die Cortex-M0 noch nicht so zündend,
obwohl die Interrupt-Prioritäten schon ihren Reiz haben ...
M. N. schrieb:> Chris D. schrieb:>> Das ist für mich der Hauptgrund gewesen, jetzt für Neuentwicklungen>> komplett auf 32 Bit (und da die STM32) zu gehen: man hat nur noch eine>> Plattform, die leistungsmäßig eben einen deutlich größeren Bereich>> abdeckt als bspw. die AVR-Serie.>> Mich würde interessieren, mit welchen µCs Du zuvor gearbeitet hast, und> ob diese mit ihrer Leistung nicht sowieso schon am Anschlag waren. Nur> AVR?
Wir hier haben davor nur die AVRs eingesetzt (attiny, atmega).
Ja, die waren irgendwann am Anschlag - spätestens mit Ansteuerung eines
TFTs etc. wird es eben eng.
> Setzt Du auch die 'kleineren Brüder' STM32F051 ein?
Ja, für einfache Sachen durchaus. Wie gesagt: das breite
Leistungsspektrum der STM32 hat mich überzeugt. Ich habe jetzt für jede
Anwendung hier den passenden Controller - aus einer Familie.
Und manchmal wachsen mit der Entwicklung auch die Anforderungen (kennst
Du vermutlich selbst ;-). Da ist es gut, wenn man ohne Probleme den
nächstgrößeren Typen wählen kann und nach oben viel Luft hat.
Wie gesagt: der Preis ist für mich eher Nebensache, da die Bauteilkosten
bei den geringen Stückzahlen (hauptsächlich für chem. Industrie) hier
praktisch keine Rolle spielen.
Mir geht es darum, nur noch eine Plattform pflegen zu müssen.
Und wenn man die Bibliotheken von Anfang an modular aufbaut (so wie wir
jetzt hier) und/oder ein passendes OS nimmt (hier NuttX), dann ist auch
der (eventuelle) Wechsel zu Herstellern anderer ARM-Familien nicht mehr
so wild.
Wenn ST die Grätsche macht, wäre das jetzt nicht mehr dramatisch für uns
- im Gegensatz zu einer Atmel-Pleite damals.
Das ist für uns ein dicker Pluspunkt für ARM.
Und natürlich sind bei unseren Anwendungen mit entsprechenden
Integer-Werten 32-Bit einfach deutlich schneller - vom Takt mal ganz
abgesehen. Hat man das einmal, möchte man darauf nicht mehr verzichten
:-)
Andreas H. schrieb:> Wenn Du aber z.B. bei einem Medizingerät in den USA einen Case hast,> dann musst DU nachweisen, dass Du nach dem aktuellen Stand der Technik> gearbeitet hast. Und das schliesst z.B. auch ein, dass Du Dich> bestmöglichst von der Brauchbarkeit Deiner Werkzeuge überzeugt hast.> Und wie machst Du das ? Z.B. Indem Du Compiler benutzt, die von einer> "fachkundigen Stelle" zertifiziert sind.
Das ist eine Möglichkeit, aber nicht die einzige und auch nicht in allen
Fällen die beste. In den Normen EN61508 und DO178B sind jedenfalls
alternative Wege vorgesehen, gerade weil auch den Gremien bekannt ist,
dass man einen Compiler nicht so einfach mal zertifiziert.
Mal davon abgesehen, dass es durchaus Toolchains für Cortex M und Cortex
R gibt, die für EN61508 oder DO178B vorgesehen sind.
8-Bit schrieb:> In den Normen EN61508 und DO178B sind jedenfalls> alternative Wege vorgesehen, gerade weil auch den Gremien bekannt ist,> dass man einen Compiler nicht so einfach mal zertifiziert.
Oh, das ist interessant. Hast Du da zufällig ein Beispiel parat ?
Vielleicht wäre sowas bei uns ja auch anwendbar.
Grüße
Andreas
P.S.: Du meinst aber DO178C, oder (die B ist outdated afaik) ?
A.
Ich kann dir mal meine Erfahrungen mit der EN61508 (bis SIL3) mitteilen.
Bei anderen Normen sieht es wohl ähnlich aus. Zumindest hat das eine
kurze Recherche ergeben.
Wie gesagt, es gibt keine harte Forderung: "Du darfst nur einen
zertifizierten Compiler nutzen." Solche harten Forderungen gibt es im
Übrigen nur ganz selten; es gibt eigentlich immer einen gewissen
Interpretationsspielraum. Und die Verwendung eines zertifizierten
Compiler macht den Zertifizierungsprozess auch nicht wesentlich
einfacher. Da spielen einfach zu viele andere Faktoren eine Rolle.
Zunächst einmal wird das Gesamtprodukt und der Entwicklungsprozess
bewertet. Dabei ist der Einsatz der Tools nur eine kleine Facette. Viel
wichtiger sind die Nachvollziehbarkeit der angewendeten
Entwicklungsprozesse, eine saubere Dokumentation und vernünftig gewählte
Testverfahren. Die Einhaltung von Coderichtlinien (Stichwort MISRA-C)
sind auch wichtig.
Da gibt es dann noch die Bewährtheit. Es ist sehr vorteilhaft, wenn man
mit einem Tool seit Jahren arbeitet. Man verwendet besser etwas
bewährtes als auf einen unbekanntes Tool umzusteigen, nur weil es
zertifiziert ist.
Tests habe ich schon erwähnt - man kann davon ausgehen, dass bei einer
ausreichenden Testabdeckung einen Großteil der durch Compilerfehler
entstehenden Probleme aufdecken kann.
Außerdem ist auch den Zertifizierungsgesellschaften klar, dass auch ein
zertifiziertes Tool niemals komplett fehlerfrei sein kann. Und es gibt
selbstverständlich auch systemaische Fehler, die nicht auf das Tool
zurückzuführen sind. Außerdem gibt es ja auch zufällige Fehler
(Soft-Error sagt dir sicherlich etwas). Deshalb muss man von Anfang an
ein fehlertolerantes System entwickeln. Und man geht davon aus, dass ein
solches System auch gegenüber Compilerfehler in einem ausreichenden Maße
geschützt ist.
Jörg Wunsch schrieb:> Beispielsweise Leute, die Betrieb bei 5 V brauchen (soll wohl in> der Fahrzeugtechnik noch sehr verbreitet sein). Es gibt meines> Wissens bislang keinen einzigen ARM, der das kann.
FM3 von Fujitsu beispielsweise. Wir warten gerade auf das Starterkit,
allerdings weniger wegen den 5V sondern wegen den zwei
Ethernet-Schnittstellen.
Edit: Ok, wurden schon genannt...
hallo,
damit dieser thread nich noch weiter von eigentlichen Thema abdriftet
ein paar themenspezifische infos:
es gibt eine neue revision des datenblatts:
-) neues kapitel SAM D20 Schematic Checklist (beinhaltet auch die
anschaltung der oszillatoren
-) div fehlerbehebungen/ergänzungen
allerdings fehlen immer noch die ac/dc characteristics.
gruss
gerhard
Andreas H. schrieb:> 8-Bit schrieb:>> In den Normen EN61508 und DO178B sind jedenfalls>> alternative Wege vorgesehen, gerade weil auch den Gremien bekannt ist,>> dass man einen Compiler nicht so einfach mal zertifiziert.>> Oh, das ist interessant. Hast Du da zufällig ein Beispiel parat ?> Vielleicht wäre sowas bei uns ja auch anwendbar.>> Grüße> Andreas>> P.S.: Du meinst aber DO178C, oder (die B ist outdated afaik) ?> A.
Kurz dazu:
- Im Zusammenhang mit der DO-178B existiert der Begriff
Tool-Zertifizierung nicht. Man spricht dort von Tool-Qualification.
- Ex existieren keine Compiler, die im Sinne der
DO-178B/Development-Tool- qualifizierbar wären. Es ist nicht möglich,
ein komplexes Tool wie einen Compiler zu qualifizieren. Die Korrektheit
des Compiler muss per Verifikation der erzeugten Artefakte nachgewiesen
werden.
- Es gibt bereits eine DO-178C. Damit wird aber nicht automatisch die
DO-178B ungültig/veraltet. Welche Version anzuwenden ist, bestimmt
jeweils der übergeordnete System-Entwicklungsprozess (vereinfacht
gesagt).
- Das Thema Tool-Qualification wurde in der DO-178C ausgelagert und in
der DO-330 beschrieben
8-Bit schrieb:> Die Einhaltung von Coderichtlinien (Stichwort MISRA-C)> sind auch wichtig.
Das ist Lustig. Mir erzählen unsere SW-Verantwotlichen, dass sie ihren
Compiler nur deswegen haben, weil er wohl nach MISRA-C zertifiziert ist.
Deiner (absolut plausiblen) Darstellung nach, wäre das aber gar nicht
nötig, da MISRA-C eher den gesamten SW Entwicklungsprozess
"vorschreibt".
Sehe ich das richtig ?
Grüße
Andreas
EFA schrieb:> Ex existieren keine Compiler, die im Sinne der> DO-178B/Development-Tool- qualifizierbar wären. Es ist nicht möglich,> ein komplexes Tool wie einen Compiler zu qualifizieren.
Sehe ich eigentlich genau so. Von unseren SW-Devs wurde mir das dann
aber anders erklärt. Da werde ich mal nachhaken.
Danke für die Infos :-)
Grüße
Andreas
MISRA-C ist lediglich ein Codestandard. Ein Codestandard ist nur ein
ganz kleiner Teil, der beispielsweise für DO178B (und bei anderen
Normen, usw..) relevant ist.
Eine Zertifizierung nach "MISRA-C" gibt es nicht. Alleine die Aussage,
ein Compiler sei nach MISRA-C zertifiziert, ergibt keinen Sinn.
Ein Compiler kann den Entwickler maximal bei der Einhaltung des MISRA-C
unterstützen.
Für den Gesamtentwicklungsprozess ist damit nur ein kleiner (und der
einfachste) Teil abgedeckt.
Andreas H. schrieb:> EFA schrieb:>> Ex existieren keine Compiler, die im Sinne der>> DO-178B/Development-Tool- qualifizierbar wären. Es ist nicht möglich,>> ein komplexes Tool wie einen Compiler zu qualifizieren.>> Sehe ich eigentlich genau so. Von unseren SW-Devs wurde mir das dann> aber anders erklärt. Da werde ich mal nachhaken.>> Danke für die Infos :-)>> Grüße> Andreas
Schick mir mal die Anschrift, dann gibts ein Q-Audit nach
EN9100/AQAP2210 :)
EFA schrieb:> - Ex existieren keine Compiler, die im Sinne der> DO-178B/Development-Tool- qualifizierbar wären. Es ist nicht möglich,> ein komplexes Tool wie einen Compiler zu qualifizieren. Die Korrektheit> des Compiler muss per Verifikation der erzeugten Artefakte nachgewiesen> werden.
Etwas weiter ist das Gebiet schon.
http://compcert.inria.fr/ (formal verifizierte Compiler)
und der bislang einzige formal verifizierte Kernel seL4
http://www.ok-labs.com/whitepapers/sample/sel4-formal-verification-of-an-os-kernel
Arc Net schrieb:> EFA schrieb:>> - Ex existieren keine Compiler, die im Sinne der>> DO-178B/Development-Tool- qualifizierbar wären. Es ist nicht möglich,>> ein komplexes Tool wie einen Compiler zu qualifizieren. Die Korrektheit>> des Compiler muss per Verifikation der erzeugten Artefakte nachgewiesen>> werden.>> Etwas weiter ist das Gebiet schon.> http://compcert.inria.fr/ (formal verifizierte Compiler)> und der bislang einzige formal verifizierte Kernel seL4> http://www.ok-labs.com/whitepapers/sample/sel4-formal-verification-of-an-os-kernel
Formale verifikation ist nur eine Möglichkeit der Verifikation. Bei dem
zweiten Link handelt es sich um einem Microkernel. Das ist nichts neues,
zertifizierte OS/Kernel gibt es reichlich. Welche Verifikationsmethoden
zur Anwendung kommen ist der Behörde egal (vereinfacht gesagt).
Bei dem Compiler (erster Link) handelt es sich um einen Compiler, bei
dem gewisse Verifikationsaktivitäten durch formale Verifikation
durchgeführt wurden. Von einer Zertifizierung oder Qualifizierung nach
DO-178B ist das noch weit entfernt.
EFA schrieb:> Bei dem> zweiten Link handelt es sich um einem Microkernel. Das ist nichts neues,> zertifizierte OS/Kernel gibt es reichlich.
seL4 ist der einzige formal verifizierte Kernel, d.h. div. Eigenschaften
sind mathematisch bewiesen, das ist ein gewaltiger Unterschied zu einer
wie auch immer gearteten Zertifizierung.
Ähnliches gilt für den CompCert.
Arc Net schrieb:> EFA schrieb:>> Bei dem>> zweiten Link handelt es sich um einem Microkernel. Das ist nichts neues,>> zertifizierte OS/Kernel gibt es reichlich.>> seL4 ist der einzige formal verifizierte Kernel, d.h. div. Eigenschaften> sind mathematisch bewiesen, das ist ein gewaltiger Unterschied zu einer> wie auch immer gearteten Zertifizierung.> Ähnliches gilt für den CompCert.
Das interessiert eine Certification Authority aber reichlich wenig. Auf
den Seiten steht nichtmal, wie die Certification Baseline definiert ist.
Das reicht schon als Aussage, dass es sich bei den Themen eher um
akademische Projekte ohne praktische Relevanz handelt.
Für eine Zertifizierung, beispielsweise in der Luftfahrt, reich es nicht
zu sagen "formal verifiziert" oder "mathematisch bewiesen". Dort
schreibt die Certification Authority den Standard vor, nach dem zu
zertifizieren ist.
Die Aussage "foraml zertifiziert" is zulassungstechnisch ohne Kontext
erstmal belanglos.
Was nicht heissen soll dass es nicht etwas über die Qualität der
Software aussagt.
EFA schrieb:> Eine Zertifizierung nach "MISRA-C" gibt es nicht. Alleine die Aussage,> ein Compiler sei nach MISRA-C zertifiziert, ergibt keinen Sinn.
Es kann ja durchaus sein das bei der Entwicklung des Compilers selbst
mit MISRA-C gearbeitet wurde. Es ist also zumindest theoretisch nicht
unmöglich.
8-Bit schrieb:> - 8-Bitter sterben aus. Sie werden vom Cortex M0 verdrängt.
Diesen Trend kann ich absolut nicht erkennen. Mal ganz davon abgesehen,
daß es in einer riesengroßen Zahl von Anwendungen rein um
Bitmanipulationen geht und somit die Verarbeitungsbreite sowieso völlig
Wurscht ist.
Viele Bits Verarbeitungsbreite blähen im Minimum zuverlässig den Code
auf, erfordern deshalb mehr Speicher dafür. Soll der Code dadurch nicht
schweinelangsam abgearbeitet werden, sind auch breitere Busse nötig. Das
erhöht die Zahl der Pins, die Zahl der Layer, senkt die Ausbeute in der
Fertigung auf allen Ebenen.
Sprich: Höhere Verarbeitungsbreiten sind nur dort sinnvoll, wo sie neben
diesen ganzen Nachteilen auch irgendeinen Vorteil bescheren...
Wenn es denn bei reiner Bitmanipulation bleiben würde, wäre das
vielleicht sogar richtig. Meistens spielt aber zumindest mal ein ADC mit
oder es ist eine kleine Umrechnung notwendig. Oder man nutzt Timer mit
16 oder 32 Bit. In all diesen Anwendung ist ein 32Bit-CPU schon
vorteilhaft.
Dass die Codegröße bei 32-Bit ansteigt ist ein Mythos. In den meisten
Fällen ist sie sogar geringer. Thumb-Code ist schon sehr effizient.
Die neuen 32-Bit-uC werden in einer viel moderneren Technologie
gefertigt. Somit sind breitere Busse überhaupt kein Thema. Wieso sollte
die Anzahl der Pins oder Layer steigen? Es gibt Cortex M0+ mit 8 Pin,
und die kriegt man auch auf einer 1-Lagen-Karte zum laufen. Oder meinst
du die Lagen auf dem Silizium? Das wird durch die neuere
Prozesstechnologie kostentechnisch mehr als ausgeglichen.
8-Bit schrieb:> Wenn es denn bei reiner Bitmanipulation bleiben würde, wäre das> vielleicht sogar richtig. Meistens spielt aber zumindest mal ein ADC mit> oder es ist eine kleine Umrechnung notwendig. Oder man nutzt Timer mit> 16 oder 32 Bit. In all diesen Anwendung ist ein 32Bit-CPU schon> vorteilhaft.
Nicht notwendigerweise. Wenn der 8Bitter eine 32Bit-Addition in vier
Schritten erledigen muß, und der 32Bitter das in einer Operation
erledigen kann, ist er trotzdem erst dann im Vorteil, wenn dieser eine
Schritt bei gleichem Takt schneller erledigt ist als der 8Bitter seine
vier.
Und das ist längst nicht immer der Fall...
> Dass die Codegröße bei 32-Bit ansteigt ist ein Mythos.
Nein, das liegt in der Natur der Sache. Wenn man die Möglichkeiten der
größeren Verarbeitungsbreite wirklich nutzen will, braucht man mehr
Operationen und die Operationen müssen zumindest zum Teil breitere
Operatoren verarbeiten können. Beides führt unweigerlich dazu, daß sich
die Zahl der Instruktionen pro Byte Codegröße verringern muß. Das ist so
logisch, daß man darüber eigentlich überhaupt nicht diskutieren müßte.
Im Vergleich zum 8Bitter eingespart werden kann hingegen nur etwas, wenn
dessen beschränkte Verarbeitungbreite für eine Aufgabe mehr
Instruktionen erfordert als sie bei 32Bit Verarbeitungsbreite nötig
sind. Nur ist das eben bei den meisten µC-Anwendungen eher selten der
Fall. Für Bitmanipulationen wird's überhaupt nicht gebraucht. Für das
Rechnen mit geringen Genauigkeiten und kleinen Zahlen ebenfalls nicht.
Für Stringverarbeitung allenfalls bezüglich der Zeigerarithmetik, aber
selbst die ist meist nur 16Bit breit, nicht 32.
Im Übrigen gibt es 32Bit-µC seit mindestens 20 Jahren. Sie konnten bis
heute nicht die 8Bitter obsolet machen. Wahrscheinlich deshalb, weil
andere Leute ebenfalls erkannt haben, daß eine höhere
Verarbeitungsbreite nur dann einen Vorteil bringt, wenn man sie auch
tatsächlich benötigt.
c-hater schrieb:> Im Übrigen gibt es 32Bit-µC seit mindestens 20 Jahren.
Ich hab hier nen 64-Bitter Baujahr 1992, zugegeben es ist kein µC
sondern eine "normale" MIPS R4k4, aber damals(TM) gab's keinen
Unterschied zwischen µC und normaler CPU. Die Peripherie war früher
meistens extern und an CPUs wurde verbaut was gerade opportun war.
Irgendwo hab ich noch ne VME-Bus Karte mit 'nem MC88k aus einer
Maschinensteuerung BJ.'90 rumliegen. Der hatte auch schon 32-Bit.
c-hater schrieb:> Im Vergleich zum 8Bitter eingespart werden kann hingegen nur etwas, wenn> dessen beschränkte Verarbeitungbreite für eine Aufgabe mehr> Instruktionen erfordert als sie bei 32Bit Verarbeitungsbreite nötig> sind. Nur ist das eben bei den meisten µC-Anwendungen eher selten der> Fall. Für Bitmanipulationen wird's überhaupt nicht gebraucht. Für das> Rechnen mit geringen Genauigkeiten und kleinen Zahlen ebenfalls nicht.
Ja, für Zahlen von 0 bis 255.
Alles darüber hinaus benötigt schon ein wildes Umladen von Registern.
Und bei Funktionsaufrufen Stackoperationen muss der ganze Wust vorher
auch noch gesichert werden.
> Für Stringverarbeitung allenfalls bezüglich der Zeigerarithmetik, aber> selbst die ist meist nur 16Bit breit, nicht 32.
Und schon das benötigt ein zweites Register und halbiert die
Geschwindigkeit.
> Im Übrigen gibt es 32Bit-µC seit mindestens 20 Jahren. Sie konnten bis> heute nicht die 8Bitter obsolet machen. Wahrscheinlich deshalb, weil> andere Leute ebenfalls erkannt haben, daß eine höhere> Verarbeitungsbreite nur dann einen Vorteil bringt, wenn man sie auch> tatsächlich benötigt.
Dass die 32-Bitter sich jetzt erst durchsetzen, liegt nur ein einer
einzigen Sache: dem Preis.
Jetzt erst sind sie preislich auf einer Ebene mit den 8 Bittern.
Wenn ich für praktisch dasselbe Geld die Wahl zwischen 32 und 8 Bit
habe, denn fällt die Wahl nicht schwer.
Es wird Nischen für 8 Bit geben, aber die Masse wird wechseln.
Es gibt Schlimmeres :-)
c-hater schrieb:> Nicht notwendigerweise. Wenn der 8Bitter eine 32Bit-Addition in vier> Schritten erledigen muß, und der 32Bitter das in einer Operation> erledigen kann, ist er trotzdem erst dann im Vorteil, wenn dieser eine> Schritt bei gleichem Takt schneller erledigt ist als der 8Bitter seine> vier.>> Und das ist längst nicht immer der Fall...
Doch, bei Cortex Mx im Vergleich zu allen 8-Bittern ist das sehr wohl
der Fall!
c-hater schrieb:> Nein, das liegt in der Natur der Sache. Wenn man die Möglichkeiten der> größeren Verarbeitungsbreite wirklich nutzen will, braucht man mehr> Operationen und die Operationen müssen zumindest zum Teil breitere> Operatoren verarbeiten können.ARM Cortex arbeitet mit Thumb-Code, also 16-Bit Befehlsbreite. Viele
8-Bit-Kerne arbeiten ebenfalls mit 16-Bit-Befehlsbreite, haben also
absolut keinen Vorteil.
c-hater schrieb:> Im Vergleich zum 8Bitter eingespart werden kann hingegen nur etwas, wenn> dessen beschränkte Verarbeitungbreite für eine Aufgabe mehr> Instruktionen erfordert als sie bei 32Bit Verarbeitungsbreite nötig> sind.
Und das ist fast immer der Fall. Sobald du einen ADC hast (mindestens 10
Bit Auflösung sind absolut üblich), arbeitest du mit 16-Bit-Werten. Mit
8-Bit-Timern arbeitet auch kein Mensch mehr, selbst bei einfachen PWM
möchte man schon mindestens 10-12-Bit Auflösung haben. Die Anwendungen,
in denen du ausschließlich mit 8 Bit auskommst, kannst du an einer Hand
abzählen.
c-hater schrieb:> Für das> Rechnen mit geringen Genauigkeiten und kleinen Zahlen ebenfalls nicht.
Mir ist ehrlich gesagt noch keine einzige Anwendung untergekommen, bei
der ich mit 8-Bit-Zahlen ausgekommen bin. Und selbst wenn: Eine einzige
simple Multiplikation, und dein 8-Bit-Kern verliert meilenweit gegen
einen modernen Cortex M-Kern.
c-hater schrieb:> Für Stringverarbeitung allenfalls bezüglich der Zeigerarithmetik, aber> selbst die ist meist nur 16Bit breit, nicht 32.
Das ist ein gutes Beispiel, bei dem ein 8-Bitter schon überfordert ist.
Selbst ein 16-Bit-Adressraum ist schon problematisch, aber wer gibt sich
heute schon mit einem Adressraum von 64 KBbyte zufrieden? Bei einem
8-Bit-uC muss man sich schon viele umständliche Tricks einfallen lassen,
um überhaupt einen größeren Adressraum zu ermöglichen.
Und dabei geht es noch nicht mal um Stringoperationen; jeder
Sprungbefehl wird zum "Pain in the ass".
c-hater schrieb:> Im Übrigen gibt es 32Bit-µC seit mindestens 20 Jahren. Sie konnten bis> heute nicht die 8Bitter obsolet machen. Wahrscheinlich deshalb, weil> andere Leute ebenfalls erkannt haben, daß eine höhere> Verarbeitungsbreite nur dann einen Vorteil bringt, wenn man sie auch> tatsächlich benötigt.
Nein, weil bisher einfach der Kern auf dem Silizium eine große Rolle
gespielt hat und die 32-Bit-Prozessoren einfach noch zu teuer waren.
Inzwischen ist aber die Prozesstechnologie fortgeschritten. Die
Strukturbreiten sind so klein geworden, dass der Kern auf dem Silizium
keinen wesentlichen Platz mehr ein nimmt. Entscheidend ist eigentlich
nur noch die Peripherie (die IO-Ports kann man nicht kleiner machen,
solange die IO-Spannung so hoch beibt, Analog-Peripherie kann man auch
nicht beliebig verkleinern) und der Speicher. Letzterer wird aber durch
die 32-Bit-uC für die meisten Anwendungen sogar besser genutzt. Außerdem
gab es noch nicht so hoch optimierte Kerne wie der M0.
8-Bit schrieb:> ARM Cortex arbeitet mit Thumb-Code, also 16-Bit Befehlsbreite. Viele> 8-Bit-Kerne arbeiten ebenfalls mit 16-Bit-Befehlsbreite, haben also> absolut keinen Vorteil.
Thumb ist ein 16-/32-Bit Mischmasch.
BL, DMB, DSB, ISB, MRS, MSR sind z.B. 32 Bit instructions
8-Bit schrieb:> Mit> 8-Bit-Timern arbeitet auch kein Mensch mehr,8-Bit schrieb:> Mir ist ehrlich gesagt noch keine einzige Anwendung untergekommen, bei> der ich mit 8-Bit-Zahlen ausgekommen bin.8-Bit schrieb:> Selbst ein 16-Bit-Adressraum ist schon problematisch, aber wer gibt sich> heute schon mit einem Adressraum von 64 KBbyte zufrieden?
Geht's noch oder willst Du wieder nur provozieren?
Bezüglich der Geschwindigkeit kann ich einen Datenpunkt beisteuern. Ein
interessanter Herausforderer der 8Bit MCUs am unteren Ende ist m.E. die
LPC81X Serie. Über Anwendungen mit >64kb Programmcode muss man nicht
diskutieren, hier sind 8Bit MCUs generell nur bedingt geeignet.
Der kleinste Vertreter ist hier der LPC810 im 8Pin DIP Gehäuse.
Vergleichbar sind ATtiny85 und PIC12F1822.
Rein nach Anzahl der ausführbaren Befehle pro Sekunde ergibt sich bei
Nutzung des Internen RC-Oszillators folgendes Bild:
1
CPU Clock-Configuration MIPS
2
LPC810 30 Mhz, 0 WS ~30
3
Attiny85 16 MHz (PLL) ~16
4
PIC12F1822 32 MHz ~8
Alle drei lassen Portzugriffe in einem Befehlstakt zu, so dass die
Geschwindkeit von Logikanwendungen direkt proportional zu den MIPS
skaliert.
Bei Rechenintensiven Anwendungen profitiert man zusätzlich von den
mächtigeren 32 Bit befehlen, was das Feld noch weiter auseinander
treibt.
c-hater schrieb:> Nein, das liegt in der Natur der Sache. Wenn man die Möglichkeiten der> größeren Verarbeitungsbreite wirklich nutzen will, braucht man mehr> Operationen und die Operationen müssen zumindest zum Teil breitere> Operatoren verarbeiten können. Beides führt unweigerlich dazu, daß sich> die Zahl der Instruktionen pro Byte Codegröße verringern muß. Das ist so> logisch, daß man darüber eigentlich überhaupt nicht diskutieren müßte.
Wäre schön, wenn Du diese Behauptungen auch mit Beispielen begründen
könntest. Die thumb ISA unterstützt bei vielen Befehlen Konstanten, so
dass bei reinem 8 Bit Code häufig die Codedichte identisch ist. Dass die
Befehlslänge von AVR und Thumb identisch ist, wurde im Thread ja schon
häufiger erwähnt.
Davis schrieb im Beitrag #3231502:
> Mach dich nicht noch lächerlicher, als du ohnehin schon bist. Zu deinem> hohlen Geschwafel - ohne Inhalt - auch noch Gegenbeispiele zu fordern -> ist dreist & dämlich. Untermaure erst einmal deine Behauptungen mit> Beispielen, dann sehen wir weiter.
Was hast du denn schon beigetragen, außer dumme Kommentare?
Beispiele, gerne:
LED dimmen: mit 8 Bit nicht sinnvoll, zumindest nicht für
Beleuchtungsanwendungen.
Motorsteuerungen: Mit 8-Bit-PWM undenkbar.
Auch bei einer einfachen Frequenzmessung ist man mit 8 Bit entweder in
der Auflösung oder in der minimal messbaren Frequenz sehr beschränkt.
Einfache Systemtimer kann man mit 8-Bit-Timer natürlich realisieren.
Wenn man aber beispielsweise auf einem mit 16 MHz getakteten Timer einen
100ms-Tick realisieren will, braucht man einen Prescaler von 1/1.6*10^6
Welche Timerperipherie bietet so etwas?
Zu Berechnungen habe ich ja schon ADC genannt. Jede Anwendung, die mit
ADC-Daten rechnet, braucht mehr als 8 Bit. Ansonsten kann ich mir beim
besten Willen keine Berechnung vorstellen, die mit einer 8-Bit-Zahl
bequem durchzuführen ist.
Zum Thema Adressraum: 8 Bit Adressraum - nur 255 adressierbare Adressen
sind ja wohl absoluter Blödsinn, darüber brauchen wir wohl nicht
diskutieren. Und selbst 16 Bit werden heutzutage schnell knapp. Da gehen
schon eine Menge für die Peripherieregister drauf. Mehr als 32kByte
Flash geht nicht. Natürlich reicht das für viele einfache Anwendungen
aus, aber dann ist die Architektur absolut nicht skalierbar. Und das ist
heutzutage eben wichtig. Vor allem wenn man diese Skalierbarkeit
geschenkt bekommt, wie es beim M0 eben der Fall ist.
8-Bit schrieb:> ARM Cortex arbeitet mit Thumb-Code, also 16-Bit Befehlsbreite. Viele> 8-Bit-Kerne arbeiten ebenfalls mit 16-Bit-Befehlsbreite, haben also> absolut keinen Vorteil.
Ein deutlicher Unterschied kann in der Darstellung von Speicheradressen
im Code liegen. Ein Thumb-Prozessor benötigt 6 Bytes nur um eine Adresse
ins Register zu bekommen und 2 weitere Bytes um sie zu verwenden.
8-Bitter benötigen für solche load/store oder kombinierte Operationen
meist nur 3-4 Bytes insgesamt, für eingeschränkten Adressraum oft nur 2
Bytes.
Inwieweit sich dieser Unterschied auswirkt hängt sowohl von der
Optimierung des Compiler ab, als auch vom Programmierstil.
Bei Programmierung auf 8-Bittern ist es ziemlich verbreitet, in hohem
Masse skalare globale Variablen zu verwenden, ohne sie irgendwie
zusammen zu fassen. Solche Variablen werden von 32-Bitter unabhängig
voneinander betrachtet und sorgen dann für ziemlich viele solche teuren
Adressoperationen.
32-Bitter wiederum bevorzugen Speicheradressierung relativ zu einem
Register. Eine Methode, die umgekehrt manchen 8-Bittern Klimmzüge
abverlangt (8051, PIC). Diese Adressierungsmethode kommt
Programmiertechniken entgegen, in denen zusammengehörige Variablen
beispielsweise in C++-Klassen (oder structs) zusammengefasst sind.
Je grösser die Programme werden und weiter weg sich der grösste Teil des
Codes von Bit- und Bytepriemelei hin zu sauber in Abstraktionsebenen
strukturierter Programmierweise entwickelt, desto besser schneiden die
32-Bitter ab.
> Außerdem gab es noch nicht so hoch optimierte Kerne wie der M0.
Optimiert waren sie schon. Aber nicht mit minimalem Chipaufwand als
Designziel, sondern hoher Performance. Einzige Ausnahme: ARM.
Die ersten ARMs sollten nicht wie beispielsweise MIPS die Performance
bei damals mögliche Chiptechnik maximieren, sondern bei signifikant
begrenztem Aufwand (grob vgl. 8086) nur eine adäquate Performance
liefern. Ebendies prädestinierte ARMs schon früh für anspruchsvolle
embedded Systems, obwohl das nicht das ursprüngliche Designziel war.
Negativ an den klassischen ARMs war der noch eher hohe Code-Aufwand. Die
Konurrenz (z.B. Hitachi) bot irgendwann 32-Bit Alternativen mit deutlich
kompakterer Codierung. Worauf ARM mit dem langsameren aber wesentlich
kompakter codierten Thumb-Befehlssatz reagierte.
8-Bit schrieb:> LED dimmen: mit 8 Bit nicht sinnvoll, zumindest nicht für> Beleuchtungsanwendungen.
Arbeitest Du bei Infineon? :)
Viele gängige LED-Controller arbeiten mit 8 Bit (z.B. WS2801X). Gut ist
das allerdings nicht, das muss ich zugeben.
Coder schrieb:> @8-Bit>> Nur weil der Kern 8-Bit ist, heisst es nicht, dass da nur 8-Bit> Peripherals verbaut; siehe AVR.
Natürlich, aber sobald du was mit den Ergebnissen anfangen willst, musst
du auch mit entsprechenden Bitbreiten rechnen. Und dann ist der
8-Bit-Kern nur noch eine Krücke.
A. K. schrieb:> Ein deutlicher Unterschied kann in der Darstellung von Speicheradressen> im Code liegen. Ein Thumb-Prozessor benötigt 6 Bytes nur um eine Adresse> ins Register zu bekommen und 2 weitere Bytes um sie zu verwenden.> 8-Bitter benötigen für solche load/store oder kombinierte Operationen> meist nur 3-4 Bytes insgesamt, für eingeschränkten Adressraum oft nur 2> Bytes.
...
> Inwieweit sich dieser Unterschied auswirkt hängt sowohl von der> Optimierung des Compiler ab, als auch vom Programmierstil.
Eben. In den meisten Fällen ist der zusätzliche Speicherbedarf marginal.
Der Nachteil wird schnell ausgeglichen, wenn der 8 Bitter doch einmal
mit 16 Bit arbeiten muss. Übrigens entsteht der Vorteil der 8 Bitter
nur, weil die meisten Architekturen 16 Bit Arithmetik unterstützen, um
z.B. Postinkrement und Indizierte Addressierung zu ermöglichen. Sauber,
"Orthogonal", ist das nicht...
8-Bit schrieb:> Zum Thema Adressraum: 8 Bit Adressraum - nur 255 adressierbare Adressen> sind ja wohl absoluter Blödsinn, darüber brauchen wir wohl nicht> diskutieren.
Ich beziehe das mal auf den Datenadressraum, da der Codeadressraum mit
der Breite der Datenverarbeitung in keiner Beziehung steht.
Als die 8051er frisch waren war das für den vorgesehen Einsatzzweck
völlig ausreichend. Verglichen mit den Adressierungskrücken in den
Vorgängern 8048 und F8 war das direkt angenehm.
> Mehr als 32kByte Flash geht nicht.
Wenn man sich für getrennte Adressräume entscheidet, dann ist auch eine
8-Bit Architektur vorstellbar, die 4GB Code adressieren kann. AVRs
schaffen im Rahmen des Befehssatzes der normalen Megas immerhin schon
einige MB.
Die Crux ist eher, dass eine Adressraumtrennung die Programmierung
deutlich komplizierter gestaltet. Weil man bei jedem Pointer
berücksichtigen muss, in welchen Adressraum er zeigen soll. Oder gar
Klimmzüge wie managed pointer verwenden muss, bei denen Laufzeitcode sie
differenziert.
Bei sehr kleinen Programmen, evtl sogar in Assembler, spielt das kaum
eine Rolle. Aber bei grösseren Programmen sind getrennte Adressräume
recht unangenehm.
Renesas 16-Bitter M16C(&Co) variieren das, indem sie einen gut
adressierbaren 64K Datenadressraum in einen für Daten weit schlechter
adressierbaren 1MB Gesamtadressraum einbetten. Das erspart managed
pointer, aber nicht den erhöhten Aufwand für den Programmierer.
Wenn jemand die Geschwindigkeit nicht benötigt, ist die Bit-Breite
eigentlich egal. Wichtig ist, dass der Controller das kann, was er soll.
Das heißt insbesondere, er hat die Peripherie, die ich benötige.
Die Argumente klingen ein wenig wie die Angst-Optimierungen bei der
C-Programmierung. Es könnte zu langsam sein...
A. K. schrieb:> Ich beziehe das mal auf den Datenadressraum, da der Codeadressraum mit> der Breite der Datenverarbeitung in keiner Beziehung steht.
Ach nein? Schonmal einen Sprungbefehl ausgeführt? Ja, ich weiß, es gibt
auch relative Sprünge, aber das ist ja auch nur eine Krücke.
A. K. schrieb:> Als die 8051er frisch waren war das für den vorgesehen Einsatzzweck> völlig ausreichend. Verglichen mit den Adressierungskrücken in den> Vorgängern 8048 und F8 war das direkt angenehm.
Seit der Einführung des 8051 sind schon ein paar Jährchen vergangen, die
Anforderungen und Einsatzwecke haben sich ein ganz wenig
weiterentwickelt. Ewig Gestrige gibt es natürlich immer.
A. K. schrieb:> Wenn man sich für getrennte Adressräume entscheidet, dann ist auch eine> 8-Bit Architektur vorstellbar, die 4GB Code adressieren kann. AVRs> schaffen im Rahmen des Befehssatzes der normalen Megas immerhin schon> einige MB.
Denkbar ist vieles. Aber inwiefern hat man dann noch einen Vorteil in
Bezug auf Ausführungsgeschwindigkeit und Codegröße?
A. K. schrieb:> Die Crux ist eher, dass eine Adressraumtrennung die Programmierung> deutlich komplizierter gestaltet. Weil man bei jedem Pointer> berücksichtigen muss, in welchen Adressraum er zeigen soll.
Genau darum geht es mir doch.
Coder schrieb:> Wenn jemand die Geschwindigkeit nicht benötigt, ist die Bit-Breite> eigentlich egal. Wichtig ist, dass der Controller das kann, was er soll.> Das heißt insbesondere, er hat die Peripherie, die ich benötige.
Und er muss ein Kostenziel erreichen. In dieser Hinsicht sind Cortex M0
ganz vorne dabei.
Tim . schrieb:> Sauber, "Orthogonal", ist das nicht...
Allerdings sind das Kriterien, die einen C-Compiler nicht wirklich
interessieren. Der hat nur gewisse Minimalansprüche für effiziente
Umsetzung von Code. Wie es beispielsweise die erwähnte Adressierung
relativ zu einem Register darstellt, ohne die sich ein Daten-Stack
schlecht implementieren lässt. Auch vorzeichenbehaftete Vergleiche sind
ganz nützlich (fehlen in PIC, 8051).
Fehlende Orthogonalität stört eher den Assembler-Programmierer, der
jedesmal überlegen muss, ob ADD nun anders adressieren kann als EOR. Den
Compiler-Autor interessiert das nur ein einziges Mal.
@8-Bit
Bedauerlicherweise ist die Welt nicht so einfach. Schau nicht nur auf
den Silizium-Preis: I.d.R. reden wir von wenigen Cent!?! Eine bestehende
Infrastruktur portiert man nicht mal so eben. Und das kann richtig ins
Geld gehen, insbesondere bei Software nach EN61508.
Nicht jeder arbeitet in einer Firma, die Millionen von MCU verbaut.
Coder schrieb:> Bedauerlicherweise ist die Welt nicht so einfach. Schau nicht nur auf> den Silizium-Preis: I.d.R. reden wir von wenigen Cent!?! Eine bestehende> Infrastruktur portiert man nicht mal so eben. Und das kann richtig ins> Geld gehen, insbesondere bei Software nach EN61508.
Deshalb wird es auch noch lange 8-Bit-uC geben. Das habe ich aber weiter
oben schon geschrieben. Ich rede ganz explizit von einem Trend bei
Neuentwicklungen.
8-Bit schrieb:> Ach nein? Schonmal einen Sprungbefehl ausgeführt? Ja, ich weiß, es gibt> auch relative Sprünge, aber das ist ja auch nur eine Krücke.
Die in Befehlen codierte Adressbreite für Code ist von der Adressbreite
eines getrennten Datenadressraums völlig unabhängig. Wie schon gesagt,
die ganz normalen AVRs können von der Codierung her 8MB Code
adressieren.
Einzig bei indirekten Sprüngen spielt das eine Rolle.
> Denkbar ist vieles. Aber inwiefern hat man dann noch einen Vorteil in> Bezug auf Ausführungsgeschwindigkeit und Codegröße?
Keine. Im Gegenteil. Der einzige Vorteil dieser Skalierbarkeit besteht
darin, im gleichen Entwicklungssystem mit der bestehenden Erfahrung
bleiben zu können.
Und das gilt in beiden Richtungen. 8-Bitter mit 512KB Code sind oft
ebenso ausserhalb ihren optimalen Einsatzspektrums wie 32-Bitter mit 4KB
Flash und 8 Pins. Die existieren deshalb, damit man ein grosses Spektrum
abdecken kann, ohne Werkzeuge und Erfahrung auswechseln zu müssen.
A. K. schrieb:> Und das gilt in beiden Richtungen. 8-Bitter mit 512KB Code sind oft> ebenso ausserhalb ihren optimalen Einsatzspektrums wie 32-Bitter mit 4KB> Flash und 8 Pins. Die existieren deshalb, damit man ein grosses Spektrum> abdecken kann, ohne Werkzeuge und Erfahrung auswechseln zu müssen.
Ey - also ich finde den LPC810 toll. Nur Schade, dass die von NXP
mitgegebene CMSIS Implementierung erst einmal den halben Flash-Speicher
vollmüllt.
A. K. schrieb:> Die in Befehlen codierte Adressbreite für Code ist von der Adressbreite> eines getrennten Datenadressraums völlig unabhängig. Wie schon gesagt,> die ganz normalen AVRs können von der Codierung her 8MB Code> adressieren.
Was sich aber immer noch auf die Codedichte auswirkt.
A. K. schrieb:> Und das gilt in beiden Richtungen. 8-Bitter mit 512KB Code sind oft> ebenso ausserhalb ihren optimalen Einsatzspektrums wie 32-Bitter mit 4KB> Flash und 8 Pins. Die existieren deshalb, damit man ein grosses Spektrum> abdecken kann, ohne Werkzeuge und Erfahrung auswechseln zu müssen.
Mit dem Cortex M0 wurde das sinnvolle Einsatzspektrum so verschoben,
dass sich eben letztere auch kostentechnisch besser als vergleichbare
8-Bitter darstellen und deshalb für Neuentwicklungen quasi keine
Nachteile mehr bieten.
8-Bit schrieb:> Mit dem Cortex M0 wurde das sinnvolle Einsatzspektrum so verschoben,> dass sich eben letztere auch kostentechnisch besser als vergleichbare> 8-Bitter darstellen und deshalb für Neuentwicklungen quasi keine> Nachteile mehr bieten.
Rein technisch gesehen ist das richtig. Wenn allerdings diese
Neuentwicklung eines Produktes von jemandem durchgeführt werden muss,
der seine 8-Bitter in- und auswendig kennt, aber ausser seinem eigenen
noch nie einen Cortex dressiert hat, dann wird die Entscheidung u.U.
nicht auf technischer Grundlage getroffen, sondern unter
Berücksichtigung der zu investierenden Zeit.
Klar, irgendwann ist es Zeit, mal neue Wege zu gehen. Als strategische
Entscheidung. Nur ist eben die effiziente Abdeckung der 32-Bitter nach
ganz unten noch ziemlich frisch.
8-Bit schrieb:> Coder schrieb:>> Bedauerlicherweise ist die Welt nicht so einfach. Schau nicht nur auf>> den Silizium-Preis: I.d.R. reden wir von wenigen Cent!?! Eine bestehende>> Infrastruktur portiert man nicht mal so eben. Und das kann richtig ins>> Geld gehen, insbesondere bei Software nach EN61508.>> Deshalb wird es auch noch lange 8-Bit-uC geben. Das habe ich aber weiter> oben schon geschrieben. Ich rede ganz explizit von einem Trend bei> Neuentwicklungen.
? meine Erfahrung im Berufsleben sagt. Werde schnell und kostengünstig
fertig. Das gilt auch bei Neuentwicklung. "Alt" bewährtes und
vorraussichtlich viele tausende Zeilen "fehlerfreierer" :-) Code sind
unschlagbar günstig.
Man probiert im kleinem Rahmen natürlich immer mal etwas neues aus. By
the way wechselt man von NXP Cortex M0+ zu einem Kinetis M0+ ist es ein
fast neuer Controller; der Kern identisch, die Peripherie anders....
A. K. schrieb:> Nur ist eben die effiziente Abdeckung der 32-Bitter nach> ganz unten noch ziemlich frisch.
PS: Erste Ansätze in Form der SO-20 (SO-24?) CM3 Controller von Luminary
Micro waren nicht wirklich der Stein der Weisen. Deren Vorteil lag
wirklich nur in der Rechenbreite, ansonsten waren die in so ziemlich
jeder Hinsicht schlechter als beispielsweise ein Mega8.
Coder schrieb:> Man probiert im kleinem Rahmen natürlich immer mal etwas neues aus. By> the way wechselt man von NXP Cortex M0+ zu einem Kinetis M0+ ist es ein> fast neuer Controller; der Kern identisch, die Peripherie anders....
Aber das Entwicklungssystem bleibt.
8-Bit schrieb:> Was sich aber immer noch auf die Codedichte auswirkt.
Bei AVRs liegt die Grenze bei 8KB Code. Alles darüber unterscheidet sich
in der Codedichte nicht, aufgrund der Entscheidung für eine
Befehlscodierung in 16 Bits. Auch die PIC18 codieren 20 Bits
Zieladresse, ausreichend für 2MB Code.
A. K. schrieb:> Coder schrieb:>> Man probiert im kleinem Rahmen natürlich immer mal etwas neues aus. By>> the way wechselt man von NXP Cortex M0+ zu einem Kinetis M0+ ist es ein>> fast neuer Controller; der Kern identisch, die Peripherie anders....>> Aber das Entwicklungssystem bleibt.
Ja richtig. Sag das mal deinem Firmware-Entwickler: Du darfst alle
Treiber neu schreiben, alle Tests neumachen machen usw. aber das
Entwicklungssystem bleibt ;-)
A. K. schrieb:> Coder schrieb:>> Man probiert im kleinem Rahmen natürlich immer mal etwas neues aus. By>> the way wechselt man von NXP Cortex M0+ zu einem Kinetis M0+ ist es ein>> fast neuer Controller; der Kern identisch, die Peripherie anders....>> Aber das Entwicklungssystem bleibt.
Eigentlich ist es doch egal, ob GCC AVR- oder ARM-Code erzeugt?
Ein Problem ist aber, dass sich nicht nur die Peripherie von Controller
zu Controller deutlich ändert, sondern man bei den Cortex-Controllern
zusätzlich auch noch auf deutlich mehr Peripherie angewiesen ist. Durch
die hohen Core-Clockraten werden Zusatzmaßnehmen wir Wait-States und
Caches notwendig. Diese mach die Ausführungszeiten häufig
undeterministisch. Begegnet wird diesem Probleme mit neuen, sehr
komplexen, Timern und Features wie DMA. Bei den kleineren
Cortex-Controllern ist es fast schon Glückssache, ob die Peripherie zur
Anwendung passt.
Tim . schrieb:> Eigentlich ist es doch egal, ob GCC AVR- oder ARM-Code erzeugt?
Nein. Allein schon weil du dich beim AVR mit den erwähnten
Fisematentechen rund um die Adressräume rumärgern darfst.
Ausserdem ist der ganze Komplex des Debuggings nicht von der Hardware zu
trennen. Zudem beziehe ich mich nicht unmittelbar auf GCC.
Schon mal einen GCC für 8-Bit PICs gesehen? ;-)
> Bei den kleineren> Cortex-Controllern ist es fast schon Glückssache, ob die Peripherie zur> Anwendung passt.
Das gilt für alle solchen Auswahlentscheidungen. Egal welcher Core drin
steckt. Wer bestimmte Periphierieeigenschaften benötigt, der kann beim
Wechsel zu egal welchem Chip eines anderen Herstellers Probleme kriegen.
A. K. schrieb:> Und das gilt in beiden Richtungen. 8-Bitter mit 512KB Code sind oft> ebenso ausserhalb ihren optimalen Einsatzspektrums wie 32-Bitter mit 4KB> Flash und 8 Pins.
Meine volle Zustimmung dazu!
8-Bit schrieb:> Du darfst gerne Gegenbeispiele nennen.
8-Bit PWM reicht mir zur Helligkeitssteuerung von 7-Segm.-Anzeigen, für
die Hintergrundbeleuchtung von TFTs und auch für die Steuerung von
DC-Motoren.
10-Bit ADC-Werte kann man bequem und schnell genug mit 2 x 8-Bit
verarbeiten. Die Bremse dabei ist meist der ADC selbst.
Vielfach lasse ich auch linksbündig wandeln und nehme nur das obere
Byte. Zum Einlesen von Potis reicht das in der Regel aus.
Wenn dann 'hochpräzise' 24-Bit ADCs verwendet werden, sind diese so
lahm, dass auch hier die 8-bittige Weiterverarbeitung nicht als Bremse
wirkt.
Mehr darf ich nicht sagen. NDA - Du weißt :-)
@8-Bit
An Deiner Stelle würde ich z.B. vielmehr auf die möglichen
Interruptprioritäten der Cortex-Mx verweisen. Hier ist ein 8-Bit AVR
klar unterlegen, was aber nicht an seiner internen Busbreite liegt.
A. K. schrieb:> Rein technisch gesehen ist das richtig. Wenn allerdings diese> Neuentwicklung eines Produktes von jemandem durchgeführt werden muss,> der seine 8-Bitter in- und auswendig kennt, aber ausser seinem eigenen> noch nie einen Cortex dressiert hat, dann wird die Entscheidung u.U.> nicht auf technischer Grundlage getroffen, sondern unter> Berücksichtigung der zu investierenden Zeit.
Niemand behauptet, dass dieser Trend von heute auf morgen umgesetzt
wird. Das ist natürlich ein jahrzehntelanger Prozess. Der neue Cortex M0
von Atmel ist ja erst einer der ersten Hinweise auf diese Entwicklung.
Außerdem: Häufig ist alter Code eben nicht so fehlerfrei und arbeitsarm,
wie du es gerade beschreibst, sondern eine schlecht wartbare Altlast.
Häufig noch in Assembler geschrieben, weil man ja aufgrund der
ineffizienten Architektur jedes Byte und jeden Prozessorzyklus
ausquetschen musste. Da spart es enorm viel Zeit, wenn man auf eine
moderne, hoch skalierbare Architektur umsteigen kann.
A. K. schrieb:> Bei AVRs liegt die Grenze bei 8KB Code. Alles darüber unterscheidet sich> in der Codedichte nicht, aufgrund der Entscheidung für eine> Befehlscodierung in 16 Bits. Auch die PIC18 codieren 20 Bits> Zieladresse, ausreichend für 2MB Code.
Ja, alles schön und gut. Ich erinnere dich mal an den Anstoß der
Diskussion: Dort wurde behauptet, dass 8-Bitter viel effizienter sind
und viel kleineren Code produzieren.
Im Moment lieferst du nur Argumente dafür, mit welchen Krücken
8-Bit-Architekturen leben müssen, um noch halbwegs effizienten Code
ausspucken zu können.
M. N. schrieb:> 10-Bit ADC-Werte kann man bequem und schnell genug mit 2 x 8-Bit> verarbeiten. Die Bremse dabei ist meist der ADC selbst.> Vielfach lasse ich auch linksbündig wandeln und nehme nur das obere> Byte. Zum Einlesen von Potis reicht das in der Regel aus.> Wenn dann 'hochpräzise' 24-Bit ADCs verwendet werden, sind diese so> lahm, dass auch hier die 8-bittige Weiterverarbeitung nicht als Bremse> wirkt.
Und welchen enormen Vorteil hat man da noch bei einem 8-Bitter,w enn man
ständig mit solchen Krücken herumwerkeln muss?
8-Bit schrieb:> Außerdem: Häufig ist alter Code eben nicht so fehlerfrei und arbeitsarm,> wie du es gerade beschreibst, sondern eine schlecht wartbare Altlast.
Entschuldigung, das war nicht auf dich, sondern auf folgenden Beitrag
bezogen:
Coder schrieb:> ? meine Erfahrung im Berufsleben sagt. Werde schnell und kostengünstig> fertig. Das gilt auch bei Neuentwicklung. "Alt" bewährtes und> vorraussichtlich viele tausende Zeilen "fehlerfreierer" :-) Code sind> unschlagbar günstig.
M. N. schrieb:> 8-Bit PWM reicht mir zur Helligkeitssteuerung von 7-Segm.-Anzeigen, für> die Hintergrundbeleuchtung von TFTs und auch für die Steuerung von> DC-Motoren.
Hintergrundbeleuchtung: Ja gut, wenn man keine Kennlinie braucht.
Ansonsten sieht man schon ganz alt aus.
Und DC-Motoren sind ja fast schon genauso out wie 8-Bit-Prozessoren.
8-Bit schrieb:> Da spart es enorm viel Zeit, wenn man auf eine> moderne, hoch skalierbare Architektur umsteigen kann.
Wie oft hast du schon erlebt, dass ein gut eingeführtes Produkt von
Grund auf neu gebaut wurde, statt es inkrementell weiter zu entwickeln?
Also in kommerziellem Rahmen natürlich. Nichtkommerziell ist das recht
verbreitet.
Natürlich gibt es das. Nur muss man damit rechnen, dass die Kunden erst
einmal die 2. oder 3. Revision davon abwarten, um nicht Betatester
spielen zu müssen. Sollen das doch die anderen machen.
Oft läuft es darauf hinaus, auf einige Jahre beide Produkte parallel
pflegen zu müssen. Bis das neue so weit ist, das alte wirklich
problemarm ersetzen zu können.
A. K. schrieb:> Wie oft hast du schon erlebt, dass ein gut eingeführtes Produkt von> Grund auf neu gebaut wurde, statt es inkrementell weiter zu entwickeln?> Also in kommerziellem Rahmen natürlich. Nichtkommerziell ist das recht> verbreitet.
Schon ein paar Mal, besonders natürlich wenn der Funktionsumfang gering
ist und der alte Code schlecht wartbar war. Aber auch bei größeren
Projekten habe ich das schon gesehen. Dazu muss man sagen, dass eine von
Anfang an vernünftig gestaltete Plattform leicht auf eine günstigere
oder leistungsfähigere Architektur portiert werden kann und es dann gar
nicht mehr notwendig ist, etwas von Grund auf neu zu entwickeln.
Wenn die 8-bit so langsam und ineffizient sind, frage ich mich, wie man
denn jahrezehnte lang mit diesen controllertypen erfolgreich arbeiten
konnte? Mein Arbeitgeber muss mich für die letzten 8 Jahre ja abmahnen
:-)
Jede Entwicklungsabteilung macht seine eigene Rechnung auf. Und da kann
man nicht pauschal sagen, die 32-Bitter kommen günstiger; es zählen noch
eine Menge andere Faktoren.
Coder schrieb:> Wenn die 8-bit so langsam und ineffizient sind, frage ich mich, wie man> denn jahrezehnte lang mit diesen controllertypen erfolgreich arbeiten> konnte? Mein Arbeitgeber muss mich für die letzten 8 Jahre ja abmahnen> :-)
Ganz einfach: Weil sie bis vor 1-3 Jahren noch die günstigest
Alternative waren und tatsächlich für die meisten Anwendungen - wenn
auch oft mit Kompromissen im Design ausgereicht haben.
Coder schrieb:> Jede Entwicklungsabteilung macht seine eigene Rechnung auf. Und da kann> man nicht pauschal sagen, die 32-Bitter kommen günstiger; es zählen noch> eine Menge andere Faktoren.
Richtig, und deshalb geht der Trend in Richtung 32 Bit. In Bezug auf
Bauteilkosten sind sie inzwischen ganz vorne dabei. Sie ermöglichen
außerdem besser skalierbaren und wartbaren Code. Das alles spricht sehr
stark dafür, dass sich 32-Bit-uC durchsetzen werden und die 8-Bitter in
immer mehr Anwendungen ersetzen werden. Es wird ohne Zweifel in den
nächsten Jahren immer noch viele Anwendungen für 8-Bit-Architekturen
geben.
8-Bit schrieb:>> 10-Bit ADC-Werte kann man bequem und schnell genug mit 2 x 8-Bit>> verarbeiten. Die Bremse dabei ist meist der ADC selbst.>> Vielfach lasse ich auch linksbündig wandeln und nehme nur das obere>> Byte. Zum Einlesen von Potis reicht das in der Regel aus.>> Wenn dann 'hochpräzise' 24-Bit ADCs verwendet werden, sind diese so>> lahm, dass auch hier die 8-bittige Weiterverarbeitung nicht als Bremse>> wirkt.>> Und welchen enormen Vorteil hat man da noch bei einem 8-Bitter,w enn man> ständig mit solchen Krücken herumwerkeln muss?
Seit Anfang des Jahres nehme ich einen C-Compiler, der das für mich
erledigt.
8-Bit schrieb:>> 8-Bit PWM reicht mir zur Helligkeitssteuerung von 7-Segm.-Anzeigen, für>> die Hintergrundbeleuchtung von TFTs und auch für die Steuerung von>> DC-Motoren.>> Hintergrundbeleuchtung: Ja gut, wenn man keine Kennlinie braucht.> Ansonsten sieht man schon ganz alt aus.
Du kaufst immer nur TFTs mit Kennlinie der Hintergrundbeleuchtung?
Alles klar!
> Und DC-Motoren sind ja fast schon genauso out wie 8-Bit-Prozessoren.
Nomen est omen - bei Deinem Auto ist der Scheibenwischermotor ein
Scheibenläufer und die Seitenscheiben werden mit BLDC-Motoren bewegt?
Alles klar!
Nur mal so am Rande:
Wenn Du an 10000 Controller 600€ sparst, weil dein M0 ein bissl
günstiger aber für 100K€ Software neu entwickelst (Zulassungen usw.!!)
ist deine rechnung nicht gut. So viel zu den anderen Faktoren, die du
mir im Munde umdrehst. Sorry.
Nicht jede Firma hat Multimillionen Stückzahlen!
Als hobbyst ist das andere sache..
Tim . schrieb:> Ich verstehe die Diskussion gerade nicht. Atmel vs. Atmel? Natürlich ist> Microchip besser!
Zumindest muss man sich bei denen keine Gedanken machen, ob man nun
auf ARM umsteigt. :-))
Jörg Wunsch schrieb:> Zumindest muss man sich bei denen keine Gedanken machen, ob man nun> auf ARM umsteigt. :-))
Was die Argumentation in diesem Thread angeht ist MIPS doch auch nur ein
anders lackierter ARM. Also wenn schon dann sollten es MCUAs Lieblinge
sein. Aber aus Atmel vs Renesas wird leider kein so schöner Zank wie bei
Mircochip. ;-)
M. N. schrieb:> Seit Anfang des Jahres nehme ich einen C-Compiler, der das für mich> erledigt.
Natürlich, aber der Ausgangspunkt der ganzen Diskussion war doch die
Behauptung, dass 8-bitter soooo viel effizienteren Code produzieren.
Also noch einmal konkret die Frage: Welchen erheblichen technischen
Vorteil haben jetzt die 8-bitter wirklich gegenüber einem Cortex-M0?
Coder schrieb:> Wenn Du an 10000 Controller 600€ sparst, weil dein M0 ein bissl> günstiger aber für 100K€ Software neu entwickelst (Zulassungen usw.!!)> ist deine rechnung nicht gut. So viel zu den anderen Faktoren, die du> mir im Munde umdrehst. Sorry.
Richtig, deshalb legt man ja besonderen Wert auf Wartbarkeit und
Skalierbarkeit. Und das geht mit den moderneren 32-Bit-Architekturen
einfach besser, und spart deshalb - vernünftig eingesetzt - richtig viel
Geld. Gerade bei kleineren und mittleren Stückzahlen. Natürlich ist es
nicht sinnvoll, auf Teufel komm raus umzusteigen, wenn man schon eine
fertige Codebasis für eine andere Architektur hat. Aber das habe ich
auch nie behauptet.
Und noch einmal, weil es hier wohl keiner kapiert: Ich behaupte nicht,
dass jetzt sofort jeder auf ARM umsteigen muss und dass es in jedem Fall
sinnvoll ist. Es geht um einen allgemeinen Trend und einen Prozess, der
sich über Jahrzehnte hin ziehen wird.
8-Bit schrieb:> Ich behaupte nicht,> dass jetzt sofort jeder auf ARM umsteigen muss und dass es in jedem Fall> sinnvoll ist. Es geht um einen allgemeinen Trend und einen Prozess, der> sich über Jahrzehnte hin ziehen wird.
Da sind wir uns ja endlich einig und kein Grund mehr, sich mit Händen
und Füßen dagegen zu wehren: die 8-Bitter werden uns überleben.
M. N. schrieb:> Da sind wir uns ja endlich einig und kein Grund mehr, sich mit Händen> und Füßen dagegen zu wehren: die 8-Bitter werden uns überleben.
Natürlich werden ein paar Exoten überleben, aber auf breiter Linie
werden sie durch die 32-bitter ersetzt.
>Die neuen 32-Bit-uC werden in einer viel moderneren Technologie>gefertigt. Somit sind breitere Busse überhaupt kein Thema.
Wenn die Busse schon "so breit" sind, warum kann ein ARM dann nicht
statt seinem Flaschenhals cont. (in 4 oder 8 Bit incr.) von 8..128 Bits
OPCode einlesen?
>Ich hab hier nen 64-Bitter Baujahr 1992, zugegeben es ist kein µC>sondern eine "normale" MIPS R4k4, aber damals(TM) gab's keinen>Unterschied zwischen µC und normaler CPU.
Is ja interessant.
Die Leute in '92 kannten also keinen Unterschied zwischen einem HC11- /
8051-uC (mit interner Periferie) und verschiedenen Derivaten davon, zu
einer PC-CPU (ohne spez Periferie)?
(Und auch von MIPS gab es damals schon Controller)
>aber wer gibt sich>heute schon mit einem Adressraum von 64 KBbyte zufrieden?
Jede Menge Leute.
Die weit überwiegende Anzahl an Controllern hat deutlich < 64 kB RAM /
ROM (bzw Flash).
> LED dimmen: mit 8 Bit nicht sinnvoll, zumindest nicht für> Beleuchtungsanwendungen.
Für das kleine Zeugs würde wohl (oft) ein 4 Biter reichen
>Alle drei lassen Portzugriffe in einem Befehlstakt zu,
in einem Befehlstakt ????????
ARM hat nichtmal ein Befehl, um ein Bit (oder mehr) zu setzen (*),
geschweige denn, das mit einem Takt zu machen!
((*) nat. angewandt auf MEM oder IO)
Selbst ein PIC (aus den 70ern !) kann das besser.
>Ey - also ich finde den LPC810 toll.
dito
>Dass die Befehlslänge von AVR und Thumb identisch ist...
heisst aber noch lange nicht, dass deshalb auch Befehle identisch sind.
>Die Crux ist eher, dass eine Adressraumtrennung die Programmierung>deutlich komplizierter gestaltet. Weil man bei jedem Pointer>berücksichtigen muss, in welchen Adressraum er zeigen soll.
Nö. Adressraumtrennung hat man fakt. immer, denn Daten sind was anderes
als Code (selbst wenn log. gesehen diese Bereiche sich überlappen
könnten), also muss man auch immer die Richtigkeit des Pointers (sofern
man den überhaupt braucht) berücksichtigen.
Wenn Busse (Code/Daten) sich logisch gesehen überlappen können, heisst
das noch lange nicht, dass sie sich physikalsich gesehen überlappen.
Somit gibt es die typische (uralt) Trennung von Neumann / Harvard nicht
mehr.
>Renesas 16-Bitter M16C(&Co) variieren das, indem sie einen gut>adressierbaren 64K Datenadressraum in einen für Daten weit schlechter>adressierbaren 1MB Gesamtadressraum einbetten.
Nö. M16C(&Co) haben grösseren Datenadressraum.
(Die grösseren der Reihe haben auch mehrere 32 Bit Reg. Insbes. sind
deren Adressierungs-Möglichkeiten zigmal besser als bei ARM. (was aber
nicht heissen soll, das die für jegliche Anwendung am besten geeignet
sind, denn oft sind schlichtweg die Kosten entscheidend))
MCUA schrieb:>>Ich hab hier nen 64-Bitter Baujahr 1992, zugegeben es ist kein µC>>sondern eine "normale" MIPS R4k4, aber damals(TM) gab's keinen>>Unterschied zwischen µC und normaler CPU.> Is ja interessant.> Die Leute in '92 kannten also keinen Unterschied zwischen einem HC11- /> 8051-uC (mit interner Periferie) und verschiedenen Derivaten davon, zu> einer PC-CPU (ohne spez Periferie)?> (Und auch von MIPS gab es damals schon Controller)
Die definition von µC war damals eine andere als heute. Jede CPU die in
einem Chip geliefert wurde war µ und wenn sie in irgendeiner Steuerung
verbaut wurde war sie Controller. That's it.
>Es gibt nicht mal einen Abschnitt wo die maximal zulässigen>Ströme drin stehen.
Current out of a GND pin 50mA , nix 400mA.
>Die definition von µC war damals eine andere als heute.
Nö.