Forum: Mikrocontroller und Digitale Elektronik PIC32 - Viele Fehler in der Errata


von Oli H. (lavalu)


Lesenswert?

Moin moin,

ich würde gerne von PIC18F auf PIC32MX795 wechseln da ich den PIC18F 
nicht überreden kann 2 Audiospuren abzuspielen und zu mischen (wäre mir 
aber beinahe gelungen!!).
Nun ist die Frage welcher Controller sollte es sein, ich möchte dabei 
gerne auf 32 Bit, da ich so nicht so schnell die Leistungsgrenze 
erreiche und mir nicht so viele Gedanken über möglichst effektive 
Routinen machen muss.

Ich benötige mind. 59 I/Os (natürlich nicht nur für Audio) und eine 
ordentliche Portion RAM und Vdd 2,7V.

Meine Wahl viel daher auf den erwähnten PIC32MX795 der zudem gut 
verfügbar ist.

Es gibt jedoch eine Sache bei der ich mich schwer tue diese 
einzuschätzen: Die lange Errata Listd die über die ganzen Fehlerchen des 
Controller aufklärt und eine Info gibt wie diese behoben werden können.

http://ww1.microchip.com/downloads/en/DeviceDoc/80480K.pdf

Bauchschmerzen hab ich dabei z.B. bei den Fehlern Nr 43/44 die mir Quasi 
Interrupts beim lesen des Flashes verbieten und die SPI-, I2C- und 
UART-Nutzung nur in zusammenarbeit mit dem DMA ermöglicht.


Die Fragen die mir auf der Seele brennen:
- Kann man davon ausgehen das diese Fehler nur in den sehr früh
  hergestellten PICs auftauchen?
- Sind die Revisionen bis A3 sehr alte PICs oder sind das die aktuell
  vertriebene Revision?
- Werden die Errata Einschränkungen in den Microchip Librarys
  berücksichtigt oder muss ich die dann anpassen?

Fragen über Fragen. Bitte helft mit Licht ins dunkel zu bringen evtl hat 
der eine oder andere auch bock mal ne Rev Nr an seinem TestBoard 
auszulesen (PIC32MX575/675/695/775/795).

von Oli H. (lavalu)


Lesenswert?

Hat keiner ne Idee was ich mit der Errata anfangen soll?

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

Es gibt noch andere 32-Bit-Controller.
z.b. ARM Cortex-M3 in STM32F etc.

von Arc N. (arc)


Lesenswert?

Oli Holli schrieb:
> http://ww1.microchip.com/downloads/en/DeviceDoc/80480K.pdf
>
> Bauchschmerzen hab ich dabei z.B. bei den Fehlern Nr 43/44 die mir Quasi
> Interrupts beim lesen des Flashes verbieten und die SPI-, I2C- und
> UART-Nutzung nur in zusammenarbeit mit dem DMA ermöglicht.



> Die Fragen die mir auf der Seele brennen:
> - Kann man davon ausgehen das diese Fehler nur in den sehr früh
>   hergestellten PICs auftauchen?

Nein, "Only the issues indicated in the last column of Table 2 apply to 
the current silicon revision (A3)."


> - Sind die Revisionen bis A3 sehr alte PICs oder sind das die aktuell
>   vertriebene Revision?

s.o. die sind aktuell.

> - Werden die Errata Einschränkungen in den Microchip Librarys
>   berücksichtigt oder muss ich die dann anpassen?

Nein, die werden, soweit ich das bislang gesehen/gebraucht habe, nicht 
berücksichtigt.

von picler (Gast)


Lesenswert?

Oli Holli schrieb:
> Nun ist die Frage welcher Controller sollte es sein, ich möchte dabei
> gerne auf 32 Bit,

Warum gleich 32bit, probier doch 16bitter mit dsp zb dsPIC33E/PIC24E die 
sind stark bis 70MIPS (PIC32 = 80Mips), ein Umstieg von pic18 auf diese 
Serie ist einfacher, als bei PIC32.

Oli Holli schrieb:
> (wäre mir
> aber beinahe gelungen!!).

das wäre mit dsPIC dann gar kein Thema...

von Oli H. (lavalu)


Lesenswert?

Danke für die Antworten.

