Hallo. Ich suche einen Leistungsfähigen PIC 18 für Anfängerprojekte. Ich will mit Leds, Tastern, LCD-Displays, Servomotoren, Schrittmotoren, Sensoren, Led Dotmatrix Displays usw. rumbasteln. Wenn ich die Grundlagen dann durch habe, sollte der PIC immer noch schnell genug sein und genügend Speicher für etwas größere Projekte haben. Es sollte ein uc sein, den man auf Steckbrettern verbauen kann. Was würdet ihr mir empfehlen?
Es wäre wirklich mal an der Zeit für einen umfassendes Anfängertutorial so wie das für den AVR hier.
http://www.sprut.de/electronic/pic/18f.htm http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1004&mid=10&lang=en&pageId=74
Tom schrieb: > Wenn ich die Grundlagen dann durch habe, sollte der PIC immer noch > schnell genug sein und genügend Speicher für etwas größere Projekte > haben. > > Es sollte ein uc sein, den man auf Steckbrettern verbauen kann PIC18F46k22: - 36 IOs (DIP-40) - 64 MHz - 3.896 Byte Ram - 64K Flash http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en547757 Tom schrieb: > Ich will > mit Leds, Tastern, LCD-Displays, Servomotoren, Schrittmotoren, Sensoren, > Led Dotmatrix Displays usw. rumbasteln. Ich habe all diese Punkte außer "Led Dotmatrix Displays" schon erfolgreich mit dem 18F45K22 gemacht. Der 46K22 ist gleich wie der 45K22, nur hat der 46K22 mehr RAM und Flash.
:
Bearbeitet durch User
Wichtiger Hinweis, um Probleme im Timing zu vermeiden: Bei den mir bekannten PIC10, PIC12, PIC16 und PIC18 braucht ein Cycle 4 Takte und fast alle Instruktionen 1 Cycle - bis auf Sprünge, die benötigen 2 Cycles. (Also 8 Takte) Bitte immer im Datenblatt nachschauen!
Tom schrieb: > Es sollte ein uc sein, den man auf Steckbrettern verbauen kann. Z.B. einen PIC12F675. > Was würdet ihr mir empfehlen? Das PICkit1 für den 12F675 gibts wohl nicht mehr, aber bestimmt auf jeden Fall Nachfolger. Der Pluspunkt war bei mir, daß das PICkit mit dem Ziel-µC schon rein ohne separates Netzteil an USB des Notebooks betrieben werden konnte, und halt MPLAB.
Wilhelm F. schrieb: > Das PICkit1 für den 12F675 gibts wohl nicht mehr, aber bestimmt auf > jeden Fall Nachfolger. Zum Programmieren würde ich das PICkit 3 empfehlen.
Ich würde nicht mehr mit PIC16 anfangen sondern gleich auf 18er setzen. Du must auch nicht gleich mit großen Bausteinen anfangen, von der Programmierung unterscheiden die sich kaum. z.B. der PIC18F26J50 hat auch gleich USB dabei in einem handlichen 28 Pin Gehäuse, wenn man mehr brauch z.B. den 18F46J50. Gleicher Aufbau nur mit mehr IOs. Mann muß nicht gleich alles mit einem Baustein erschlagen, lieber ein paar mehr zur Auswahl bestellen. Ich nehme da immer den aus einer Serie mit dem größten Speicher, meist sind die nur ein paar Cent teurer als die Abgespeckten. Die Serie hängt von den benötigten IO Funktionen und vom Platz ab. So ein PicKit3 ist super zum Programmieren, ist ja nicht nur ein Programmierer sondern auch gleich ein Debugger mit dem du dich durch dein System steppen kannst.
Max H. schrieb: > @ Wilhelm F. & P_ Richner: > Tom schrieb: >> PIC 18 Na und? Da gibts ja bestimmt auch was fertig. PIC-Assembler macht mir sogar auch noch Spaß. Überlege gerade was kleines für den 12F675.
Danke für eure Hilfe. Werd mir dann den 18F46xx ansehen. Danke auch für den Hinweis mit den 4 Takten pro Zyklus, ist beim Timer wichtig.
Tom schrieb: > Danke auch für den Hinweis mit den 4 Takten pro Zyklus, ist beim Timer > wichtig. Timer 1/3/5 können auch mit der vollen Oszillatorfrequenz zählen.
> Werd mir dann den 18F46xx ansehen.
Am besten einen der Typen, die 1,8 ... 5,5 Volt Versorgungsspannung
vertragen. Bei LCD-Displays sind 5 Volt einfacher, Bei SD-Karten 3,3
Volt.
Zum basteln braucht man eh nur 3,3 oder 5 Volt. Gibt sowieso kaum Peripherie, die 1,8 V verlangt.
Hallo Zusammen, ich rate Dir zu dem PIC18F452. Der hat ein paar Ports, AD-Wandler, USART usw. Dann hast Du von Anfang einen sehr leistungsfähigen PIC. Einen Schaltplan usw. findest Du hier: http://www.schwabenplan.com/downloads/d01600.pdf Die PICs der anderen User sind auch ganz gut.
Ingo Schick schrieb: > PIC18F452 Der 18F64K22 ist dem eigentlich in vielen Beziehungen überlegen: -Mehr Timer -Mehr RAM, Flash und EEPROM -Mehr UART, SPI, I2C -Mehr CCP -Mehr ADC-Kanäle -Schneller: 40MHz vs. 64MHz -Billiger (TME)
Hi, wie oben schon geschrieben, unbedingt das PICkit 3 nehmen. Ich habe mir damals das PICkit 2 gekauft, weil es so gelobt wurde. Viele neue Controller untestützt es aber nicht mehr, daher liegt es nur herum. Sonst ein Tipp: Ich suche meine PICs immer über den Selector von Microchip aus, hier der für die PIC18: http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1004&mid=10&lang=en&pageId=74 Eingeben was du an Peripherie, RAM, Flash, Gehäuse etc brauchst -> Resultate durchschauen. Auf das Datum im Datenblatt achten, am besten neue Chips nehmen (die sind im Deteil of sehr viel besser als die alten). Erhältlich sind alle die man dort findet bei "Microchip direkt". Die nehmen auch kleine Bestellungen von Privatkunden an, bei akzeptablen Versandkosten. Einer der wirklich Vorteile von Microchip - man kommt an neue Produkte, die noch nicht einmal Farnell oder Mouser haben.
@Humpfdidumpf (Gast) Voll ACK. Aber wenn man schon frisch anfängt, warum nicht gleich mit PIC24, kosten auch nicht mehr MfG Klaus
Der PIC24 ist nur bis 28 Pins Steckboardtauglich. Vllt. stöft das den TO. Ich bin mit dem PIC24 ganz zufrieden.
:
Bearbeitet durch User
Ingo Schick schrieb: > ich rate Dir zu dem PIC18F452. Das ist eine uralte Kamelle und von Microchip nicht für Neuentwicklungen empfohlen. Nachfolger ist der PIC18F4520, der wiederum vom PIC18F45K20 abgelöst wurde. fchk
Hallo, da gebe ich Frank und Max Recht. Die neueren Controller auf der Ebene gibt es leider nicht mehr im PLCC44 Gehäuse. Ansonstnen hätte ich den schon geändert. Leider sind die neuen Modelle nur noch in SMD bzw. den riesigen DIP-Gehäusen verfügbar. Im Ausbildungsbereich werden die wegen der Größe nicht so richtig angenommen. Ausbildungsstätten fragen nach wie vor die klassische 5,0 Volt Technik in Kombination mit dem PLCC Gehäuse angefragt. Da ist dieser Klassiker einfach unschlagbar. Für einen Einstieg in die PIC Welt reicht der auf jeden Fall für den Anfang aus. Allerding steuert Microchip inzwischen desen Abkündigung ein wenig über den Preis. Generell bringen alle Hersteller immer mehr Controller in seh kurzer Zeit heraus, was eine klare Übersicht nicht einfacher macht. Grüße Ingo
Ingo Schick schrieb: > Im Ausbildungsbereich werden die wegen der Größe nicht so richtig > angenommen. Ausbildungsstätten fragen nach wie vor die klassische 5,0 > Volt Technik in Kombination mit dem PLCC Gehäuse angefragt. Bauen die die Boards selber auf? Ansonsten kann denen doch egal sein, was für Bauformen verwendet werden. > Da ist > dieser Klassiker einfach unschlagbar. Für einen Einstieg in die PIC Welt > reicht der auf jeden Fall für den Anfang aus. Aber einen Baustein zu empfehlen, der ganz offiziell "not recommended for new designs" ist, das solltest Du zumindest hier unterlassen. Du tust den Leuten keinen Gefallen damit.
Auf die Frage: Bauen die die Boards selber auf? Ansonsten kann denen doch egal sein, was für Bauformen verwendet werden. Ja und Nein da ist der Markt 50:50 aufgeteilt. Die einen kaufen die fertigen Boards die anderen Bausätze. Allerdings geht in den Bereich durch Falschanschluß sehr viel kaputt. Da stellen sich alle dann die Frage was ist günstiger einen IC oder eine Leiterplatte zu tauschen. Die öffentlichen Kassen sind leer.... Und ein SMD Teil auf einem Steckbrett habe ich auch noch nicht viele gesehen. Hierfürr gibts den DIP40. Adapterplatine mit SMD-Prozzesor zahlen die wenigsten. Leider! Beim zeiten gebe ich Dir recht. Das habe ich bei mir zu spät realisiert, OK!
Frank K. schrieb: > Bauen die die Boards selber auf? Ansonsten kann denen doch egal sein, > was für Bauformen verwendet werden. Azubis bekommen alles klein, bis auf den allerletzten im Betrieb auffindbaren Baustein! Schneller, als du schauen kannst! Zwar gab es zu meiner Zeit noch keine µC, aber frühzeitig mal keinen Transistor mehr. Dann war mit praktischer Übung Hängen im Schacht, der Ausbilder mußte zur Not da wieder Theorie Unterricht dazwischen schieben. Eigentlich schaffte es nur ein einziger Azubi der Gruppe. Der klemmte sich überall dazwischen, hier, hallo, laß mich mal, ich kann das. May day may day, der Fotowiderstand brennt!!! ;-)
Danke für die weiteren Empfehlungen an µCs. Das man bei Microchip direkt bestellen kann und sogar kleine Mengen, wusste ich nicht. Super Info, danke :-)
Max H. schrieb: > Der PIC24 ist nur bis 28 Pins Steckboardtauglich. Vllt. stöft das > den > TO. Ich bin mit dem PIC24 ganz zufrieden. Hmm, ich habe mich von denen eigentlich nur ferngehalten weil ich dachte 16 Bit Controller seien schwerer bzw. anders zu programmieren, stimmt das so nicht? Was ist denn der Große Unterschied zw. den PIC18 und PIC24 ?
Tom schrieb: > Hmm, ich habe mich von denen eigentlich nur ferngehalten weil ich dachte > 16 Bit Controller seien schwerer bzw. anders zu programmieren, stimmt > das so nicht? Was ist denn der Große Unterschied zw. den PIC18 und PIC24 > ? 1. Der Prozessorkern hat jetzt 16 Bit Register, und zwar nicht nur ein W-Register, sondern 16 davon. Compiler können so wesentlich effizienteren Code erzeugen, und das Programmieren in Assembler macht deutlich mehr Spaß. 2. AVR und 8-Bit PICs haben getrennte Adressräume für Flash und RAM. Bei PIC24 kann man das genauso handhaben, aber der Compiler kann auch einen Teil des Programmspeichers in den RAM-Adressbereich einblenden, so dass Du Dich darum gar nicht mehr kümmern musst. Dein Leben wird dadurch wesentlich einfacher. 3. Die Peripherie kann mehr. UARTs können direkt LIN und IRDA-Modi. Es gibt teilweise DMA-Controller und noch einige Gimmicks mehr. 4. PIC18 ist von der Architektur her auf 4k-128 Byte=3968 Byte begrenzt. Mehr internes RAM kann der nicht ansteuern. PIC24 hat einen 64k-Adressraum, und es gibt viele PIC24, die 16k und mehr haben. Der PIC24EP512GU814 z.B. hat satte 52k RAM plus 4k extra für DMA. 5. Ein Opcode-Takt entspricht nicht mehr vier Quarz-Takten, sondern nur noch zwei. Die PIC24EP laufen intern zB bis zu 140 MHz, also 70 MHz Prozessortakt. Wenn man bedenkt, dass ein PIC24EP nicht mehr als ein großer AVR ATmega kostet, dann weiß ich aber, was ich nehme und was nicht. 6. dsPIC33 ist PIC24 plus ein paar DSP-Befehlen und Registern zusätzlich. Ansonsten kannst Du oben statt PIC24 auch dsPIC33 hinschreiben, und es stimmt immer noch. Meist sind dsPIC33FJ höher getaktet als pinkompatible PIC24FJ, bei PIC24EP und dsPIC33EP gibts aber disbezüglich keinen Unterschied. fchk
Tom schrieb: > Hmm, ich habe mich von denen eigentlich nur ferngehalten weil ich dachte > 16 Bit Controller seien schwerer bzw. anders zu programmieren, stimmt > das so nicht? Was ist denn der Große Unterschied zw. den PIC18 und PIC24 > ? Die Programmierung ist sogar einfacher bei den PIC24. Die haben keinen segmentierten Speicher und einen echten Softwarestack. C-Programme sind so wesentlich effizienter. Der Kerntakt ist bei gleicher Oszillator-Frequenz doppelt so schnell wie bei den PIC18. Timer können zu 32Bit-Timern zusammengefasst werden. Die Peripherie hat im Detail mehr Features. Von Microchip gibt es ein (älteres) Dokument: "PIC18F to PIC24F Migration: An Overview" wo die Differenzen im Detail beschrieben sind.
Ich habe PIC12/16/18 in ASM und C gemacht, und bin dann zum PIC24 weitergegangen. ICh würde sagen es ist nicht schwieriger, sondern anders. Der PIC24 hat kein Banking, was ich bei den 8bittern eigentlich nie als Problem gesehen habe. Ich weiß nicht, welche Sprache der TO verwenden will. In C ist es eigentlich kein unterschied, in ASM würde ich sagen, ist der PIC24 ein bisschen schwieriger, da er mehr Befehle hat und es von vielen befehlen mehrere Varianten gibt. z.B. Bei ADD-Befehl: -ADD f -ADD f,WREG -ADD #lit10,Wn -ADD Wb,Ws,Wd -ADD Wb,#lit5,Wd
Max H. schrieb: > in ASM würde ich sagen, ist der PIC24 ein > bisschen schwieriger, da er mehr Befehle hat und es von vielen befehlen > mehrere Varianten gibt. Ich finde die Logik völlig verrückt, daß wenige Befehle das Programmieren vereinfachen sollen. Das Gegenteil ist der Fall, ich muß mir nicht das Gehirn verrenken und umständliche Würgarounds schreiben, wenn ich bestimmte Befehle brauche, ich nehme einfach den passenden. Und es zwingt mich niemand, alle Befehle benutzen zu müssen. Ich kann beim PIC24 auch nur die Befehle verwenden, die ein PIC12 kann. Ich kann mir aber auch nen Knopf an die Backe nähen, das wäre genauso sinnvoll. Viele Befehle machen das Programmieren daher einfacher.
Hi, Max H. schrieb: > Ich habe PIC12/16/18 in ASM und C gemacht, und bin dann zum PIC24 > weitergegangen. ICh würde sagen es ist nicht schwieriger, sondern > anders. [...] > Ich weiß nicht, welche Sprache der TO verwenden will. In C ist es > eigentlich kein unterschied, [...] Im Grunde würde ich dem soweit zustimmen, allerdings mit der Einschränkung das der PIC24 in einigen Dingen für den Anfänger doch etwas schwieriger ist. Nicht wegen dem KErn an sich, sondern weil die PIC24 teilweise mit einer deutlich mächtigeren Peripherie daherkommen, was für den Produktiven Einsatz super, für die ersten Schritte aber durch die dadurch höhere Komplexität ein Hemmniss ist. Da die Entwicklungswerkzeuge aber dieselben sind und selbst bei den Compilern seit der Umstellung auf die XC Serie die Unterschiede zwischen 8 & 16 Bit meine Meinung nach deutlich geringer geworden sind ist das aber sowieso keine wirklich wichtige Entscheidung, man kann sich ohne große Probleme bei jedem Projekt neu Orientieren ohne sich komplett umstellen zu müssen. Daher würde ich für den Einstieg schon eher zu einem Feld-/Wald- und Wiesen PIC aus der 18er Serie raten der ohne große Besonderheiten daherkommt. Mit diesem dann die ersten Schritte machen und sobald man sattelfest ist steht einem die ganze Palette der PIC in 8, 16 und auch 32Bit ja offen. (Wobei ich bei 32Bit leider glaube das diese mit "Harmony" nun etwas stärker von den 16er abgekoppelt werden, Persöhnlich halte ich das daher für einen Schritt in die falsche Richtung da die "Durchlässigkeit" über alle Registerbreiten hinweg einer meiner Hauptgründe Pro-Pic ist. Aber das ist OT) In den C Anfängertutorials von Microchipt für die PIC18 Serie wird übrigens ein PIC18F45K20 verwendet... Zur Sprache: Ein paar ASM Übungen wie LED blibnken und Tastenabfrage sind sicher nicht verkehrt und helfen vielen auch beim Verständniss dessen was da wirklich im µC passiert. Wirklich Intensiv muss man sich als Einsteiger mit ASM aber nicht mehr auseinandersetzen. Selbst bei den im Bereich µC Firmwareentwicklung beruflich Tätigen können sich die meisten davon mittlerweile die Zeilen die sie pro Jahr in ASM schreiben an den Händen abzählen. Manche brauchen dafür noch nicht mal mehr eine Hand. Gruß Carsten
Also in meiner Ausbildung MUSSTEN wir mit SMD umgehen können. SOIC, SMD 4148 und Widerstände waren Bestandteil der Praktischen Prüfung. Für nicht prüfungsrelevante Projekte haben wir mit Belichter und einer Ätz-Anlage die Platinen selbst gemacht, also kaum was mit Breadboard oder Loch-/Streifenraster. Ich sehe bei C kaum einen Unterschied zwischen PIC18 & PIC24/dsPIC. Der Compiler kann dank der Architektur und den Befehlen beim 16bitter sicherlich einen effizenteren Code machen, doch als C-Programmierer merkt man davon ja nich so viel. Was ich mir vorstellen kann ist, dass viele ein bisschen von der Komplexität abgeschreckt werden. Wenn man beim PIC18 für eine Aufgabe 15 Register im Auge behalten muss, sind es beim PIC 24 vielleicht 20-25 bei doppelter Anzahl von Bits. Als Beispiel SPI: Beim PIC18 hat man festgelegte Pins für die Daten- und Clockleitung sowie einen 1Byte Buffer. Ggf stellt man via der Config noch ein, auf welchen von 2 Pins die SDO-Leitung gehen soll. Beim dsPIC33EP ist das anders. Man hat einen 8-Level FIFO Speicher zum senden und empfangen, muss das ggf. also auch handlen. Dazu gibt es für fast alle Peripheriepins keine festen Pins mehr, sondern hat RPn (Output) und RPIn (Input) Pins, die man via Register einer Funktion zuweisen kann. Ist sehr nett und hilft beim Layouten manchmal sehr, doch es macht es wieder etwas komplizierter. Wenn man mit SPI nur nem DAC einen Wert geben will, den man mit Poti oder Drehimpulsgeber vorgibt, nutzt man eben nicht die Vorteile, die ein PIC24 mitbringt und somit ist aus meiner Sicht ein PIC18 "einfacher". Ich selbst suche mit "MAPS" nach PICs mit der Peripherie die ich brauche. Sortiere das Ergebnis nach Preis und nehme den günstigsten, egal ob PIC18 oder PIC24. Nur bei Batteriebetriebenen Projekten gucke ich zusätzlich auf Stromverbrauch. Der Vorteil bei Microchip meiner Meinung nach ist es, mit der gleichen Software und Hardware alle PICs nutzen zu können. Daher wäre meine Empfehlung auch der PIC18F46K22 oder 45K50 falls USB schnell ein Thema werden soll. Sollte der irgendwann mal nicht genug sein, kann man sich einen PIC24 zulegen (ggf. gleich die EP-Reihe) und dazu ein Adapter-Platinchen, um noch mit Breadboards arbeiten zu können. Bei fertigen Projekten wird man dann nicht um eine (selbst) geätzte oder gefräste Platine rumkommen.
Peter Dannegger schrieb: > Ich finde die Logik völlig verrückt, daß wenige Befehle das > Programmieren vereinfachen sollen. Zum Anfange, kommt mir PIC16 einfacher vor, da es nur 35 Befehle relativ einfache Befehle gibt und beim PIC24 sind ~70 mit verschiedenen Varianten. Wenn man die Befehle erst verstanden hat, ist es natürlich einfacher, wenn man mehr verschiedene Befehle hat.
Hallo Tom, Ohne die bisherigen Diskussionsteilnehmer provozieren zu wollen: Warum startest Du nicht einfach und übersichtlich mein einem 16F628?? Wenn Du auf Steckbrettern "rumbasteln" möchtest, bist Du doch völlig frei in der Wahl des PIC. Zudem kosten die PICs mit Deinen steigenden Ansprüchen ja nicht die Welt (schau mal bei Reichelt rein). Ich bin im Groben nachstehenden Weg mit Assembler gegangen. Zug um Zug hab ich die Programmierei mehr und mehr verstanden, auch die gebotenen Möglichkeiten der Spezialregister. Jetzt bin ich dabei "C" zu erlernen und bin froh in Assembler einigermaßen ordentlich fit zu sein.... Leg Dir doch erst mal diese zu: 16F628(DIL18) einfacher Einstieg, übersichtlich wenig Spezialregister CCP, (PWM), USART, Comparators, Timers 8/16-bit 16F1827(DIL18) oder 16F1939(DIL28/40 mit 16k Flahs, bereits mehr "Fähigkeiten" ADC(10bit), CapacitiveSense,Comparators, Timers (8/16-bit), EUSART, MSSP, ECCP (Full-Bridge), ECCP (Half-Bridge),CCP, SR L Wenn Du die Möglichkeiten dieser PICs "drauf" hast, dann steigst Du auf 18F, 24F ...usw um! mfG Ottmar
Ottmar K. schrieb: > eg Dir doch erst mal diese zu: > 16F628(DIL18) einfacher Einstieg, übersichtlich wenig Spezialregister > CCP, (PWM), USART, Comparators, Timers 8/16-bit Die Funktionen die er nichtbrauch kann er Problemlos einfach ignorieren. Außer den ADC, er muss die Pins erst auf digital stellen.
Hi, zur Diskussion ob man besser mit PIC18 oder 24 beginnt: Ich habe nach ein paar Versuchen mit einem Adruino direkt mit einem PIC24 (PIC24FV32KA301) begonnen (in C). Mir gefällt er immer noch sehr gut, ein kleines Allroundtalent. Ich kann bestätigen, dass die zusätzliche Komplexität beim Einstieg nicht wirklich stört. Die Ist beim PIC24 ohnehin noch nicht so schlimm. Ein brauchbares Tutorial für PIC24 mit C ist folgende: http://www.engscope.com/pic24-tutorial/
Ganz nützlich für den Einstieg mir PIC24 könnte der Microstick sein. Eine steckboardtaugliche Testplatine mit integriertem Programmer und Debugger: http://www.microchip.com/DevelopmentTools/ProductDetails.aspx?PartNO=DM240013-1 Beim PIC24 hätte der TO dann das Problem, dass es ab 28 Pins nur mehr SMD gibt.
>PIC24 hat einen 64k-Adressraum, und es gibt viele PIC24, die 16k und mehr >haben. Ja, PIC24 hat auch viel leistungsfähigere Befehle. Aber direkt adressierbar (weil 13 f-bits) sind nur die unteren 8kB. Alles darüber muss indirekt angesprochen werden. MC sollte den Kern mal aufbohren (auch wenn es MIPS gibt).
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.