• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Prozessorgeflüster

chrysophylax

Geomaster
Die Frage, wie das mit den AVRs, den PICs, den Zypressen oder den MSPs ist kommt ja immer mal wieder - und allen Anhängern egal welcher brianistischen Partei tut es wahrscheinlich gut, gelegentlich mal etwas über den Tellerrand zu schauen, was sich bei den anderen so getan hat.

Ich mach mal ein neues Thema auf - mit dem Morse-Thread hat das glaub ich nicht mehr viel zu tun und da regelmässig wieder kommt, kann man vielleicht auch diesen Thread irgendwann mal wieder ausgraben.

Dabei werde ich versuchen, möglichst nicht in Schwanzlängenvergleiche auszuarten "mein Prozessor ist besser als deiner", die Zeit dürfte inzwischen gezeigt haben dass es für Produkte von jedem dieser µC-Herstellers jeweils einen Markt gibt. Die dürften sich zwar deutlich unterscheiden, aber es gibt für sie alle einen Markt.

Um zumindest noch kurz beim Schwanzlängenvergleich zu bleiben: Die Frage, welcher Prozessor besser ist, ist genauso sinnvoll und einfach zu beantworten wie die Frage, ob ein BMW besser ist als ein Daimler. Die einfache Antwort: Sie taugen beide nix, wenn man damit in den Wald Holz machen fahren will. Jedes Produkt hat eine bevorzugte Ziel-Anwendergruppe und ist für andere Anwendungen mal mehr, mal weniger gut geeignet.

Eine der Fragen, die immer mal wieder aufgeworfen wird, ist folgende:
stonewood schrieb:
Der Tiny13 mag ein wenig anders programmiert werden als der Tiny45, da kann man also nicht 1:1 das gleiche Programm verwenden. Das gilt für einen großteil der Tiny/Mega-Serie, jeder hat da so seine eigenheiten.

Ach ja, wie sieht das eigentlich bei den PICs damit aus? Sind die nicht auch alle mehr oder weniger unterschiedlich?
Ähnlich wie bei den AVRs gibt es da auch diverse Familien, innerhalb derer es es jeweils ähnliche Derivate mit unterschiedlichem Speicher- oder Peripherieausbau gibt. Innerhalb der 8bittigen CPUs gibt es da die Familien PIC10, PIC12, PIC16 und PIC18.

8bitOverviewArchGraph_Large.jpg

Anhand des Bildchens erkennt man ganz hübsch, wie sich die Teile unterscheiden - grob vereinfacht in der Anzahl Beine und dem Speicherausbau als Kernkriterien. Da dran hängen dann jeweils noch RAM-Ausbau und die Menge an Peripheriebausteinen, die mit integriert sind.

Eine historisch gewachsene Besonderheit der PICs im Vergleich zu den Atmels ist, dass der Hersteller irgendwo in seinen Vorfahren einen Schotten oder einen Schwaben gehabt haben muss, die haben tatsächlich 12 und 14 Bit breite Befehlsworte um zu Zeiten, als es richtig Geld gekostet hat Silizium-Fläche im Flash zu sparen. Der Anwender merkt davon so gut wie gar nichts, weil einen die Werkzeugkette davor beschützt, sich mit 12 oder 14 Bit breiten Werten rumschlagen zu müssen, aber eine leere Flash-Zelle meines Leibundmagen-Prozessors 16F690 hat z.B. den Leerinhalt 0x3fff im Speicher des Programmiergeräts, weil es Bit14 und Bit15 einfach nicht gibt. Die Atmels waren da von vorneherein etwas großzügiger, haben gleich die vollen 16Bit Befehlsbreite eingeführt und dafür einen in einigen Teilen deutlich dankbareren Befehlssatz als die PICs, brauchen dafür aber auch mehr Siliziumfläche für die gleiche Anzahl Befehlsworte.

Selbst familienübergreifend ist gängige Peripherie, die überall drin ist übrigens überwiegend identisch enthalten, den Timer0 kann man in egal welchem PIC identisch benutzen und damit Quellcodes übernehmen.

Wenn man sich ein bisschen Mühe gibt, dann kann man einunddenselben Quellcode durch einbinden unterschiedlicher prozessorspezifischer Include-Dateien (in denen z.B. Registernamen stehen) auf diversen Prozessoren nutzen und ihn unverändert einfach nochmal mit einem anderen Include durch den Compiler jagen. Das hat natürlich Grenzen, wo sich Funktionalität ändert, aber im Großen und Ganzen ist man da doch sehr stringent.

Auch die Pinkompatibilität zwischen einzelnen Mitgliedern einer Familie wird gewaltsam beibehalten, so dass man einen 8beinigen PIC ins gleiche Programmiergerät stecken kann wie einen 40beinigen PIC, weil die Programmierpins an der gleichen Stelle sind. Ziemlich angenehm.

Wenn man die "elektrische" Programmiermethode mit einem AVR vergleicht, dann gibt es bei Microchip nur einen einzigen Modus, der seriell/ISP ist und einen ähnlichen Mechanismus nutzt wie der "HV-Modus" beim Atmel-Programmieren. Das macht die Programmiergeräte aufwendiger, aber man kann sich keine Bausteine "verfusen" weil man egal was man reinprogrammiert hat durch das einmalige Anlegen der hohen Spannung das Teil immer in einen definierten und zugänglichen Modus bringt.

