Forum: Mikrocontroller und Digitale Elektronik Umstieg von AVR auf PIC


von Stefan S. (sschultewolter)


Lesenswert?

Hallo,

zu persönlichen Testzwecken möchte ich gerne in die Welt der PICs 
einsteigen. Interessant ist hier für mich nur die 8Bit-Reihe. Ich 
brauche keine 16 oder 32Bitter für meine Projekte.

Nun stellt sich die Frage, mit welchen man gut anfangen kann. Bislang 
habe ich hauptsächlich AVR Projekte mit den Attiny841/84/85 und 
Atmega328/644 erledigt.

Bei der Wahl des richtigen µC sind folgende Punkte entscheidend:

Spannungsversorgung: 3V-5V
Schnittstellen:
min. 1 UART
min. 1 SPI
optional I2C (selten benötigt, deshalb nur optional)
Gehäuse: SOIC oder TQFN
Kosten (Einzelstück): < 5€

Hatte schon einmal von microchip mit der Parametersuche beschäftigt, 
dort werden sicherlich einige aufgelistet, ua. dieser hier
http://www.mouser.de/ProductDetail/Microchip-Technology/PIC16F1614-E-ST/?qs=7PCaVhlmG1qOwWgwKHE1Tg%3D%3D

Gibt es eurer seits paar Vorschläge für bestimmte PICs?

von Programmierer (Gast)


Lesenswert?

Steig doch lieber auf was zukunftsicheres um statt vom einen Dinosaurier 
auf den nächsten. also zB einen ARM Cortex-M.

von Stefan S. (sschultewolter)


Lesenswert?

Hallo Programmierer,

ich habe hier noch einige ARM rumliegen.
Atmel SAMD21,
Atmel SAM3X8E,
STM43F4,

sowie  den Raspberry Pi 1/2.

Aber warum nicht sich noch die 8Bitter anschauen? Ich bastel nichts mit 
irgendwelchen TFT Panels. Wenn mal etwas visualiert werden soll, werden 
die Daten "textbasieren" zu einem übergeordneten System geschickt, der 
dann eine auswertung macht.

von Stefan S. (sschultewolter)


Lesenswert?

Alternativ würde ich gerne auf den Atmel SAM *C20/21* umsteigen. Aber 
dazu finde ich keine Distributor für kleinere private Mengen. Lediglich 
ein DevBoard direkt von Atmel habe ich gefunden.

: Bearbeitet durch User
von Gasssst (Gast)


Lesenswert?

Warum siehst Du Dir nicht die open parts library von Seeedstudio an? Die 
Teile sind Recht gängig und bei bedarf machen die nicht nur die Palatine 
zum spottpreis, sondern löten die Bauteile auch gleich drauf.

Für mich hat das prima funktioniert - man sollte aber trotzdem die 
footprints checken. Ich hatte einen drehwurm drin...  Der Vorteil ist - 
kein eigenes sourcing keine lange Diskussion was alles geht, geld, board 
design und bom hin und nach 4 Wochen ist das Teil auf Deinem Tisch.

von Stefan S. (sschultewolter)


Lesenswert?

???

von Anja (Gast)


Lesenswert?

Stefan S. schrieb:
> Gibt es eurer seits paar Vorschläge für bestimmte PICs?

Wenn es ein paar Pins mehr (28) sein dürfen:
PIC18F2520 (der ist das direkte Upgrade zum weit verbreiteten 16F876)
und besser für Hochsprache geeignet.

Weitere Lieblings-Pics von mir sind
PIC24FV32KA301
PIC24FV32KA302
Sind zwar 16-Bit, haben dafür aber einen 12 Bit ADC bei 5V Versorgung 
und viele hochauflösende PWMs.

Gruß Anja

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


Lesenswert?

Stefan S. schrieb:
> zu persönlichen Testzwecken möchte ich gerne in die Welt der PICs
> einsteigen.

Stefan S. schrieb:
> Bislang
> habe ich hauptsächlich AVR Projekte mit den Attiny841/84/85 und
> Atmega328/644 erledigt.

>min. 1 UART
>min. 1 SPI
>optional I2C (selten benötigt, deshalb nur optional)
>Gehäuse: SOIC oder TQFN
>Kosten (Einzelstück): < 5€

Dann wären doch die XMEGAs eigentlich der nächste logische Schritt. 
Schau Dir mal den XMEGA32E5-AU an. Der hat zuzüglich Deiner Wünsche auch 
noch kombinatorische Logik integriert, braucht wenig Strom rennt bis 
32Mhz.