@ Arc: Und danke für die Lesehilft, wer lesen kann ist klar im Vorteil. 
Meine Lieblingsantwort wäre jedoch gewesen: Der Pic wird jetzt ohne 
Fehler hergestellt.

Bei den dsPICs find ich leider keinen der mit 2,7V zurecht kommt und 
dabei ab 32kByte mitbringt. Die 32kByte müssten allerdings schon sein da 
beim Lesen der SD Karte zum wiedergeben der 2 Audiospuren doch 
erhebliche Wartezeiten abgepuffert werden müssen bis die SD die Daten 
die gelesen werden sollen zusammen gesucht hat.

Ich werd mit den Arm nochmal anschauen. Ist der Umstieg von PIC18 auf 
ARM anspruchsvoller als vom PIC18 auf 32? Hat da schon jemand 
Erfahrungen gesammelt?

von Jens P. (picler)


Lesenswert?

Oli Holli schrieb:
> Ich werd mit den Arm nochmal anschauen. Ist der Umstieg von PIC18 auf
> ARM anspruchsvoller als vom PIC18 auf 32? Hat da schon jemand
> Erfahrungen gesammelt?

ARM und PIC32 sind eine vergleichbare Architektur. Da dürfte es 
wesentlich einfacher sein vom PIC18 auf einen PIC24 umzusteigen.

Vielleicht diesen hier: PIC24FJ256GB210

100Pins, knapp 100k RAM und 2,2-3,6V

von Frank K. (fchk)


Lesenswert?

Oli Holli schrieb:

> Die Fragen die mir auf der Seele brennen:
> - Kann man davon ausgehen das diese Fehler nur in den sehr früh
>   hergestellten PICs auftauchen?
> - Sind die Revisionen bis A3 sehr alte PICs oder sind das die aktuell
>   vertriebene Revision?
> - Werden die Errata Einschränkungen in den Microchip Librarys
>   berücksichtigt oder muss ich die dann anpassen?

Die Microchip Libraries berücksichtigen alle bis dahin bekannten Errata, 
deswegen macht es da zB auch keinen Sinn, selber einen Ethernet- oder 
USB-Stack zu entwickeln. Microchip kennt seine Bausteine besser.

Ich habe ein paar Sachen mit PIC32 gemacht, und bislang war ich nicht 
von den Errata betroffen. Mag sein, dass ich Glück hatte. In vielen 
Fällen sind das auch ganz spezielle Konstallationen, wo so ein Fehler 
zum Tragen kommen. Und: Luminary Micro ist schlimmer - dort sind die 
Bugs schwerer. Das ist also kein spezielles Microchip-Problem.

fchk

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

Der PIC32 ist ein MIPS (ohne Pipeline Interlock), daß bringt ein paar 
Besonderheiten bei der Assembler-Programmierung mit sich.

Der Cortex-M3 ist ein ARM mit Nur-Thumb2-Codesatz und standardisierter 
Interrupt-Verwaltung.

Im Prinzip sind es beide RISC-Architekturen die für schnelle Ausführung 
und stromsparende Applikationen ausgelegt sind.

von Frank K. (fchk)


Lesenswert?

Oli Holli schrieb:

> Ich werd mit den Arm nochmal anschauen. Ist der Umstieg von PIC18 auf
> ARM anspruchsvoller als vom PIC18 auf 32? Hat da schon jemand
> Erfahrungen gesammelt?

Wenn Du bei Microchip bleibst, ist der Umstieg einfacher, da Du Deine 
Tools (ICD3 bzw PicKIT3) und IDE weiter benutzt und einfach nur einen 
neuen Compiler verwendest. Außerdem ist die Peripherie sehr ähnlich.

Der CPU-Kern spielt keine Rolle, darum kümmert sich der jeweilige 
Compiler.

fchk

von Frank K. (fchk)


Lesenswert?

Wofür brauchst Du eigentlich Vdd=2.7V?

fchk

von (prx) A. K. (prx)


Lesenswert?

Oli Holli schrieb:
> Meine Lieblingsantwort wäre jedoch gewesen: Der Pic wird jetzt ohne
> Fehler hergestellt.