Das bringt uns zur nächsten Frage, der der Entwicklungswerkzeuge:
jennergruhle schrieb:
Wie sieht's da eigentlich mit vernünftigen Compilern aus? Ich hatte mal einen µC-Podcast gehört (Chaosradio Express 67) wo der Interviewte meinte, nur für Atmel-µC gäbe es vernünftige freie Compiler und Libraries, und Microchip wolle alles zu Apothekerpreisen einzeln verkaufen. Hat sich das mittlerweile geändert? Nicht dass das meine Entscheidung für Atmel beeinflussen würde, aber falls mal jemand fragt...
Gute Frage. Ganz ehrlich: Nicht ganz mein Gebiet. Ich programmiere seit etwas über 20 Jahren PICs, und bin bisher mit der IDE von Microchip, die einen supergeilen Assembler und Simulator bietet selbst bei grösseren Projekten einfach nur glücklich und zufrieden. Im Laufe der Jahre hat sich natürlich eine Art "Bibliothek" von Funktionen angesammelt, die man immer mal wieder braucht, und die sich einfach per include einbinden lässt, von daher muss ich auch das Rad nicht immer neu erfinden. Da fast alles, was ich programmiere so extrem hardwarenah ist, dass ich so oder so ständig Taktzyklen von a nach b von Hand auszähle kann ich es auch gleich in Assembler machen. Zum debuggen ist der Simulator bei grösseren Projekten perfekt geeignet, der ist so gut mit Stimuli-Dateien fütterbar, dass ich bisher noch nichtmal einen In-Circuit-Emulator vermisst habe.

Für die "grossen" 16bit-Prozessoren (PIC18 aufwärts) und DSPs bietet Microchip selbst was an, inzwischen auch bei Nachweis kostenlos Lehr- und Studentenversionen. Ansonsten fangen die bei 500$ an.

Für die "kleineren" 8bitter wird üblicherweise der HI-TECH C-Compiler empfohlen, den gibts in etwas reduziertem Funktionsumfang (allerdings KEINE Speicher-Restriktionen) kostenlos und ansonsten je nach Ausbau auch ab 500$. Der Herr vom aatis den ich im Rahmen meine Suche nach PIC-Reaktivlichtern fand nutzt z.B. diese kostenlose Lite-Version schon seit Jahren und ist damit recht zufrieden.

Im Heimeinsatz habe ich "sowas wie einen MP3-Player" namens SliMP3 (allerdings aus Zeiten als das noch eine eigene Firma war und sie sich noch nicht an Logitech verkauft und ihre Firmenphilosophie verraten hatten), da ist ein PIC16 mit einem extern angebundenen Ethernet-Phy drin und einem komplett Freeware TCP/IP-Stack, von daher vermute ich mal dass es schon seit mehreren Jahren auch eine klassische linux-basierte gcc-Toolchain dafür gibt. Beim Spontan-googlen hab ich nur SDCC gefunden.

Aber ganz ehrlich: Ich bin ein alter konservativer Sack und programmiere in Assembler... Live und in Farbe gesehen hab ich bisher noch nicht einen der erwähnten Compiler - ganz einfach, weil ich ihn bisher nicht gebraucht habe. Auch meine beruflichen Projekte, die in Großstückzahlen gehen, sind alle in Assembler geschrieben.

chrysophylax.
 

scc

Geocacher
Hallo
Da ich vor geraumer Zeit günstig in den Besitz eines PicKIT's gekommen bin verwende ich Pic's.Die 10'ner reichen völlig füer blink und oäCaches. Ansonsten soll jeder seiner Contollersandale folgen wie er will .
73 de usw
SCC
 

jennergruhle

Geoguru
Schöne Auflistung, danke! Ich habe auch noch mal nachgesehen - es gibt auch bei Wikipedia noch Infos dazu, die will ich mal schnell guttenbergen:

"Kostenlose und freie C-Compiler auf Basis des GNU C Compilers (gcc) werden von Microchip selbst zum Download auf ihrer Homepage angeboten.

Es handelt sich bei zweien um die sogenannten Studentenversionen der drei professionellen und kostenpflichtigen, C30 (für alle PIC24 und dsPIC) sowie C32 (für alle PIC32). Diese Studentenversionen haben gegenüber der professionellen Version lediglich solche Einschränkungen, die für den Heimanwender kaum ins Gewicht fallen. Sie dürfen nicht nur von Studenten, sondern von jeder Person genutzt werden. Die Compiler lassen sich alleinstehend verwenden oder in die kostenlose Entwicklungsumgebung MPLAB integrieren.

Die umfangreichen über den C-Standard hinausgehenden Libraries sind allerdings nur halbfrei, da sie nicht für kommerzielle Zwecke genutzt werden dürfen. Darin unterscheiden sie sich von freier Software.

Der PIC18 Compiler basiert auf einer anderen Codebasis. Bei der kostenlosen Studentenversion ist als Einschränkung gegenüber der Vollversion die vorhandene Codeoptimierung nicht frei konfigurierbar sondern wird nach dem Defaultschema durchgeführt, das einen Kompromiss zwischen Codegröße und Schnelligkeit darstellt.