von neuer PIC Freund (Gast)


Lesenswert?

PIC16F1459

Ohne Quarz direkt an eine USB-Buchse. Mit 5V auf dem Steckbrett immer 
noch dabei. Preisselektiert nach unten hin. Ist debugbar.

von Rudolph (Gast)


Lesenswert?

Stefan S. schrieb:
> Alternativ würde ich gerne auf den Atmel SAM *C20/21* umsteigen. Aber
> dazu finde ich keine Distributor für kleinere private Mengen.

Die sind eben noch sehr neu, falls die überhaupt schon richtig 
produziert werden.

Mit dem Xplained Board kann man aber schon ordentlich rum spielen bis 
die richtig verfügbar werden, zumal das Teil einen Arduino-Shield 
Anschluss hat.


Die kleinen PICs machen zumindest mir weniger Spass.
Die sind langsamer als die AVR, der Takt wird intern noch durch vier 
geteilt.
Dazu das MPLABX, die in der kostenlosen Version kastrierten Compiler und 
der PICKit3 - vom AVR weg ist das eher kein Schritt vorwärts.

von Wolfgang S. (ws01)


Lesenswert?

neuer PIC Freund schrieb im Beitrag #4325090:
> PIC16F1459
>
> Ohne Quarz direkt an eine USB-Buchse. Mit 5V auf dem Steckbrett immer
> noch dabei. Preisselektiert nach unten hin. Ist debugbar.

Eine Frage dazu: die USB-Unterstützung in den "Microchip Libraries for 
Applications" umfasst lt. Release Notes auch PIC16F. Ist dies bei 
Verwendung des massiv gecrippelten kostenlosen XC8 praktisch nutzbar? 
Für meine kleinen Basteleien kann ich mit dem sinnlos erhöhten 
Platzbedarf leben, ich argwöhne aber, daß USB zeitkritisch genug ist, um 
durch die gleichzeitig auch z.T. unvorhersehbar verlängerten 
Ausführungszeiten zu einem Problem zu werden. Oder sind das bereits 
vorübersetzte, linkbare Module? Sorry, wenn ich mich hier so an den 
Thread dranhänge, aber wenn man schon mal jemanden findet, der sich da 
auskennt ... :-)

von Volker S. (vloki)


Lesenswert?

Wolfgang S. schrieb:
> die USB-Unterstützung in den "Microchip Libraries for
> Applications" umfasst lt. Release Notes auch PIC16F. Ist dies bei
> Verwendung des massiv gecrippelten kostenlosen XC8 praktisch nutzbar?

Das ist absolut kein Problem! Auch ist der anfänglich bescheidene XC8 
Output inzwischen sehr viel besser. (Ich habe mich anfangs selber auch 
"massiv" darüber echauffiert;-)

In den MLA Demos sind Konfigurationen für die 16F145x enthalten.
Die Beispielprojekte für CDC und HID habe ich etwas modifiziert, damit 
sie auch für (fortgeschrittene) Anfänger überschaubar werden. Das 
Resultat findet man hier 
http://www.hs-ulm.de/nocache/wir/Personal/PersonalSaSchr/vschilli/Mikrocontroller/USBProjekte/

Zur Originalfrage:

Ich würde auch die K22 (18F-14K22, 2xK22, 4xk22 ...) Typen oder einen 
der neueren PIC16Fxxxx (mit vier Stellen hinter dem F) empfehlen.

von Peter D. (peda)


Lesenswert?

Stefan S. schrieb:
> Interessant ist hier für mich nur die 8Bit-Reihe.

Arbeitet man viel mit Interrupts, machen die PIC keinen Spaß.
Man muß im Handler erstmal rauskriegen, welcher Interrupt überhaupt 
getriggert hat. Es gibt zumindest bei den 8-Bittern keine separaten 
Interruptvectoren je Quelle, wie man es von anderen Architekturen her 
gewohnt ist.

von Frank K. (fchk)


Lesenswert?

Stefan S. schrieb:

> Gibt es eurer seits paar Vorschläge für bestimmte PICs?

Zur Systematik:

PIC10 sind die ganz kleinen Teile
PIC12 ist "Baseline", also die kleinen Teile.
PIC16 ist die Basisreihe ("Midrange")
PIC18 ist eine halbe Stufe drüber. Hauptvorteil: besser an C angepasst

PIC16Fxx: Uralt-Teile, nicht mehr verwenden
PIC16Fxxx: ältere Chips, kann man nehmen
PIC16Fxxxx: morderne Chips ("enhanced Midrange")

