Forum: Mikrocontroller und Digitale Elektronik Qualität bei Microchip's dsPIC33


von Gernot S. (Firma: Ing. Gernot Schreiner) (leuchtspirale)


Lesenswert?

Hallo!

Hat hier sonst noch wer so schlechte Erfahrungen mit der Qualität der 
dsPIC33-Serie? Ich hab in den 80ern angefangen mit uCs zu arbeiten 
(Motorola, PIC16) und war es gewohnt, dass man die Fehler im Datenblatt 
an einer Hand abzählen konnte und der Chip das tat, was im Datenblatt 
stand. 2009 hab ich dann angefangen mit der PIC33 Familie zu arbeiten 
und hab seither duzende Fehler in der Hardware gefunden, die alle nicht 
in den Errata-Sheets dokumentiert waren. Meine jeweiligen Versuche, 
irgendeine intelligente Antwort dazu von Microchip zu bekommen sind 
jeweils am First-Level-Support gescheitert, der meist nicht mal das 
Problem verstand.

Kleines Beispiel: Wenn man die UART im dsPIC33FJ*MC auf maximalem Speed 
fährt, also BRG=0 und Bit BRGH gesetzt, dann reicht eine Abweichung der 
Baudrate um einige wenige ppm aus, dass der Empfang nicht mehr sauber 
funktioniert weil das Stopbit nicht mehr sauber erkannt wird. Hab ich 
ausgetestet mit gleichem, externen Takt an 2 PICs und hab dann die PLL's 
ganz leicht verstellt. Microchip First-Level-Support: Hat 2 PICs 
zusammengehängt, beide mit internem RC-Oszillator (!) und hat gemeint, 
dass es ja eh geht. Ja eh - zufällig. Ich hab's dann aufgegeben, wollt' 
nicht unhöflich werden.

Grüsse, Gernot

von Franz Braunschmid (Gast)


Lesenswert?

Lieber Herr Schreiner,

ich würde Ihnen als mein ehemaliger N5c/1985-Schüler ja sehr gerne 
einige Nachhilfe-Tipps dazu geben, aber ich bin heute (!) 69 Jahre alt 
und empfinde mich nicht mehr total am neuesten Stand der µC-Technik, 
schon gar nicht der PIC-Technik, weil ich ja schon immer der Meinung 
bin, dass ein PIC gar kein µC ist ......

Das soll aber nicht heißen, dass ich mit der Technik nicht mehr 
verbunden bin, denn ich habe seit 1. Februar 2017 ein EU-Patent über 
neue dehnungsmessstreifenlose (!!!!!!!) Verfahren zur Messung von 
Kräften, Drehmomenten, Positionen, Drücken usw., und weil's irgendwie 
dazu gehört auch ein Ö. Patent für die elektronischen Schaltungen dazu. 
Ein zweites EU-Patentverfahren ist noch im Laufen.

Zu der ganzen Sache schreibe ich derzeit ein Buch, aber ich bin im 
Konzept erst auf (A4-)Seite 517 ......

Dass in die neuartigen Sensoren irgendwelche µC-Flöhe hinein gehören, 
ist klar, und von Microchip gibt es ja einen ganz winzigen, wie ich 
weiß.

In allernächster Zeit zwar nicht, aber gleich danach (....) werde ich 
Sie mal auf ein Bier einladen!

Noch viel Spaß beim Fehlersuchen!

Franz Braunschmid

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Franz Braunschmid schrieb:
> denn ich habe seit 1. Februar 2017 ein EU-Patent

Hat das in diesem Kontext auch nur irgendeine Relevanz?

Wenn ja: Hilft mir einer, sie zu erkennen?