Ein weiterer halbfreier Compiler ist der CC5X Compiler, der ebenfalls für nicht kommerzielle Anwendungen frei verwendet werden kann."
 

thomas_st

Geowizard
Mal eine Frage vorneweg: Dein Redaktionskürzel ist nicht zufällig "as" und Du bist leitender Redakteur eines relativ bekannten "Magazins für Computer und Technik"? :D

chrysophylax schrieb:
Die Frage, wie das mit den AVRs, den PICs, den Zypressen oder den MSPs ist kommt ja immer mal wieder - und allen Anhängern egal welcher brianistischen Partei tut es wahrscheinlich gut, gelegentlich mal etwas über den Tellerrand zu schauen, was sich bei den anderen so getan hat.
Keine Frage - mal über den Tellerrand schauen hat noch niemandem geschadet ... So gesehen: vielen Dank für den Blick in Richtung judäische Volksfront.

Für mich war (ohne Beweis) PIC bisher immer "teuer". Was ich in Deinem / in Euren Kommentaren noch nicht so ganz aus der Welt geschafft sehe.

Konkret ein paar Fragen:
- Welche Einschränkungen gibt es bei den freien C-Compileren? Da steht irgendwo: für den Privatbedarf nicht relevant - da wüsste ich schon gerne was konkreteres. Bzgl. C hat man ja nun bei AVRs keine Probleme: keine Einschränkung hinsichtlich Funktionsumfang und Nutzung der Programme.

- Wie sieht es mit anderen Programmiersprachen aus? Für unsere Bascom-Fraktion: gibt es Basic-Dialekte?

- Wie sieht es mit Programmern aus? Preislage? Gibt es billigere/freie Alternativen?

Viele Grüße,
Thomas(_st)
 

jennergruhle

Geoguru
thomas_st schrieb:
Mal eine Frage vorneweg: Dein Redaktionskürzel ist nicht zufällig "as" und Du bist leitender Redakteur eines relativ bekannten "Magazins für Computer und Technik"? :D
Meinst Du? Wie kommst Du darauf, dass chrysophylax bei H**** arbeitet? Der LDK ist doch auch ein bisschen weit weg von Garbsen, oder? Außerdem sind seine Initialen eher "js".

thomas_st schrieb:
chrysophylax schrieb:
Die Frage, wie das mit den AVRs, den PICs, den Zypressen oder den MSPs ist kommt ja immer mal wieder - und allen Anhängern egal welcher brianistischen Partei tut es wahrscheinlich gut, gelegentlich mal etwas über den Tellerrand zu schauen, was sich bei den anderen so getan hat.
Keine Frage - mal über den Tellerrand schauen hat noch niemandem geschadet ... So gesehen: vielen Dank für den Blick in Richtung judäische Volksfront.
Da würde ich auch noch mal das Wort "Propeller" einwerfen - acht Kerne in einem µC. Jemand schon Erfahrungen damit?
 

thomas_st

Geowizard
jennergruhle schrieb:
thomas_st schrieb:
Mal eine Frage vorneweg: Dein Redaktionskürzel ist nicht zufällig "as" und Du bist leitender Redakteur eines relativ bekannten "Magazins für Computer und Technik"? :D
Meinst Du? Wie kommst Du darauf, dass chrysophylax bei H**** arbeitet?
Aufgrund des Threadtitels ... :p Als ich den Thread las, musste ich sofort an "as" ' Rubrik denken.

jennergruhle schrieb:
Da würde ich auch noch mal das Wort "Propeller" einwerfen - acht Kerne in einem µC. Jemand schon Erfahrungen damit?
Ich nicht, aber eine Frage habe ich: meinem Verständnis nach, ist ein µC doch eher für einfache Aufgaben mit begrenzter Rechenleistung einzusetzen. Wozu dann 8 Kerne?

Viele Grüße,
Thomas(_st)
 
OP
chrysophylax

chrysophylax

Geomaster
thomas_st schrieb:
Mal eine Frage vorneweg: Dein Redaktionskürzel ist nicht zufällig "as" und Du bist leitender Redakteur eines relativ bekannten "Magazins für Computer und Technik"? :D

Äh, nein, nicht dass ich wüsste. Mein Redaktionskürzel wäre jw und ich verbitte mir aufs Schärfste irgendwelche vergleichenden Kalauer mit Pseudo-Outdoor-Chique-Marken minderwertigster Qualität und überteuerter Preise - nur um dem gleich vorzubeugen ;). Ich bin mir bei der Zeitung nicht ganz sicher, aber wenn es die ist, deren Bezeichnung die Abkürzung für "eine Viertelstunde verspätet" in akademischen Kreisen ist, dann habe ich mit der aber auch so gar nichts zu tun... Als Student habe ich immer davon geträumt wenn ich mal viel Geld verdiene und so richtig arriviert bin als Zeichen meiner Dekadenz ein Abo dieser Zeitung zu haben und diese auf dem Klo als spannende Lektüre zu deponieren - da die Zeitung aber ihren Zielgruppen-Fokus in den letzten 10 Jahren auch dramatisch verändert hat zieht mich das so gar nicht mehr.... Arriviert bin ich inzwischen wohl auch, aber auf dem Klo liegt bei uns inzwischen eine "Landlust" statt ebendieser Zeitung - man muss halt auch das eine oder andere Zugeständnis an die dekorationsversiertere Haushaltshälfte machen.....