PIC18Fxxx: Uralt-Teile, nicht mehr verwenden
PIC18Fxxxx: ältere Chips, kann man nehmen
PIC18FxxKxx: moderne Chips, 5V-Betrieb möglich
PIC18FxxJxx: moderne Chips, gehen nur noch bis 3.6V

Moderne Chips sind billiger und stromsparender. Die alten Chips werden 
nur noch für existierende Projekte angeboten, nicht mehr für 
Neuentwicklungen

Also: Bediene Dich irgendwo bei PIC18FxxKxx für den Anfang.

von pic (Gast)


Lesenswert?

Usb gibt es auch optimierte asm libs, welche auch ohne Interrupts und
in Zeitkritischen Applikationen funktioniert.

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


Lesenswert?

Stefan S. schrieb:
> zu persönlichen Testzwecken möchte ich gerne in die Welt der PICs
> einsteigen. Interessant ist hier für mich nur die 8Bit-Reihe. Ich
> brauche keine 16 oder 32Bitter für meine Projekte.

<seufz>

Jetzt werden mich bestimmt ein paar PIC-Fans wieder anflamen, aber sei 
es drum. Warum willst du ausgerechnet auf die älteste, verkorksteste und 
häßlichste (alles IMHO) 8-Bit Architektur umsteigen die es überhaupt 
gibt? Wenn du wenigstens PIC24 gesagt hättest...

Gegenvorschlag: wenn du dir mal eine andere 8-Bit Architektur ansehen 
willst, dann probier doch mal STM8S/STM8L. Die sind vergleichsweise 
regulär aufgebaut (erinnern ein bischen an Motorola 8-Bitter), haben 
viel schnuckelige Peripherie und brauchen wenig Strom. Es gibt mit dem 
SDCC eine freie C-Toolchain (und diverse kommerzielle wie Cosmic, Keil, 
Raisonance - alle auch mit größenbegrenzten Gratisversionen). Es gibt 
sowohl kommerzielle Evalboards (ST Discovery) als auch kleine 
Chinaboards zum Spottpreis. Und was ich am besten finde: von der 
Peripherie und dem Handling hat man einen recht nahtlosen Übergang zu 
den Cortex-M von ST.

> Bei der Wahl des richtigen µC sind folgende Punkte entscheidend:
>
> Spannungsversorgung: 3V-5V
> Schnittstellen:
> min. 1 UART
> min. 1 SPI
> optional I2C (selten benötigt, deshalb nur optional)
> Gehäuse: SOIC oder TQFN
> Kosten (Einzelstück): < 5€

Hat der STM8 alles und mehr. Ein Grund für mich, mir den anzusehen war 
daß einige STM8L einen LCD-Controller onboard haben. Haben einige PIC24 
zwar auch, aber erst ab 64 Pins aufwärts.

von Stefan S. (sschultewolter)


Lesenswert?

Rudolph schrieb:
> Mit dem Xplained Board kann man aber schon ordentlich rum spielen bis
> die richtig verfügbar werden, zumal das Teil einen Arduino-Shield
> Anschluss hat.
Da bin ich schon ein bisschen am nachdenken. Arduino Shield kompatibel 
will/brauch ich nicht.

@Frank:
Danke für die Auflistung, die ist nicht verkehrt. Kenne mich nämlich mit 
der Historie der PICs so nicht aus.

: Bearbeitet durch User
von Michael S. (rbs_phoenix)


Lesenswert?

Ich nutze bisher nur PICs, weil ich die ganze Umgebung schon habe und 
mir die 8bitter (einmal ein PIC24) gereicht haben. Da ist also noch Luft 
nach oben.

Deine Kriterien werden meines Wissens von jedem PIC (vmtl. auch jeder 
anderen µC Familie) unterstützt, die in den letzten Jahren/Jahrzehnten 
rausgekommen sind. Ich empfehle auch neue PICs (16Fxxxx, 18FxxKxx) zu 
nehmen. Sie können bei kleinerem Preis mehr als die alten.

Die 16F Reihe wird oft auch wegen dem Bank-Switching im RAM kritisiert. 
In einer Hochsprache kann dir das aber sowas von Schnuppe sein, da das 
alles automatisch gemacht wird. Für ein Paar Tasten/Sensoren einlesen 
und auf einem Character-Display etwas anzuzeigen reicht jeder halbwegs 
aktuelle µC aus. Es kommt eben darauf an, was man machen will.