von Karlmann (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> Franz Braunschmid schrieb:
>> denn ich habe seit 1. Februar 2017 ein EU-Patent
>
> Hat das in diesem Kontext auch nur irgendeine Relevanz?
>
> Wenn ja: Hilft mir einer, sie zu erkennen?

Langsam und sorgfältig durchlesen, dann kommt der Kern des Beitrags zum 
Vorschein. Das Aha-Erlebnis ist ziemlich witzig.

von GHD (Gast)


Lesenswert?

Gernot S. schrieb:
> Ich hab in den 80ern angefangen mit uCs zu arbeiten
> (Motorola, PIC16) und war es gewohnt, dass man die Fehler im Datenblatt
> an einer Hand abzählen konnte und der Chip das tat, was im Datenblatt
> stand.

Diese Zeiten sind aber eben vorbei. Heutzutage ist -- ganz 
offensichtlich -- Funktionsvielfalt (und damit Komplexität) wichtiger 
als die Zuverlässigkeit. Es ist auch einfach unmöglich von solche 
komplexen Controllern alles zu testen und vor allem alle Fehler zu 
beheben. Das will heutzutage niemand mehr bezahlen. Selbst wenn 
Microchip so einen Fehler beheben würde, dann würde das vermutlich kaum 
jemandem auffallen, geschweige denn würden sie die Kosten dafür je 
wieder reinholen. Wenn du ein Automotive Zulieferer bist der 500k Stück 
abnimmt ist das sicher was anderes. Aber irgendwelche kleinen Klitschen 
oder gar Privatanwender interessiert Microchip nicht das kleinste Stück. 
Die bringen ja auch keinen Cent. Wir als Hobbyisten oder kleine Firmen 
haben das Glück, dass die Großen gibt -- die bezahlen für uns die 
Entwicklung der Controller. Und wir haben dann das Glück, dass wir die 
zu Schleuderpreisen bekommen. Wenn jeder Hobbybastler bereit wäre 25€ 
für einen PIC18F auszugeben dann wäre das sicher was anderes. Aber so 
...

Gernot S. schrieb:
> Kleines Beispiel: Wenn man die UART im dsPIC33FJ*MC auf maximalem Speed
> fährt, also BRG=0 und Bit BRGH gesetzt, dann reicht eine Abweichung der
> Baudrate um einige wenige ppm aus, dass der Empfang nicht mehr sauber
> funktioniert weil das Stopbit nicht mehr sauber erkannt wird. Hab ich
> ausgetestet mit gleichem, externen Takt an 2 PICs und hab dann die PLL's
> ganz leicht verstellt.

Genau das ist ja irgendwie die Sache. Niemand aus einer professionellen 
Liga käme je auf die Idee sowas zu machen. Es ist doch irgendwie 
logisch, dass der Betrieb am Limit eher instabil ist. Um konkurrenzfähig 
zu bleiben versucht natürlich jeder Hersteller seinen Controller als den 
tollsten anzubieten. Je mehr im Datenblatt steht desto wahrscheinlicher 
wird er genommen. Inwiefern dieses Verhalten der Hersteller vertretbar 
oder gut ist, das ist auf einem anderen Blatt geschrieben. Es gehört 
einfach auch zu den Aufgaben eines Ingenieurs eben das zu erkennen und 
bewerten zu können. Wenn du ein Übertragungsverfahren *am Limit des 
Datenblattes* fährst, dann hast du etwas falsch gemacht. Und zwar in 
deiner Systemarchitektur / Systemplanung.

Gernot S. schrieb:
> Microchip First-Level-Support: Hat 2 PICs
> zusammengehängt, beide mit internem RC-Oszillator (!) und hat gemeint,
> dass es ja eh geht. Ja eh - zufällig. Ich hab's dann aufgegeben, wollt'
> nicht unhöflich werden.

Du erwartest jetzt also, dass sich jemand ernsthaft kostenlos mit deinem 
Problem auseinander setzt? Am besten noch einer ein Silicon Designer 
oder Testingenieur? Weil du einmal 5 Stück gekauft hast? Das ist 
sicherlich möglich, wenn du genügend Geld bezahlst oder genügend 
Stückzahl abnimmst. Genau das Problem das du beschreibst ist die Aufgabe 
eines Elektrotechnikers heutzutage. Sich in dem Bereich auszukennen und 
unterscheiden zu können was drin ist und was ein haltloses 
Werbeversprechen ist.

von Axel S. (a-za-z0-9)


Lesenswert?

GHD schrieb:
> Gernot S. schrieb:
>> Kleines Beispiel: Wenn man die UART im dsPIC33FJ*MC auf maximalem Speed
>> fährt, also BRG=0 und Bit BRGH gesetzt, dann reicht eine Abweichung der
>> Baudrate um einige wenige ppm aus, dass der Empfang nicht mehr sauber
>> funktioniert weil das Stopbit nicht mehr sauber erkannt wird. Hab ich
>> ausgetestet mit gleichem, externen Takt an 2 PICs und hab dann die PLL's
>> ganz leicht verstellt.
>
> Genau das ist ja irgendwie die Sache. Niemand aus einer professionellen
> Liga käme je auf die Idee sowas zu machen. Es ist doch irgendwie
> logisch, dass der Betrieb am Limit eher instabil ist.

Kann es sein, daß du die Problembeschreibung nicht verstanden hast? Ein 
UART sollte einige Toleranz bei der Baudrate haben, denn das A steht ja 
gerade für asynchronous. Gängiger Daumenwert sind 1% Abweichung. Der 
TE spricht aber von wenigen ppm. Sagen wir 10ppm, dann ist das im 
Vergleich zu 1% um Faktor 1000 sensitiver.

Ich weiß jetzt nicht, was im Datenblatt steht. Vermutlich spezifiziert 
MC die erlaubte Baudratentoleranz im angesprochenen Higspeed-Modus des 
UART einfach nicht. Damit sind sie natürlich fein raus.

von Toxic (Gast)


Lesenswert?

GHD schrieb:
> Es ist auch einfach unmöglich von solche
> komplexen Controllern alles zu testen und vor allem alle Fehler zu
> beheben.


Deswegen muss man auch akzeptieren,dass hin und wieder mal ein Patient 
auf dem OP-Tisch stirbt,weil ein uC gerademal nicht so will,wie es im 
Datenblatt beschrieben ist.
Auch Flugzeuge,duerfen auf Grund undurchfuehrbarer Kontrollen gerne mal 
vom Himmel fallen .. is halt mal so.?

von AntiToxic (Gast)


Lesenswert?

Toxic schrieb:
> in und wieder mal ein Patient
> auf dem OP-Tisch stirbt,weil ein uC gerademal nicht so will,wie es im
> Datenblatt beschrieben ist.
> Auch Flugzeuge,duerfen auf Grund undurchfuehrbarer Kontrollen gerne mal
> vom Himmel fallen

Und weil ausgiebige Tests der Flugzeugtechnik oder der medizinischen 
Geräte heute als uncool gelten

von Bastler (Gast)


Lesenswert?

Das Poblem ist (leider) sehr vielschichtig und einige Aspekte wurden 
hier schon genannt.

Man (die Chiphersteller) müssen sich am Markt behaupten und ständig 
neue, billigere, bessere Derivate liefern.
Ich gehe schon davon aus, dass das Design auch getestet wird aber eben 
nicht bis ins letzte Bit.

Es dauert ca. 1-2 Jahre bis das Chip-Design steht und in Produktion 
geht.
Es kann sich niemand leisten einen Chip zu entwickeln, diesen dann 10 
Jahre lang auf Herz und Nieren zu prüfen und erst dann in den Markt zu 
bringen. In dieser Zeit sind die Mitbewerber meilenweit voraus, die 
eingesetzte Technologie ist veraltet und keiner will das Ding mehr 
haben.

Fehler werden nur dann korrigiert, wenn sich viele (zahlende) Anwender 
beschwerern und ein Verlust von Markanteilen droht.
Dann versucht man typischerweise das Problem in Software oder durch 
"anpassen" der Spec in den Griff zu bekommen.
Erst wenn das nicht mehr hilft wird eine neue Revision des Chips auf den 
Markt gebracht.

Ich arbeite in der Automobilindustrie und wir setzen eigene ASICs ein. 
Der erste Schuss passt nie, es gibt immer irgendwelche Bugs.
Trotzem wird immer abgewogen ob es ein solch gravierender Bug ist, dass 
es eine neue Chip-Revision geben muß. Oft reicht es auch aus die Spec 
anzupassen und der Bug ist wegdefiniert ;-)
(Bsp. Wenn im Datenblatt 5V Betriebsspannung steht, aber die 
spezifizierte maximale Stromaufnahme nicht passt, geht man eben auf 4.5V 
oder 3.3V runter. Oder wenn das Dinges bei 100 MHz anfängt unstabil zu 
laufen weil man einen Bug in den Clock-Tree eingebaut hat, spezifiziert 
man einfach auf 80MHz um und gut is.)