thomas_st schrieb:
Für mich war (ohne Beweis) PIC bisher immer "teuer". Was ich in Deinem / in Euren Kommentaren noch nicht so ganz aus der Welt geschafft sehe.

Konkret ein paar Fragen:
- Welche Einschränkungen gibt es bei den freien C-Compileren? Da steht irgendwo: für den Privatbedarf nicht relevant - da wüsste ich schon gerne was konkreteres. Bzgl. C hat man ja nun bei AVRs keine Probleme: keine Einschränkung hinsichtlich Funktionsumfang und Nutzung der Programme.
- Wie sieht es mit anderen Programmiersprachen aus? Für unsere Bascom-Fraktion: gibt es Basic-Dialekte?
- Wie sieht es mit Programmern aus? Preislage? Gibt es billigere/freie Alternativen?

Spätestens bei diesen Fragen nach den Kosten sind wir bei der extrem unterschiedlichen Zielgruppe der Hersteller angekommen und dem damit verbundenen Betrachtungswinkel auf Kosten.

Wer für professionelle Produkte (die in n-tausender Mengen gehen) Prozessoren auswählt dem ist es für gewöhnlich relativ egal, wie hoch Einmalkosten für Entwicklungsumgebungen sind - dem kommt es mehr drauf an, was an Preisen für ähnliche Funktionalität bei Stückzahlen >10k/Jahr rauszuholen ist und wie es mit Langzeitverfügbarkeit aussieht. Und da gehen die Welten aufgrund unterschiedlicher Zielgruppen doch deutlich auseinander.

Wie ich weiter oben schon schrieb kenne ich mich bei den C-Compilern für PICs bisher überhaupt nicht aus, weil ich sie bisher noch nie gebraucht habe - da müssen Andere was zu sagen. Da diese Einmalkosten für professionelle Anwender sind, laufen sie wahrscheinlich unter "egal", weil kann man ja eh als Ausgaben von der Steuer absetzen. Bei den Bausteinpreisen hingegen werden die PICs sobald man etwas in Menge geht bei ähnlichem Ausstattungsumfang deutlich billiger als die AVRs, das hilft natürlich dem Hobbyanwender grad gar nichts. Auch bei der Langzeitverfügbarkeit sieht es deutlich besser aus, die Atmel-Produktpalette ist zwar in ständigem Wandel meist in Richtung "mehr Funktionalität für weniger Geld", aber im Laufe dieses Prozesses blieben auch schon diverse Bausteine auf der Strecke, die durch etwas "so gut wie kompatibles mit nur minimalen Änderungen" nach nur wenigen Jahren ersetzt wurden. Da guckt der Profi in die Röhre, weil "so gut wie kompatibel" nach Murphy natürlich ausgerechnet in deinem Projekt in die Hose geht und einen Sack voll Kosten aufgrund von abgekündigter Hardware verursacht, der nie geplant war. Ich selbst bin da konkret z.B. schon mit der Kompatibilität zwischen At90S8535 und Mega8535 auf die Nase gefallen (ALLE "klitzekleinen" Unterschiede trafen mich in meinem Projekt) und der angeblichen Kompatibilität zwischen Mega324 und Mega324A (dito). Selbst der allerälteste PIC wird heute noch in Kleinstückzahlen für Leute gebaut, die ihn unbedingt kaufen wollen. Die zahlen natürlich Altertumsaufschläge auf die Stückzahlen, aber bei vielen Projekten ist das billiger als ein Redesign.

Von daher ist "billiger" eine Frage des Standpunkts: Wenn du ein 10Jahre laufendes 100kStück/Jahr-Projekt planst, sind die Gesamtkosten für Entwicklung, Programmierumgebung und Silizium bei PICs wahrscheinlich deutlich billiger als bei Atmel. Wenn du ein Hobbybastler bist, der in 2 Jahren 10 Prozessoren braucht und eine Programmierumgebung und ein Programmiergerät, dann dürftest du mit Atmels deutlich billiger fahren.

BASIC hab ich auf PICs bisher noch nie gesehen - auch da ist einfach kein Markt für da. Niemand, der beruflich für Mengenstückzahlen programmiert, tut das in BASIC. Es gibt C und soweit ich weiß Pascal - aber das wars dann auch schon an Hochsprachen. Ansonsten kann ich gar nicht häufig genug erwähnen: Der Assembler und Simulator von Microchip ist einfach geil. BASIC ist die Sprache für Hobbyisten und 1Mann-Ingenieursbuden - nicht abwertend gemeint...

Wenn ich an AVRs denke, muss ich auch immer sofort an einen meiner Lieblings-xkcds denken: "And an arduino - just for blog cred". Genau die Menschen, die solche Schaltpläne malen und dann im mikrocontroller.net fragen, warum ihre Schaltung nicht funktioniert, sind die Zielgruppe für Atmel.

