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?
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 kannPIC18F46k22:
- 36 IOs (DIP-40)
- 64 MHz
- 3.896 Byte Ram
- 64K Flash
http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en547757Tom 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.
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.
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.
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.
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/
>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).