Du als Privatmann (Kleinstmengenabnehmer) hast keine Chance da was zu 
reißen. Klar du kannst auf das Problem aufmerksam machen und hoffen dass 
viele tausend Anwender dieses Problem auch haben. Dann besteht Hoffnung 
auf einen Fix.
Wenn du 100k pro Jahr abnehmen würdest, sehe die Sache vlt. auch schon 
etwas anders aus. Dann hättest du eine gewisse Chance das dein Problem 
ernst genommen würde bzw. dass du dich nicht nur mit der netten Dame am 
Telefonsupport unterhalten darfst.

Früher gab es einige wenige Controller auf dem Markt. Heute hast du pro 
Familie zig Ableger. Die alle zu testen ist nicht möglich.
Man baut die Maximalversion, testet die wichtigsten 
Eigenschaften/Anwendungsfälle und wirft dann Module raus im kleinere 
Derivate zu bauen. Die werden natürlich dann nicht mehr komplett 
getestet (man hat ja nur Teile entfernt). Das ist ein Problem, denn auch 
beim Entfernen können Fehler gemacht werden.

Das Problem ist halt, dass die Dinger immer komplexer und flexibler 
werden und man unmöglich alles abtesten kann (U.a. auch weil man gar 
nicht an einen Anwendungsfall gedacht hat.) Schau dich mal im Netz um 
wieviele Lösungen es gibt um das WS2812 Protokoll nachzubauen. DMA, SPI, 
UART waren dazu nie gedacht, werden aber verwendet weil es eben 
(meistens) geht.