Ich weiß, das ist jetzt wirklich böse (und ich entschuldige mich auch gleich im hiermit erfolgten ersten edit dafür) - aber allein die Erwähnung von mikrocontroller.net löst bei hauptberuflichen Elektronikentwicklern für gewöhnlich intuitives hochrollen von Fußnägeln aus... Nichtsdestotrotz muss ich unumwunden zugeben: Eine Markterschliessung für diese Zielgruppe scheint sich durchaus zu lohnen, sonst wäre sie nicht genau so passiert. Es wäre nicht mein Markt, aber ich gebe gerne zu, dass ich jede Firma bewundere, die ihre Markt(nische) gefunden hat und dort erfolgreich Geschäfte macht.

Bei den Programmern sieht es ähnlich aus - es gibt zwar Hobby-Bastellösungen für Selbstbau-PIC-Programmer, aber wer PICs einsetzt hat meist auch das Budget, sich eine einfache käufliche Lösung zuzulegen. 50€ für ein Programmiergerät ist billiger als eine Ingenieursstunde selbstzusammenlöten.

Ich habe nur käufliche Hardware im Einsatz und da die ein Leben lang hält noch nie den Bedarf gehabt, da großartig was nachzukaufen.

Empfehlen kann ich den PICkit2, den gibt’s neu ab 50€ und gebraucht häufig bei i-bäh so in der Gegend von 30€ oder als bewusst als solcher gekennzeichneter China-Klon für 19,90€ Festpreis incl. Versand direkt aus China. Keine Ahnung, wie identisch der Klon ist - das Original nutze ich in der Firma wenn ich schnell einen billigen PIC-Programmer brauche.

Es gibt wohl auch diverse Selbstbau-Programmer, da der PIC aber GRUNDSÄTZLICH >12V Programmierspannung braucht um überhaupt mal in den Programmiermodus zu kommen sind diese üblicherweise entweder deutlich aufwendiger als AVR-Programmer oder so unglaublich schwindlig getrickst in der Schaltung, dass sie mit etwas Glück sogar gelegentlich auch mal einmalig nicht reproduzierbar funktionieren. Würd ich eher nicht zu raten.

Der PICkit2 entspricht in eingesetzter Hardwareschlacht und Funktionalität ungefähr dem AVR ispMK2.

googlen nach "selfmade pic programmer" wäre ein guter Ausgangspunkt in ein Terreng, in dem ich mich nicht auskenne, alternativ auch i-bäh-Suche nach "pickit".

chrysophylax.
 

thomas_st

Geowizard
chrysophylax schrieb:
thomas_st schrieb:
Mal eine Frage vorneweg: Dein Redaktionskürzel ist nicht zufällig "as" und Du bist leitender Redakteur eines relativ bekannten "Magazins für Computer und Technik"? :D

Äh, nein, nicht dass ich wüsste. Mein Redaktionskürzel wäre jw und ich verbitte mir aufs Schärfste irgendwelche vergleichenden Kalauer mit Pseudo-Outdoor-Chique-Marken minderwertigster Qualität und überteuerter Preise - nur um dem gleich vorzubeugen ;). Ich bin mir bei der Zeitung nicht ganz sicher, aber wenn es die ist, deren Bezeichnung die Abkürzung für "eine Viertelstunde verspätet" in akademischen Kreisen ist
Genau die meine ich (wobei sie sich etwas anders schreibt: c't vs. c.t.).

Ich lese eben diese regelmäßig (wobei ich zugebe, momentan wird sie mir etwas Smartphone lastig) und in ihr schreibt regelmäßig der erwähnte Autor unter dem Titel "Prozessorgeflüster" die Neuigkeiten aus der Prozessorbranche - daher die Assoziation.

chrysophylax schrieb:
Spätestens bei diesen Fragen nach den Kosten sind wir bei der extrem unterschiedlichen Zielgruppe der Hersteller angekommen und dem damit verbundenen Betrachtungswinkel auf Kosten. [...]
Die weiteren Ausführungen versuche ich mal zusammenzufassen:
PIC:
- Schaltkreise zueinander weitgehend kompatibel
- lange Produktionszeit und Zeit der Verfügbarkeit
- µC bei großen Stückzahlen preiswerter
- Entwicklungsumgebung + Programmer teuerer

==> Bevorzugt im professionellen Bereich mit großen Stückzahlen

AVR:
- Schaltkreise zwischen den einzelnen Linien weisen Unterschiede auf
- kurzer Schaltkreislebenszyklus (kurzes Intervall zwischen An- und Abkündigung) die immer wieder zu Neuentwicklungen darauf basierender Produkte führt und die Ersatzteilhaltung erschwert
- µC in größeren Stückzahlen teurer
- Entwicklungsumgebung + Programmer preiswert bis kostenlos

==> Kleinserien und Hobbyentwickler

Habe ich das ungefähr richtig zusammengefasst?

Nun ist es aber IMO so, dass geschätzt 95% der hier schreibenden und vermutlich auch lesenden den Hobbyentwicklern zugerechnet werden können, so dass hier die höheren Einstiegshürden des PIC durch den letzten aufgeführten Punkt oben natürlich voll durchschlagen. Das sieht man IMO auch an der großen Verbreitung der Parallel- und Serialportprogrammer hier.

Wie sieht es aus, wenn man auf einen ordentlichen Programmer (der natürlich ein paar Euronen kostet) prinzipbedingt angewiesen ist; wenn man für die Programmierumgebung auch ein paar Kröten hinlegen muss ...

Wie schon geschrieben: danke für den Blick über den Tellerrand - aber unter diesen Rahmenbedingungen wird dieser Blick nicht wirklich auf fruchtbaren Boden fallen ...

Viele Grüße,
Thomas(_st) - der über den "Schaltplan" herzlich gelacht hat / und im angrenzenden Bereich der Chemieingenieure so etwas ähnliches mal mit 5 Jahren gezeichnet hat (am Ende kam aber Kaffee raus ;) )
 