Dennoch, wenn es um 8bitter geht, würde ich dir einen PIC18 empfehlen, 
da diese ein bisschen besser aufgebaut und etwas performanter sind. Was 
es meines Wissens allerdings nicht bei den PIC18er gibt:
CLC (Configurable Logic Cells)
NCO (Numerically Controlled Oscillator)
OpAmp (rein Analog mit wählbaren In/Output)
witzigerweise 16bit PWMs

CLC, NCO, OpAmp und weitere Core-Independent Modules sind z.B. im 
PIC16F1717/18/19.
Die PIC16F145x-Reihe ist meines Wissens auch die einzige, die einen 
ausreichend genauen Oszillator für USB drin hat. Bei den anderen braucht 
man eben noch einen externen.


Die PIC18er haben hingegen als einzige 8bitter die Option eines 
CAN-Moduls, Ethernet-Modul (nur 18F66J60 u. 18F67J60), DMA und Hardware 
RTCC. Außerdem gibt es hier auch den meisten Speicher unter den 
8bittern.


Stefan S. schrieb:
> Gehäuse: SOIC oder TQFN

TQFN? Gibt es auch, aber ich denke, du meinst TQFP!?

Bei PICs finde ich es angenehm, dass man pro µC viele verschiedene 
Gehäuse hat. Eigentlich alle mit <= 40 Beinen gibt es auch als 
Through-Hole und gut von Hand lötbaren SMD (SOIC, TQFP) - und das auch 
bei den 16- und 32bittern. Außerdem gibts von popeligem 6pinner PIC10 
bis zum >100pinner PIC32 alles unter einem Dach mit einer IDE und einem 
Programmer (beim PicKit3 gibt es da allerdings ein paar Ausnahmen).
Ich wollte mich auch mal einfach interessehalber mit ARMs beschäftigen. 
Ich habe auch ein STM4F DiscoveryBoard, es fehlt also nur noch die IDE. 
Aber irgendwie kann ich mich nicht aufraffen, weil mir der 
Anwendungsfall fehlt. Ich reize ja nichtmal annähernd die 16bitter aus 
und selbst dann kämen noch die PIC32. Das einzige Argument für mich wäre 
der Preis, weil die STM32er einem ja hinterher geworfen werden. Aber mit 
den PICs, dessen IDE und den Datenblättern kenne ich mich aus. Da gucke 
ich mir lieber mal FPGAs an, das ist immerhin was ganz anderes.


Stefan S. schrieb:
> min. 1 SPI
> optional I2C (selten benötigt, deshalb nur optional)

Da musst du genau gucken. Es wird die Anzahl der MSSP-Module angegeben. 
Ich hatte beispielsweise mal einen PIC mit 2 MSSP-Modulen (SPI/I²C). Ich 
wollte 2 I²C Schnittstellen haben und habe dann feststellen müssen, dass 
eines der beiden MSSP-Module nur SPI kann. Also wenn man 2x I²C haben 
will, muss man ganz genau gucken. Wenn man 1x I²C und 1x SPI haben will, 
ist man möglicherweise gezwungen, I²C beim MSSP1-Modul (und die 
entsprechenden Pins) zu nutzen. Willst du nur I²C oder SPI benutzen, 
ist das eigentlich nie ein Problem.

von Peter D. (peda)


Lesenswert?

Michael S. schrieb:
> Also wenn man 2x I²C haben
> will, muss man ganz genau gucken.

Ist aber nur kritisch, wenn man I2C-Slave oder I2C-Multi-Master braucht.
I2C-Single-Master kannst Du beliebig viele mit 2 normalen IO-Pins 
machen.
Genauso SPI-Master geht mit 4 beliebigen IO-Pins.

: Bearbeitet durch User
von Michael S. (rbs_phoenix)


Lesenswert?

Peter D. schrieb:
> Michael S. schrieb:
>> Also wenn man 2x I²C haben
>> will, muss man ganz genau gucken.
>
> Ist aber nur kritisch, wenn man I2C-Slave oder I2C-Multi-Master braucht.
> I2C-Single-Master kannst Du beliebig viele mit 2 normalen IO-Pins
> machen.
> Genauso SPI-Master geht mit 4 beliebigen IO-Pins.

Ja schon. Ich nehme ja aber nicht umsonst µCs mit MSSP-Modul. Ich 
bräuchte bei 3x SPI auch kein einziges Modul, aber es ist deutlich 
angenehmer mit, finde ich ;)

Außerdem habe ich dann auch einen gefunden, der 2x I²C hat.

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.