Erratas werden nur geschrieben wenn wirklich viele Anwender betroffen 
sind.
Schließlich muss man eingestehen dass ein Produkt fehlerhaft ist bzw. 
man den (Entwickllungs-)Prozess nicht im Griff hat.

Das ist ein allgemeines Thema. Jeder Chiphersteller baut Bugs ein und 
versucht sie so lange wie möglich zu verschweigen. Das ist leider 
menschlich oder gibst du gerne zu, dass du Fehler gemacht hast ?

von chris (Gast)


Lesenswert?

Mich würde interessieren, wie der To aus demselben Takt die pll um ein 
paar ppm verstellen konnte. So wie ich die pll von microchip kenne geht 
dies absolut nicht.

von Axel S. (a-za-z0-9)


Lesenswert?

Bastler schrieb:
> Erratas werden nur geschrieben wenn wirklich viele Anwender betroffen
> sind.

Ich kann nur hoffen, daß das die Hersteller nicht so sehen.

> Schließlich muss man eingestehen dass ein Produkt fehlerhaft ist bzw.
> man den (Entwickllungs-)Prozess nicht im Griff hat.

Ja. Und? Jeder macht Fehler. Die Frage ist, wie man damit umgeht. Wer 
seine Fehler nicht zugibt, der kann auch nicht aus ihnen lernen.

> Das ist ein allgemeines Thema. Jeder Chiphersteller baut Bugs ein und
> versucht sie so lange wie möglich zu verschweigen. Das ist leider
> menschlich oder gibst du gerne zu, dass du Fehler gemacht hast ?

Das hat gar nichts damit zu tun, ob man das gern macht oder nicht. 
Jeder bekannte, aber verschwiegene Fehler kann zu verlorener Arbeitszeit 
beim Kunden führen. Und in der Folge zum Verlust eines Auftrags. Das 
kann der Hersteller vorher nicht wissen. Deswegen ist es auch in seinem 
Interesse, die Macken seiner Produkte umfassend zu dokumentieren. Nach 
Möglichkeit, bevor ein Kunde darauf stößt.

Wenn es richtig krass wird, können sogar Folgekosten entstehen, die in 
keinem Verhältnis zum Egoverlust stehen. Wenn z.B. irgendwo eine 
Industrieanlage hochgeht. Man denke nur zurück an den FDIV Bug.

von Carl D. (jcw2)


Lesenswert?

Ich hab mir mal vor 35Jahren eine Nacht mit einer Z80-SIO um die Ohren 
geschlagen, die einen Vorteiler hatte, mit der die Baudrate 
multipliziert wurde, um den eigentlichen Takt zu ermitteln. Also z.B. 
9600Hz Takt und Teiler 4 macht 1200B/s. Um das einfach zu halten, 
stellte ich den Vorteiler auf 1. Was im Handbuch nicht explizit stand: 
der Vorteiler bestimmte auch wie oft das Signal abgetasten werden soll. 
Tags darauf mit 16fach-Abtastung ging dann alles.
 So ähnlich könnte der "Pic33-Bug" auch entstanden sein.

von (prx) A. K. (prx)


Lesenswert?

Axel S. schrieb:
> Wenn es richtig krass wird, können sogar Folgekosten entstehen, die in
> keinem Verhältnis zum Egoverlust stehen. Wenn z.B. irgendwo eine
> Industrieanlage hochgeht. Man denke nur zurück an den FDIV Bug.