OP
chrysophylax

chrysophylax

Geomaster
Ja, so ungefähr kann man das zusammenfassen....

thomas_st schrieb:
Wie schon geschrieben: danke für den Blick über den Tellerrand - aber unter diesen Rahmenbedingungen wird dieser Blick nicht wirklich auf fruchtbaren Boden fallen ...

Och, das sehe ich gar mal so tragisch bzw. hatte es weder erwartet noch für erstrebenswert gehalten. Ich habe mich bemüht, dieses Fazit selbst irgendwie zu vermeiden, weil es zwar zutrifft, aber "nicht die ganze Wahrheit" ist.

Ein Großteil der Unterschiede rührt wahrscheinlich auch daher, dass die zwei Firmen wahrscheinlich deutlich unterschiedliche Philosophien bzw. Sichtweisen auf die Welt und ihre jeweiligen Produkte haben.

Microchip ist ein unglaublich konservativer und traditioneller Laden. Teile der Prozessorarchitektur, die sie verwenden sind inzwischen so alt, dass man ein ähnliches Problem hat wie die Firma Intel mit der x86-Architektur, zu der man bis heute kompatibel ist: Man muss unglaubliche Gewaltakte würgen, um diese Kompatibilität beizubehalten. Der Zeitpunkt, bis zu dem diese Kompatibilität mehr Vorteile als Einschränkungen bietet, ist schon lange um. Bei Microchip und bei Intel.

Auf der anderen Seite sind PICs dafür berühmt, dass diese Architektur unglaublich stabil und robust und durch nichts im Betrieb zu verwirren ist. Man verwendet in der "Midrange-Serie" ganz bewußt auf Siliziumebene Strukturbreiten, die "eigentlich" seit 10 Jahren überholt weil viel zu grob strukturiert für heute Verhältnisse sind. Andere Hersteller bringen auf der gleichen Fläche Silizium durch kleinere Strukturbreiten eine viel größere Menge an Funktion unter. Der Vorteil ist, dass solch grosse Strukturen auch viel störUNempfindlicher sind als "heutige gängige" Strukturen.

Ich habe PICs auf der Netzphase mitschwimmend entwickelt, deren Versorgungsspannung mit 100Hz Netzsinus zwischen 2,5V und 5,2V hin- und hereiert - der interne Oszillator steht wie ne Eins, der AD-Wandler mit Vcc als Referenz wandelt ohne ein Bit Abweichung. Mit einem Atmel würd ich das nicht mal versuchen.... Microchip hat das EEPROM mit 1Mio Schreibzyklen erfunden und serienmässig in fast allen Produkten drin, Atmel kommt bei egal welchen Prozessoren nicht über 100k raus. Als dediziertes EEPROM kann ich bei Microchip inzwischen 10Mio Zyklen kaufen - da ist bei Anderen nicht mal dran zu denken. Speicher können die richtig, richtig gut. Lebensdauer können die richtig, richtig gut. Harte Umgebungsbedingungen können die richtig, richtig gut - einen kommerziellen Temperaturbereich (0..70°C) gibts bei Microchip nicht, die haben nur industriell (-25..+85°C) und Automotive (-40..+105°C), Atmel kann nur kommerziell und industriell und gar kein Automotive. Die Entwicklungsumgebung ist ein Traum - unglaublich sauber und stabil und strukturiert.

Dafür kranken sie halt in Ihrer CPU-Kern-Architektur ein wenig daran, dass sie einen Befehlssatz bis heute pflegen, der vor 20 Jahren Stand der Technik war. Da muss man - gerade wenn man in Assembler programmiert - schon manchmal etwas weinen oder würgen, wenn man "zeitgemäßere" Prozessoren mal in Assembler programmiert hat.

Atmel hat das im Prinzip erkannt und versucht mit den AVRs mit dem Vorteil des "Neustarts von 0" zu korrigieren - die Idee dahinter war genial, die Umsetzung ist bis heute unglaublich grottig und stümperhaft. In dem Laden sitzen auch in der Halbleiterei einfach keine 150%igen preussischen Korinthenkacker.

Der Befehlssatz der AVRs ist prinzipiell abgekupfert von der PIC-Architektur, allerdings haben sie von vorneherein richtig erkannt dass es nicht lohnt mit den Bits Befehlsbreite zu geizen und im Rahmen der Erweiterung der Befehlswortbreite auf 16Bit wirklich alle CPU-Architektur-Kinderkrankheiten der PICs ausgemerzt.