Gibt es in dieser Grössenklasse nicht. Je komplexer, desto mehr Fehler. 
Zudem bleiben Fehler, die die ersten 1-2 Revisionen überlebt haben, oft 
auf ewig erhalten, weil der Hersteller sich auf neue Chips mit 
erweiterter Funktionalität statt auf Fehlerbehebung alter Chips 
konzentriert. Der neue hat dann ein paar alte Fehler weniger - dafür 
kommen zum Ausgleich ein paar neue hinzu.

von Hans (Gast)


Lesenswert?

STM32F4! Umstieg rentiert sich...

von usuru (Gast)


Lesenswert?

Errata Histor: Die Fehler 43/44 wurden im März 2012 neu überarbeitet, da 
kann es schon sein, dass noch Rev. A3 im Handel ist. Bestell Dir halt 
ein Sample und probier aus, ob Du betroffen bist.

Die dsPIC wären für Deinen Zweck ideal, da gibt es die dsPIC30-Serie mit 
Spannungen ab 2,2 Volt, aber recht wenig RAM (aber das hattest Du ja bei 
PIC18 auch). Und Du solltest Dir wirklich mal die PIC24F ansehen: 
Riesen-RAM bis 96 KByte und zwischen PIC18 und PIC24 liegen schon 
Welten, später ist der Sprung zu PIC32 dann nicht mehr so gross.

von Oli H. (lavalu)


Lesenswert?

STM32F4

Die STM32F4.. sehen tatsächlich sehr interesant aus, ich hab allerding 
bis jetzt keine Erfahrung damit sammeln können. Und da Zeit wie so oft 
ne Rolle spielt beim jetzigen Projekt scheint mir "fchk"s Tipp bei 
Microchip zu bleiben sinnvoll.
Für weitere Projkte könnte der ARM allerdings ne gute Wahl sein.


2,7V

Die 2,7V sind die Minimal mögliche Spannung mit der alle Bauteile der 
Schaltung zurecht kommen. Das Modul ist Akkubetrieben und soll möglichst 
kompakt sien, daher war der gedanke:
Kleine Spannung -> kleine Leistung -> kleiner Akku -> kompaktes Modul.
Dazu gibt es nach dem Li-Mangan Akku nen Schaltregler der den Akku 
möglichst leer saugen soll.


PIC24FJ256GB210 und dsPICs

Der PIC24FJ256GB210 war tatsächlich auch schon in meinem Focus, der 
sieht tatsächlich gut aus und der Umstieg scheint damit sehr einfach zu 
sein.
Den PIC18 hab ich ziehmlich ausgereizt und sowohl Routinen als auch 
ganze Softwarestrukturen mehrmals neu programmiert um jede erdenkliche 
Zeile und Wartezeit einzusparen. Das kostete allerdings viel Zeit und 
ist eigentlich auch Blödsinn wenn es für 1 Euro mehr nen Controller zu 
kaufen gibt der das auch ohne Optimierung auf die Reihe bekommt.

Die Frage wäre dann noch PIC24 oder dsPIC ? Und dazu nochmal ein paar 
Infos was der alles erledigen muss:
- GPS Daten einlesen und auswerten mit I32 Werten und + - * : Rechnungen
- Einlesen und auswerten von ZigBee Funkmeldungen die als String 
ankommen
  (Stringketten verarbeiten)
- Fortwährendes einlesen und aufzeichnen von Beschleunigungsdaten um
  Bewegungsabläufe wiederzuerkennen (Ähnlich wie Spracherkennung)
- Im idealfall decodieren von mindesten 2 MP3 Audio Dateien, diese 
mischen
  und letzlich mit geringen verzögerungen an einen DAC senden.
  (Wav statt MP3 ist auch möglich mit 48kHz/16Bit)
- Auslesen der Audiodaten von SD Karte
- Auslesen und abarbeiten von Programmen von SD Karte (Keine PIC Progs)
- Abgleichen von bis zu 32000 GPS Punkten über SD Karte
- Log Daten auf die SD Kartes chreiben
- Ausgabe von Lauflichter, Anzeigen, Informationen über 48 Leds (Über 
PWM
  Baustein TLC5951 an SPI Bus)
- Und noch ein Paar Kleinigkeiten