Welche Industrieanlage ist deswegen hochgegangen?

Allerdings betrachtete Intel bis zu diesem Zeitpunkt Errata als 
Betriebgeheimnis, nur gegen NDA zu erfahren. Danach wurden sie 
öffentlich.

Dafür werden sie aber gelegentlich so formuliert, dass man erst 
hinterher merkt, dass man es eigentlich hätte vorher merken können. AMD 
hatte beim K6 einen Bug, gross wie ein Scheunentor, der ziemlich sicher 
alle betraf, die ihn mit genug Speicher verwendeten. Nur nicht bei jedem 
häufig genug, um den Zusammenhang zu erkennen.

Der stand sogar sehr früh im Errata Sheet, war aber anfangs so kunstvoll 
unter "self modifying code" versteckt, dass er kaum einen Hund hinter 
dem Ofen hervorlockte. Nach dem Wirbel kam dann ein Passus hinzu, der 
verdeutlichte, dass die Erkennung von self modifying code nur relativ 
wenig Adressleitungen nutzt und deshalb auch in ganz normalem Code 
zuschlägt.

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


Lesenswert?

A. K. schrieb:
> Axel S. schrieb:
>> Wenn es richtig krass wird, können sogar Folgekosten entstehen, die in
>> keinem Verhältnis zum Egoverlust stehen. Wenn z.B. irgendwo eine
>> Industrieanlage hochgeht. Man denke nur zurück an den FDIV Bug.
>
> Welche Industrieanlage ist deswegen hochgegangen?

Keine mir bekannte. Aber die Möglichkeit wurde damals wohl erstmalig(?) 
ernsthaft in Betracht gezogen. Und war da nicht auch mal was mit einer 
gescheiterten NASA Mission und einem falsch rechnenden Excel?

> Allerdings betrachtete Intel bis zu diesem Zeitpunkt Errata als
> Betriebgeheimnis, nur gegen NDA zu erfahren. Danach wurden sie
> öffentlich.

So gesehen also doch eine gute Sache.

von A. S. (Gast)


Lesenswert?

nur weil ich gerade mit einer neuen Charge Toshiba µC das gleiche 
Problem habe: Fährst Du den PIC auf der höchsten Quarzfrequenz?

von Gernot S. (Firma: Ing. Gernot Schreiner) (leuchtspirale)


Lesenswert?

Achim S. schrieb:
> nur weil ich gerade mit einer neuen Charge Toshiba µC das gleiche
> Problem habe: Fährst Du den PIC auf der höchsten Quarzfrequenz?

dsPIC33FJ64MC804-H/PT
Externes Oszillator-Modul SG-310 SCF C mit 16.0MHZ & 100ppm
;(Fin = 16MHz) / (PllPre = 2)  => Fref = 8MHz
;(Fref = 8MHz) * (PllDiv = 20) => Fvco = 160MHz
;(Fvco = 160MHz) / (PllPost = 2) => Fosc = 80MHz => Fcyc = 40MHz
zulässige Bereiche:
externer Takt, Fin: 0..40MHz
Fref: 0,8..8MHz
Fvco: 100..200MHz
Fosc: ..80MHz
Fcyc: ..40MHz

Welches gleiche Problem? Geht beim Toshiba die UART auch nicht richtig?

von (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· (Gast)


Lesenswert?

UARTs scheinen herstelleruebergreifend Sorgenkinder zu sein.
Auch TI hat nach einigem hin und her folgendes Erratum
veroeffentlicht:

SLLZ058A - TL16C752C/TL16C754C/TL16C2752 Short STOP Bit Errata

"If the transmitter sends a STOP bit of shorter duration,
e.g., 98 ms instead of 104 ms, the TL16C75xC can miss
a subsequent START bit."

Die Baudrate ist 9600 und statt ms sind wohl us gemeint :-)

Zum dsPIC33:
Die dsPIC33 habe ich wegen ihrem enormen Stromhunger nie
ernsthaft in Erwaegung gezogen.
Da ich aber, fuer Kleinkram, mittlerweile auch die alten
Midrange-PICs einsetze, gucke ich ihn mir vielleicht doch noch
mal an. Gibt es da einen empfehlenswerten kleinen?

von Gernot S. (Firma: Ing. Gernot Schreiner) (leuchtspirale)


Lesenswert?