Der PIC hat ein einziges Arbeitsregister (namens "W"), der AVR hat gleich 16 davon. Jede einzelne Operation beim PIC muss ich durch dieses W schieben und mir jedesmal überlegen, wo ich das, was vorher im W war hinretten kann. Der AVR hat im Prinzip 16 dieser Arbeitsregister die er in allen Adressierungsmodi direkt verwursten kann - da muss ich nix irgendwohinretten, ich kann gleich mit diesen im Prinzip 16 vordefinierten Variablen arbeiten.

Der PIC hat einen Hardware-Stack für Subroutinen, kann diesen aber nicht in Software nutzen. Wie oft hab ich schon beim PIC von push und pop geträumt - der Atmel kanns.

Der Atmel hat als "neue Erfindung" in seinen Prozessor-Statusbits ein "T"-Bit, mit dem man unglaublich effizient Operationen wie "Bit7 aus dem Register wird zu Bit3 aus jenem Register", die in der Microcontrollerei vorkommen in 2 Befehlen abackern kann. Der PIC braucht dafür je nach Anforderung auf alle Fälle immer mehr Befehle. (AVR: "Befehl1: Kopiere Bit3 aus Register JENEM nach T, Befehl2: Kopiere T nach Bit7 in Register DEM". PIC: Befehl1: Überspringe, wenn Bit in DEM gesetzt, Befehl2: Lösche Bit in JENEM, Befehl3: Überspringe, wenn Bit in DEM gelöscht, Befehl4: Setze Bit in JENEM.).

Man liest sich den Befehlssatz durch und sieht sofort: Die haben einen PIC genommen und in seinen entscheidenden Schwächen aufgebohrt.

Der Ansatz ist genial, aber die Ausführung ist bis heute eine Katastrophe. Der Assembler in der von Atmel beigestellten Entwicklungsumgebung kann einem mangels eigener Intelligenz so gut wie gar keine Arbeit abnehmen - und nebembei hat Atmel irgendwann mal die Syntax geändert zwischen "Assembler Typ1" und "Assembler Typ2" - können tun beide nix. Die AVRs können bis heute nicht die Konfigurations-Bits durchgängig vom Quelltext übers Hexfile bis in den Programmer reichen - und die Notation dieser "Fuses" ist noch dazu von Prozessor zu Prozessor völlig unterschiedlich. Das kann nur in die Hose gehen, wenn man ein Programmiercenter beauftragt, einem 10k Stück Atmels vorzuprogrammieren. Tut es auch jedesmal. Das Wort "verfused" kennt man bei PICs nicht - zum Einen, weil die Notation sich stringent durch die ganze Entwicklungsumgebung zieht, zum Anderen, weil man durch die 12V-Programmierspannung jeden noch so unmöglich konfigurierten PIC immer wieder in einen definierten Zustand bringt. Mir doch egal wie die Fuses vorher waren - ich programmier da rein was ich brauche. Das kriegt Atmel bis heute nicht hin.

Und dann ist die Hardware bei Atmel aufgrund der unglaublich schnellen Entwicklungszyklen einfach nur regelmässig unglaublich buggy und aufgrund der "heutzutage zeitgemässen" Strukturbreiten unglaublich empfindlich. Was hab ich schon mit Schirmblechen gewürgt, weil man einen AtMega324 nicht ohne hochseltsame Software-Bug-Effekte in 1cm Abstand zum Trafo eines Schaltnetzteils auf der gleichen Platine setzen kann - mit einem PIC geht das problemlos. Was hatte ich schon für Kosten, weil jeder At90S8535 dank eines ab Werk defekten internen Reset-Generators bei langsam absinkenden Betriebsspannungen in seinem eigenen EEPROM Amok schreibt, auch wenn noch nichtmal Code enthalten ist, der in der Lage wäre das EEPROM zu schreiben. Der Fehler wurde nie korrigiert und erst Jahre nach Erscheinen des AtMega8535 in der allerhintersten bloss nicht zu findenden Ecke der Webseite dokumentiert....

Solche hingeschluderte Ecken in Hard- und Software kann ich für Atmels noch haufenweise aufzählen - und das ist einfach schade, weil die Idee hinter dieser Architektur ist absolut genial aber halt nur lieblos bis stümperhaft umgesetzt.

Und so langts halt nur für Controller die entweder im Hobby- oder Frickelbuden-Bereich eingesetzt werden oder für Produkte, die für gewöhnlich schon vor Ablauf der 2 Jahre Garantie vom Besitzer weggeworfen werden, weil sie uncool oder veraltet oder wasauchimmer sind.

Kein Mensch kommt auf die Idee, AVRs in Industrieelektronik (10 Jahre Funktions- und Nachliefergarantie) oder im Automotive-Bereich (dito, zusätzlich -40..+105°C) einzusetzen. Dafür sind sie einfach nicht zuverlässig genug.... Ebenso im Installationsbereich: Egal welchen intelligenten Dimmer man heute kauft und aufschraubt, da ist überall ein PIC drin. Und ich hab schon viele von den Dingern geknackt - "berufliches Interesse".