Bisher war alles in Assembler Programmiert, aber aus Zeitgründen würde 
ich gerne auf C Umsteigen was jedoch nochmal mehr Resourcen braucht, 
daher wäre ich mal auf eure Meinung dazu gespannt.

von Arc N. (arc)


Lesenswert?

Frank K. schrieb:
> Die Microchip Libraries berücksichtigen alle bis dahin bekannten Errata,
> deswegen macht es da zB auch keinen Sinn, selber einen Ethernet- oder
> USB-Stack zu entwickeln. Microchip kennt seine Bausteine besser.

Zumindest die Peripheral-Library berücksichtigt einige Errata der 
PIC32MX320/.../MX460 definitiv nicht u.a. "A CPU data corruption may 
occur after a Flash erase or programming operation is complete if either 
the Prefetch module or CPU cache functionality are enabled." oder
"double write to peripherals by the CPU (the first write during the 
interrupt and the second write after the interrupt is serviced)"

Oli Holli schrieb:
> STM32F4
>
> Die STM32F4.. sehen tatsächlich sehr interesant aus, ich hab allerding
> bis jetzt keine Erfahrung damit sammeln können.

Und vielleicht noch noch die RX600/RX200 von Renesas ansehen rxmcu.com

von Chulio (Gast)


Lesenswert?

Also ich bin von der Errata voll betroffen. Hat mich sicher 3 Wochen 
grübeln gekostet. Jetzt lese ich immer zu erst die Errata, bevor ich 
einen MC aussuche.
Bei mir war's das SPI. Ich wartete bis die Daten fertig eingelesen waren 
in das SPI2BUF. Also wartete ich mittels der SpiChnIsBusy Funktion 
darauf. Denkste!
Laut Errata wird dieses Ready Schei...Bit ein SPI-Bit zu früh gesetzt. 
Also liest du immer 255 aus und kriegst einen Buf Overflow. Das ist voll 
super, wenn du ZB mit einer SD Karte experimentierst und eh schon die 
Krise hast, weil die doch etwas gewöhnungsbedürftig sind, wenn du noch 
nie damit gearbeitet hast.

Danke Microchip! Jetzt bin ich wieder bei meinem ST32F4 und alles läuft.
Und das doppelt so schnell...



Gruß Chulio

von Wilhelm F. (Gast)


Lesenswert?

Chulio schrieb:

> Also ich bin von der Errata voll betroffen.

Wenn ein Hersteller zu den ERRATA gute Workarounds anbietet, kann man 
tatsächlich auch damit oft noch leben. OK, schön ist was anderes.

Die LPC2000 von NXP waren anfangs voll von ERRATA, aber das legte sich. 
Philips arbeitete viel mit Keil zusammen, und beide boten die Lösungen.

Das schlimmste, was die sich mal leisteten, war die erste Serie LPC2300 
mit externem Bus. Wobei der Bus überhaupt nicht funktionierte. Davon war 
ich nicht betroffen, las aber die Mitteilungen verärgerter Nutzer, die 
bereits Musterplatinen herstellen ließen, und auf den Stein warteten, 
bzw. teils mit den defekten Steinen sogar bestückten. Es war etwa um 
2006 herum.

> Jetzt bin ich wieder bei meinem ST32F4 und alles läuft.

Ist der eigentlich frei von ERRATA? Oder, sagen wir mal, bekannten 
ERRATA?

von Chulio (Gast)


Lesenswert?

Wenn man bedenkt, was der Chip leistet, hat er eine sehr kleine 
Errata.Vor allem bemüht sich ST, diese Fehler zu beheben.
Aber auf alle Fälle die Errata lesen, wenn sich der Chip ungewöhnlich 
verhält und die Software nicht schuld sein kann...


Schöne Grüße

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

XMEGA128A3U wäre auch noch eine Variante. Mit seriellem SRAM und gutem 
DAC (I2S) kann man da sehr schön Audio mit machen. Ich habe mal einen 
Audio-Recorder (Wave, 16Bit, 48kHz) mit dem damals noch recht verbuggten 
XMEGA128A1 gebaut, der heute noch läuft. Der neue A3U-Chip ist 98% 
fehlerfrei und hat viele Hardware-Interfaces, die man über DMA und 
Eventsystem wunderbar koppeln kann.

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.