(º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· schrieb im Beitrag 
#4901029:
> UARTs scheinen herstelleruebergreifend Sorgenkinder zu sein.
> Auch TI hat nach einigem hin und her folgendes Erratum
> veroeffentlicht:
>
> SLLZ058A - TL16C752C/TL16C754C/TL16C2752 Short STOP Bit Errata
>
> "If the transmitter sends a STOP bit of shorter duration,
> e.g., 98 ms instead of 104 ms, the TL16C75xC can miss
> a subsequent START bit."
>
> Die Baudrate ist 9600 und statt ms sind wohl us gemeint :-)
Ja, typisch, gleicher Fehler.
Anfänger.

Hab im Herbst grad für ein Demo-Car für die CES einen LIN-Slave auf 
einem PIC24 implementiert. Der setzt das Receiver-Interrupt-Flag bereits 
in der Mitte des Stop-Bits. Wenn du dann auf eine PID 
(Sendeaufforderung) sofort antwortest, schneidet dein dominates Startbit 
die zweite Hälfte vom Stopbit ab und die Response wird für die anderen 
Teilnehmer unter Umständen unverständlich, weil sie halt auch die 
Start-Flanke zu früh bekommen. Also Workaround: Zusätzlicher 
Timer-Interrupt um eine halbe Bitzeit zu warten mit dem Sendebeginn. 
Würd' mich interessieren in wievielen Automotive-Produkten mit PICs 
dieses Problem übersehen wurde.
Und weil ich nur den internen RC-Oszillator verwendet habe (PCB-Size), 
habe ich die LIN-Baud-Sync-Funktion der UART verwendet. Die hat 
natürlich auch einen Bug und ich hab einen zusätzlichen 
Flanken-Interrupt einbauen müssen.
Anscheinend haben die diese Funktion zuerst falsch spezifiziert und dann 
nicht ein einziges Mal getestet. Im Errata steht natürlich auch nix...

Programmieren von Peripherie-Modulen:
90er Jahre: Wenn was nicht geht hast was falsch programmiert.
Heute: Wenn's nicht geht such den Bug im Chip.

> Zum dsPIC33:
> Die dsPIC33 habe ich wegen ihrem enormen Stromhunger nie
> ernsthaft in Erwaegung gezogen.
Ja, Strom ziehen die ordentlich. Allerdings war 2009 die Anforderung 
10MBaud auf der UART eines von den Auswahlkriterien und ich hab etliche 
grosse Hersteller (ST,ARM,NEC,Freescale,TI usw.) durchgeschaut und nur 
den PIC mit einem Gehäuse unter 100 Pins gefunden der das kann. Alle 
anderen sind nur so ca. bis 3MHz gegangen.

> Da ich aber, fuer Kleinkram, mittlerweile auch die alten
> Midrange-PICs einsetze, gucke ich ihn mir vielleicht doch noch
> mal an. Gibt es da einen empfehlenswerten kleinen?
Wenn Du wenig Betriebs-Stromaufnahme willst, dann sind die Neuesten am 
Besten, die brauchen die wenigsten A/Hz (mA/MHz). Also die dsPIC33E 
Familie. Da gibt's sogar die EV-Familie, die noch mit 5V funktioniert, 
das ist bei manchen Designs ganz praktisch. Wenn Du allerdings einen 
besonders kleinen Sleep-Strom brauchst, sind wahrscheinlich die PIC24 
mit XLP besser.

von Gernot S. (Firma: Ing. Gernot Schreiner) (leuchtspirale)


Lesenswert?

Hallo Hr. Professor!

> ich würde Ihnen als mein ehemaliger N5c/1985-Schüler ja sehr gerne
Wow! Gutes Gedächtnis, dafür dass sie uns nie in einem Fachgegenstand 
unterrichtet haben sondern "nur" in der Fünften im Labor.

> einige Nachhilfe-Tipps dazu geben, aber ich bin heute (!) 69 Jahre alt
> und empfinde mich nicht mehr total am neuesten Stand der µC-Technik,
> schon gar nicht der PIC-Technik, weil ich ja schon immer der Meinung
> bin, dass ein PIC gar kein µC ist ......
Wenn er kein uC ist, was ist er dann?
Oder was ist dann ein uC?

> Dass in die neuartigen Sensoren irgendwelche µC-Flöhe hinein gehören,
> ist klar, und von Microchip gibt es ja einen ganz winzigen, wie ich
> weiß.
Ja PIC10. 6-poliges SOT23-Gehäuse. Ist süss, hab ich auch schon mal 
verwendet.