Und das ist einfach schade - denn die Architektur könnte so gut sein, wenn der Hersteller sich nur Mühe geben würde sie in Hard- und Software ordentlich und fertig zu entwickeln. Darauf warte ich allerdings seit über 10 Jahren vergebens....

chrysophylax.

(Ich sollte mit meinem Atmel-Trauma wirklich mal zum Püschologen gehen....)
 

scc

Geocacher
Hallo
Wer sich mal in Pic Basic experimentieren will, hier ein paar INFO'S.
die Demos sind aber meist nicht aktuell:

http://www.melabs.com/pbpdemo.htm
http://www.il-online.de/share16w.zip
http://www.pic-basic.de/dnld/PB-II-Archiv.exe
http://web.tiscali.it/parsicitalia/
http://web.tiscali.it/parsicitalia/downolad/setupd.exe

Parsic ist eine Graphische Programmieroberfläche für PIC's.

73 de SCC.


übrigens; sind in R eichelt nicht die kleinen pic's preiswerter als die kleinen atmel's?
 

Taiira

Geocacher
chrysophylax schrieb:
[...]Arriviert bin ich inzwischen wohl auch, aber auf dem Klo liegt bei uns inzwischen eine "Landlust" statt ebendieser Zeitung - man muss halt auch das eine oder andere Zugeständnis an die dekorationsversiertere Haushaltshälfte machen [...]

:)

Grüße, Dirk
- send from mobile -
 
OP
chrysophylax

chrysophylax

Geomaster
Eine sehr schöne Ausarbeitung (zumindest inhaltlich und fachlich, vom Auftritt her kommt mir der Herr ein bisschen vor wie das Eichhörnchen auf Cola in "Ab durch die Hecke" ) findet sich übrigens auch bei einem bekannten australischen Elektronikblogger unter dem wunderschönen Titel "PIC vs AVR - Let the microcontroller fanboy wars begin!".

Meiner Meinung nach hätte er etwas mehr betonen können, dass die AVRs für Elektroniklaien und blutige Anfänger die etwas bessere Wahl sind - nicht weil sie technisch überlegen sind, sondern weil es einfach eine viel größere Community (zumindest in Germanien) gibt, die sich gerne und geduldig mit Anfängerfragen "wie schalte ich meinen Durchlauferhitzer mit einem Microcontroller ein" und "warum riecht sie so komisch, wenn ich meine Schaltung mit einem 9V-Block betreibe" rumschlägt.

chrysophylax.
 

Starglider

Geoguru
chrysophylax schrieb:
Mir doch egal wie die Fuses vorher waren - ich programmier da rein was ich brauche. Das kriegt Atmel bis heute nicht hin.
Wenn man den "high Voltage parallel Mode" benutzt geht das bei Atmels schon, nur die billigen/einfachen Programmer unterstützen diesen Modus halt nicht.
Mit dem STK-500 hab ich noch keinen Atmel so zerschossen das ich ihn nicht mehr programmieren konnte. Aber vielleicht fehlt mir dazu auch das nötige Talent.
 

stonewood

Geowizard
chrysophylax schrieb:
Kein Mensch kommt auf die Idee, AVRs in Industrieelektronik (10 Jahre Funktions- und Nachliefergarantie) oder im Automotive-Bereich (dito, zusätzlich -40..+105°C) einzusetzen. Dafür sind sie einfach nicht zuverlässig genug.... Ebenso im Installationsbereich: Egal welchen intelligenten Dimmer man heute kauft und aufschraubt, da ist überall ein PIC drin. Und ich hab schon viele von den Dingern geknackt - "berufliches Interesse".
Ist das eigentlich bei den 'automotive'-AVRs anders? Sind die unempfindlicher gegenüber externen Störungen? Oder sind das einfach megaXX mit speziellen schnittstellen?

Ich hab hier übrigens ein Li-Ion Ladegerät mit nem tiny2313 rumliegen ...
 
OP
chrysophylax

chrysophylax

Geomaster
Hmh, ich habe mir gerade mal bei Atmel die Automotive-Linie angesehen, das ist ja alles noch sowas von preliminary und Entwurf und selbst die Werbeblättchen sind mehr Form als Inhalt - ich vermute mal, die haben da tatsächlich neue Dies gegossen mit anderen technischen Eigenschaften, sonst wäre das nicht alles noch so unglaublich unspezifiziert...

Also zumindest der Tiny24-Z als Automotive-Temperaturbereich sieht mehr so aus, als existierte er nur auf dem Papier... Keine Muster verfügbar, unglaublich vorläufige Datenblätter, keine Lieferzeiten, keine Anhalts-Preise für 1k-Stückzahlen.

Man wird wohl erkannt haben, dass man für den Markt und das Image auch automotive haben sollte und da mal Geld und Aufwand in die Hand genommen haben - vermute ich.

Genauso vermute ich, dein Li-Ion-Ladegerät ist von einer eher europäischen relativ kleinen Firma, wird nicht in China gebaut und macht den Eindruck, als wären davon im Fertigungslos erheblich weniger als ne Million gelaufen....

Aber wie geschrieben: Alles Vermutungen.

chrysophylax.
 
Oben