> In allernächster Zeit zwar nicht, aber gleich danach (....) werde ich
> Sie mal auf ein Bier einladen!
Ja, gerne, vieleicht treffen wir uns ja auch im November in der Schule.

> Noch viel Spaß beim Fehlersuchen!
Wenn's doch bloss Spaß machen würde...
2 Wochen zu versuchen einen Workaround für den CAN-Bug zu finden weil 
der Kunde Abbrüche beim Umflashen hat ist nicht mehr lustig. (CAN 
meldet, dass Telegramm einwandfrei versendet. Alle Empfänger meinen, 
dass da garnix war. Workaround wird sein: Derivat tauschen auf eines mit 
2 CAN's. Zweiten CAN zur Überwachung des Ersten nehmen.)

Grüsse, Gernot Schreiner

von Gernot S. (Firma: Ing. Gernot Schreiner) (leuchtspirale)


Lesenswert?

chris schrieb:
> Mich würde interessieren, wie der To aus demselben Takt die pll um ein
> paar ppm verstellen konnte. So wie ich die pll von microchip kenne geht
> dies absolut nicht.

Ich hab's mir jetzt noch mal angeschaut, ist ja doch schon 8 Jahre her.
"Ein paar ppm" ist wohl etwas drastisch formuliert. Sag' ma ein paar 
duzende ppm. Die Abweichung zweier gleicher Oszillator-Module mit 
+/-100ppm Toleranz die ich auf beiden Seiten verwendet habe hat 
ausgereicht, dass mir das Problem überhaupt aufgefallen ist. Die 
Empfangstoleranz der UART ist jedenfalls deutlich geringer als die 
üblichen 10000ppm (1%).

Die PLL lässt sich recht fein tunen, da gibt's auch schon Schrittweiten 
so um 250ppm. Einfach alle Kombinationen durchpermutieren und dann nach 
Ausgangsfrequenz sortieren.

von Gernot S. (Firma: Ing. Gernot Schreiner) (leuchtspirale)


Lesenswert?

> Genau das ist ja irgendwie die Sache. Niemand aus einer professionellen
> Liga käme je auf die Idee sowas zu machen.
Naja, dafür dass ich nicht professionell bin kann ich ganz gut leben 
davon.

von A. S. (Gast)


Lesenswert?

Gernot S. schrieb:
> Welches gleiche Problem? Geht beim Toshiba die UART auch nicht richtig?

nein, bei meiner charge Toshiba klappt die Kombinatorik auf einmal bei 
einem Modul nicht mehr und verzögert sich um einen internen Takt wenn 
die Frequenz maximal ist.

Beim den 18er Pics bin ich immer wieder von deren Errata eingeholt 
worden: Bei 8Bit+Parity werden Daten zerstört, wenn Senden UND Empfangen 
gleichzeitig passiert. Da bin ich echt traumatisiert, auch wenn ich viel 
und gerne mit den gemacht habe.

von Jemand (Gast)


Lesenswert?

Der TO hat nicht unrecht. Auch ich habe schon Fehler in PIC24 gefunden, 
die ja nicht unähnlich sind.

Beispiel:
Beim PIC24FJ128GC006 funktioniert ein LCD-Pin nicht. Das hat mir eine 
Platine gekostet. Bis heute findet sich das nicht im Erratasheet. Hier 
kann man mehr lesen:
http://www.microchip.com/forums/m900661.aspx

Andererseits ist das bei anderen Chips und Herstellern auch nicht 
besser:
So hatten wir bei den SAM7 schon Probleme mit dem Flash, da hat uns 
ATMEL dann als Reaktion die waitstates für das Flash bei 50MHz 
hinaufgesetzt.
Das fiese: Nur uns, alle anderen dürfen so weitersuchen, und sich dann 
wundern...

Von Renesas hört man bei uns in der Firma ähnliche Geschichten.

Beim STM32 fixen unsere Firmwerker permanent Bugs in der Peripheral Lib, 
cube soll nur vor Fehlern strotzen.

Drum: Das ist kein Microchip-spezifisches Problem. Ein moderner 
Controller ist ein komplexes Gerät. Alles testen ist unmöglich. 
Feherfreie Hardware gibt es nicht.

von Sven L. (svenl)


Lesenswert?

Hallo zusammen,

ich bin da auch ein gebranntes Kind, was die dokumentierten und 
undokumentierten Errata bei Microchip angeht...

Auch die Qualität der Datenblätter lässt oft zu wünschen übrig. Da steht 
im dritten Nebensatz die entscheidende Information wie was funktioniert. 
Oder auch innerhalb gleicher Familien funktioniert die Peripherie völlig 
unterschiedlich, sodass man Code nicht so ohne weiteres wiederverwenden 
kann. Das eine I2C generiert ein ACK automatisch, beim nächsten muss man 
es selbst tun. Dann gibt es da Betriebsmodi, die können gar nicht 
funktionieren...

Wenn ich überlege wie oft selbst einfachste Dinge nicht so funktionieren 
wie es im Datenblatt steht oder es einfach nur behämmert beschrieben 
ist, dann sind andere Controller echt eine Wohltat!

Bei Atmel funktioniert es ja wenigstens so wie es im DB steht...auch ist 
die Anzahl der Errata oft deutlich geringer als bei Microchip. Ich bin 
mal gespannt wie es weitergeht...ob Microchip endlich bessere Qualität 
an den Tag legt oder die ehemaligen Atmel Produkte schlechter werden.

Dass man einen komplexen Controller nicht komplett testen kann, lasse 
ich so nicht gelten! Die Tests können vollständig automatisiert werden 
und auch das Beschreiben der Tests ist eine endliche Aufgabe. Microchip 
nimmt es da wohl eher nicht so genau...

Schaut man sich zum Beispiel die Cypress PSoCs an, dann ist es echt 
erfrischend wie wenige Fehler die Dinger trotz der enormen Komplexität 
haben. Da funktioniert einfach alles so wie beschrieben...Wahnsinn, 
oder?

Microchip ist zwar günstig, aber wenn ich nachher Wochen verheizen tue, 
um ein undokumentiertes Silicon Errata zu finden und zu umschiffen, dann 
relativiert sich der Kostenvorteil sehr schnell!

Viele Grüße!

Sven

von Jemand (Gast)


Lesenswert?

Sven L. schrieb:
> Microchip ist zwar günstig, aber wenn ich nachher Wochen verheizen tue,
> um ein undokumentiertes Silicon Errata zu finden und zu umschiffen, dann
> relativiert sich der Kostenvorteil sehr schnell!

Microchip ist eben typische mittlere Qualität.

Im Gegensatz zu TI haben sie einen funktionsfähigen Support, im 
Gegensatz zu Maxim liefern sie ihre Chips auch wirklich aus (die 
Verfügbarkeit von Microchip ist allgemein relativ gut). Im Gegensatz zu 
NXP haben sie keine Scherzabkündigungen am laufenden Band. Im Gegensatz 
zu diversen "IOT Powerhouses" muss man nicht betteln, um Datenblätter zu 
bekommen.

Dafür hat man ein Fehlerchen mehr, und die Featuers sind meist ein 
bisserle schlechter als anderswo.

Es könnte deutlich schlimmer sein. Aber auch besser.

Ich kann damit leben.
Was die Datenblätter angeht: Es gibt deutlich schlimmeres. Ich finde sie 
mindestens brauchbar.

Cypress ist allerdings wirklch ein Positivbeispiel, da muss ich dir 
zustimmen.

von Soul E. (Gast)


Lesenswert?

Axel S. schrieb:

> Bastler schrieb:
>> Erratas werden nur geschrieben wenn wirklich viele Anwender betroffen
>> sind.
>
> Ich kann nur hoffen, daß das die Hersteller nicht so sehen.

Sie sehen es so. Genau da liegt ja das Problem.


> Jeder bekannte, aber verschwiegene Fehler kann zu verlorener Arbeitszeit
> beim Kunden führen. Und in der Folge zum Verlust eines Auftrags. Das
> kann der Hersteller vorher nicht wissen. Deswegen ist es auch in seinem
> Interesse, die Macken seiner Produkte umfassend zu dokumentieren. Nach
> Möglichkeit, bevor ein Kunde darauf stößt.

Trotzdem bekommt man viele Errata Sheets erst nachdem das NDA 
unterschrieben ist, und auch erst nachdem man dem Lieferanten den Bug 
mehr oder weniger deutlich nachgewiesen hat. Vorher kann sich keiner 
vorstellen, dass das was nicht funktionieren sollte.

Was Transparenz angeht ist der große Japaner eigentlich vorbildlich. 
Holländer, Texaner, die anderen Texaner und Norweger eher nicht so.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.