Hallo zusaammen, da mich mein P40 Board gerade nervt, wollte ich mein PIC 18F4550 gerne mal auf einem Steckbrett platzieren. Nun finde ich nicht mehr die Übersicht, was man alles für Bauteile benötigt (incl. Schaltplan) um den 4550 mit externen Quarz zum Laufen zu bringen. Programmieren würde ich das gerne mit meinem PICKit3. Ist da auch noch was zu beachten? Im Datenblatt hab ich nichts gefunden... Gruß
Power dran (alle VDD und VSS Pins), nah am Controller 100nf Keramik C's (wichtig!), Quarz dran und die C's nach GND je nach Quarz, einen Header oder Kabel für ISP Das wars schon Torsten Beim PicKit beachten das unter Settings die Spannung für den PIC stimmt, sollten bei der 45er Gruppe 3,3V sein, und den Haken bei "Power Target Circuit from PicKit" setzten. Dann brauchst du keine externe Spannungsquelle.
Das habe ich auch aus dem Bauch heraus gesagt, deswegen habe ich ja drauf hingewiesen das er das prüfen soll. Ich habe gerade den 4525 an Board mit 3,3V. Man sollte eben doch erst mal lesen. Sorry.
Ok, also in meinem Fall erstmal nur die Cs zwischen VDD und VSS Quarz (bei internen Osci ja auch egal) und das PICKit 3 an die richtigen PiNs anschließen
PICSIM schrieb: > Ok, > > also in meinem Fall erstmal nur die > Cs zwischen VDD und VSS > Quarz (bei internen Osci ja auch egal) > und das PICKit 3 an die richtigen PiNs anschließen Wie genau schaut die Schaltung nun aus wenn man den PIC18F4550 auf dem Steckbrett an den PicKit3 angeschlossen hat? Auf dem Poster das MICROCHIP mitliefert gibts das Bild "correct" und dort ist noch ein Quarz angeschlossen und ein Widerstand zwischen Vdd und Vpp. Die AVdd und AVss können ignoriert werden bei dem PIC oder haben die eine Relevanz? Habe im Datenblatt dazu noch nichts gefunden. VG
So ich habe jetzt die Strippen so an den Chip gezogen wie es das PINOUT vorsieht. VSS (Pin 12 und Pin 31) nun auf Masse nud auf PIN3 vom PICKit3? Was fehlt noch?
Sind die schmalen Streifen auf deinem Steckbrett wirklich horizontal verbunden, und nicht vertikal? Dann hättest du nämlich PGD und PGC kurzgeschlossen. Die 100nF Cs direkt an den Versorgungsanschlüssen fehlen noch, wie bereits oben erwähnt. Sollte auch auf dem Steckbrett kein Problen sein, wenn du sie in RM 2,54 da hast, weil 5V und GND bei den 40-Pinnern direkt nebeneinander liegen.
Gut wie die Bahnen verbunden sind mess ich noch durch =). Hätte mir eigentlich selber auffallen dürfen. EDIT: Waagerecht verbunden. =) /EDIT: http://ww1.microchip.com/downloads/en/devicedoc/39632d.pdf Die C's wie in Abbildung 2-2 auf Seite 27? an PIN 13 und 14? Was für ein Quarz(20.000er?) muss ich da nehmen und was für C's? http://burger-web.com/Projects/PIC18F4550USB/de_PIC18UsbBoard.htm.de Ist der Widerstand R26 (aus dem Schaltbild von Burger-web) oder aus dem Handbuch Rs, notwendig?
heinzhorst schrieb: > Die 100nF Cs direkt an den Versorgungsanschlüssen > fehlen noch, wie bereits oben erwähnt. Sollte auch auf dem Steckbrett > kein Problen sein, wenn du sie in RM 2,54 da hast, weil 5V und GND bei > den 40-Pinnern direkt nebeneinander liegen. Gut wenn ich nun die 2*22pF + 1*20Mhz + 1MOhm an PIN 13 und 14 rangesteckt habe fehlt dann nochwas oder kann ich dann über den PICKit3 den PIC beschreiben? vg
So jetzt noch die beiden Kondensatoren einfügen und rechts vom Quarz noch Rs parallel und dann kann es losgehen? Wird der Chip dann über den PicKit3 versorgt? vg
> Wird der Chip dann über den PicKit3 versorgt?
Das musst du in MPlab unter Programmer/Debugger -> Settings -> Power
extra einstellen
@Dario danke Aber fehlt mir nun noch Schaltungstechnisch irgendwas?
Eigentlih nicht, die Caps für's Qurarz müssen noch rein, dann passt es. Das einzige, was dann noch fehlt ist der Sinn der Schaltung. Vlt. mal eine Led mit Vorwiderstand an einen Pin hängen und blinken lassen. Wenn du den Oszilator erfolgreich umgeschaltet hast, muss die mit einer anderen Frequenz blinken.
Nunja der Sinn ist eigentlich nur das Brennen des PICs(alter Brenner ist abgeraucht). Da ich mich nun mit MPLab anfreunde wollte ich das dann auch gleich aus der IDE heraus machen, deshalb das PicKit3. Zum Testen hab ich dann schon eine aufgebaute Testplattform. Mit Tastenblock und LED Block. Das PicKit3 ist vielleicht als reiner Brenner etwas überdimensioniert, aber nach meinem Projekt kann ich ja damit noch weiter rumspielen wenn ich umgezogen bin. Rein als Minitest kann ich aufs Steckbrett natürlich noch ne LED an einen Port basteln.
Braucht man zum brennen eines PICs überhaupt einen Quarz? Ich baue nämlich die meisten (Zeit-unkritischen) Schaltungen ohne Quarz auf und benutze den Internen Oscillator. Doch vor dem Brennen weiß der PIC doch noch garnicht, dass er Diesen benutzen soll. Deswegen, wenn kein Sinn bzw keine Schaltung mit dran hängt, sondern nur brennen will und wo anders reinstecken will, braucht man ansich keinen Quarz.
Zum Brennen braucht man natürlich kein Quarz. Hat es überhaupt so funktioniert, wie du es aufgebaut hast? Ich denke nicht... Höchst wahrscheinlich sind die Pins so verbunden, wie ich dir eingezeichnet habe. Und die vertikalen sind (bei mir zumindest) untereinander bis zur Mitte eines Steckbretts auch noch verbunden.
Hab grad nochmal geprüft, die schmalen Felder sind wirklich senkrecht verbunden. Habe dort lange Brücken reingemacht. Wenn ich "nur" Brennen will kann ich den Quarz weglassen oder stört dieser nicht? Wenn ich nun an Port B einige LEDs dranhänge mit Vorwiderstand, dann kann ich das Steckbrett ja gleich noch zum Test nehmen. Schonmal danke danke.
Ja kannst du. Nein, stört nicht. Ja. Und der Vorteil dabei ist, dass du auch debuggen kannst!
Wäre nett, wenn du für die Nachwelt nochmal ein so is es richtig und funktioniert Bild schiessen könntest ;)
t. p. schrieb: > Wenn ich "nur" Brennen will kann ich den Quarz weglassen oder stört > dieser nicht? Für das Brennen benötigt ein PIC keinerlei Zusatzbeschaltung! Vpp (+12V Programmierspannung), Vdd (+5V), Vss (GND), PGD und PGC kommen direkt vom PicKit. Natürlich sind alle Vdd und Vss Pins zu beschalten. In Pullup an MCLR ist IMHO ebenfalls nicht von Nöten.
Irgendwas scheint noch falsch zu sein, da MPLab folgenden Fehler bringt: PICkit 3 detectedConnecting to PICkit 3... Running self test... Self test completed Firmware Suite Version...... 01.26.65 Firmware type......................PIC18F PICkit 3 Connected. PK3Err0045: You must connect to a target device to use PICkit 3.Target Device ID (00000000) does not match expected DeviceID (00001200). PICkit 3 removed Laut Google hatten die Masse bei diesem Fehler ein Verdrahtungsfehler. In MPLab habe ich eingestellt das das Device über das PicKit3 gepowered wird. Unter Configure wurde ist auch der korrekte Chip ausgewählt. EDIT: Kleine Brücke vergessen zwischen Rs und dem Quarz.
Du hast vergessen Vdd an Pin 32 anzuschließen. Und die rote Brücke ganz links ist meines Erachtens nach unnötig.
Lass' den Quatsch mit dieser völlig unübersichtlichen Verdrahtung und nutze die Drahtbrücken als direkte Punkt-zu-Punkt Verbindung zwischen Quelle und Ziel, anstatt unbedingt auf gerade Verlegung zu achten.
Ich weiß nicht, ob das nur bei mir so ist, aber bei mir ist der ICSP von Pin1-5 und nicht von Pin2-6 beim PICKIT. Pin 6 ist ein AUX-Kontakt. 1:Vpp 2:Vdd 3:Vss 4:Data 5:Clock Dazu hast du alle 6 Anschlüsse am PIC, wobei ICSP ansich nur 5 Pins hat. Versuchs mal so, direkt mit einem einzelnem Kabel: PICKIT PIC Pin1 -> Pin1 Pin2 -> Pin11 Pin3 -> Pin12 Pin4 -> Pin40 Pin5 -> Pin39 Danach, auch mit einem Kabel, Pin11 zu Pin32 und von Pin12 zu Pin31. Um die ordentliche Verlegung kannst du dich danach kümmern.. Und nicht vergessen einzustellen, dass das PICKIT die Versorgungsspannung liefern soll.
Arno Nyhm schrieb: > Lass' den Quatsch mit dieser völlig unübersichtlichen Verdrahtung und > nutze die Drahtbrücken als direkte Punkt-zu-Punkt Verbindung zwischen > Quelle und Ziel, anstatt unbedingt auf gerade Verlegung zu achten. Ich sehe das (wieder) aufkommen der "Steckbretter" in letzter Zeit recht kritisch und würde daher sogar noch einen Schritt weiter gehen und sagen lasse das mit dem Steckbrett für solche sachen ganz bleiben... Kontaktschwierigkeiten, hohe Leitungskapazität und völlig unübersichtlich, das sind nur einige Punkte. IC Sockel, Quarze und Widerstände sind Pfennigskram. Das ganze schnell auf Lochraster aufgebaut ist einiges Übersichtlicher und funktioniert zuverlässiger. Zudem auch länger "haltbar". DAs Steckbrett kommt bei mir nur zum Einsatz wenn ich ganz simple sachen mal schnell testen will. Aber sonst... Wenn man sich durch kleine Fehler aufgrund der Unübersichtlichkeit mal ein-zwei µC Geschrottet hat, dann hätte man für den Betrag auch eine menge LR Schaltungen aufbauen können. Gruß Carsten
ich schrieb: > Ich weiß nicht, ob das nur bei mir so ist, aber bei mir ist der ICSP von > Pin1-5 und nicht von Pin2-6 beim PICKIT. Pin 6 ist ein AUX-Kontakt. > 1:Vpp > 2:Vdd > 3:Vss > 4:Data > 5:Clock Er hat 1 bis 6 angeschlossen, nicht 2 bis 6. Die Leitung von Pin 6 kannst du dir sparen, wenn du Low Voltage Programming aktivierst. > Und nicht vergessen einzustellen, dass das PICKIT die > Versorgungsspannung liefern soll. Hat er sonst würde er die Meldung nicht bekommen, dass es die falsche ID ist... Also schließ erstmal Pin 32 an und probiers nochmal
Martin S. schrieb: > Hat er sonst würde er die Meldung nicht bekommen, dass es die falsche ID > ist... Das kannst du so nicht sagen... Er meldet doch die ID 0000... Dies bedeutet das PK3 erkennt zwar anhand der Belastung der Pegel das da etwas ist und taktet. Es kommt aber nur ein Nullpegel an. Und das kann sowohl bei Defekt des µC wie auch bei falschem Anschluss der Leitung als natürlich auch beim Fehlen von Betriebsspannung am PIC vorkommen! Gruß Carsten
Das denke ich nicht. Wenn du keine Versorgungsspannung extern oder durch Pickit angelegt hast, bekommst du die Meldung erst gar nicht. Dass dann noch was faul ist, ist klar.
Ich habe nun alle Steckbrücken runter und direkt verkabelt so das nur der PIC drauf ist. Ergebnis: PICkit 3 detected Connecting to PICkit 3... Running self test... Self test completed Firmware Suite Version...... 01.26.65 Firmware type......................PIC18F PICkit 3 Connected. Device ID Revision = 00000007 Programming... Programming/Verify complete PICkit 3 removed Als Demo habe ich folgendes reingeladen:
1 | #include <p18f4550.h> |
2 | |
3 | #pragma config WDT = OFF |
4 | |
5 | void main (void) |
6 | { |
7 | /* Make all bits on the Port B (LEDs) output bits. |
8 | * If bit is cleared, then the bit is an output bit. |
9 | */ |
10 | TRISB = 0; |
11 | |
12 | /* Reset the LEDs */ |
13 | PORTB = 0; |
14 | |
15 | /* Light the LEDs */ |
16 | PORTB = 0xFE; |
17 | |
18 | while (1) |
19 | ; |
20 | } |
Die LEDs bleiben aber leider alle aus. hmmm
Dann schau dir mal Kapitel 2.0 Oscillator Configurations und Kapitel 25.1 Configuration Bits genauestens an. Wenn du des englischen nicht so mächtig bis kannst du auch sprut.de durchstöbern.
Gut, danke alle bis hierher. Ich werde mich mal durch die beiden Stellen im Handbuch ackern.
Martin S. schrieb: > Hat er sonst würde er die Meldung nicht bekommen, dass es die falsche ID > ist... Ne, hatte ich auch schon ein paar mal, dass ich vergessen habe einzustellen, dass das PICKIT strom liefern soll, da kam das gleiche. Wie Carsten schrieb. Und das doch alle pins verbunden waren ist mir später auch aufgefallen ;) Dieser Knick hat mich verwirrt^^ Aber dennoch, mit 5 längeren und 2 kürzeren Kabeln einfach mal direkt anschließen und gucken, obs geht..
Verdrahtung ist i.O. Bekomme bei einigen PICs aber dennoch die Meldung: Device ID (00000000) does not match expected DeviceID (00001200). Auf dem einen PIC war aber noch eine Demo drauf und die läuft auch wenn ich den wieder auf die Testplatine stecke und die an den USB anschliesse. Im MPLab bekomme ich unter PicKit3 Vdd Voltage 4,88V angezeigt auch wenn ich refreshe.
Hast du jetzt Kondensatoren zwischen Vdd und Vcc gemacht?
Martin S. schrieb: > Hast du jetzt Kondensatoren zwischen Vdd und Vcc gemacht? Nein, einfach den PIC an das PicKit 3 direktverdrahtet wie oben geschrieben. wurde ja gesagt wenn ich nur brenne dann braucht es keine weiteren Bauteile. Ein PIC wo die Meldung nicht erscheint, da steht bei VDD auch 5,00 V.
1 | #include <p18f4550.h> |
2 | |
3 | #pragma config FOSC = INTOSC_EC |
4 | #pragma config PWRT = OFF |
5 | #pragma config BOR = OFF |
6 | #pragma config MCLRE = ON |
7 | #pragma config PBADEN = OFF |
8 | #pragma config ICPRT = OFF |
9 | #pragma config LVP = OFF |
10 | #pragma config WDT = OFF,DEBUG=OFF |
11 | |
12 | void main (void) |
13 | { |
14 | /* Make all bits on the Port D (LEDs) output bits. |
15 | * If bit is cleared, then the bit is an output bit. |
16 | */ |
17 | TRISD = 0; |
18 | |
19 | /* Reset the LEDs */ |
20 | PORTD = 0; |
21 | |
22 | /* Light the LEDs */ |
23 | PORTD = 0xFF; |
24 | |
25 | while (1) |
26 | ; |
27 | } |
Voala - und schon gehen auch die ganzen 8 LEDs am Port D an. =)
So Abschliessend: Auf dem 1. Bild hab ich die Freiluftverdrahtung noch mit Brücken gesteckt und es funktioniert. Bild 2 und 3 sollen nur zeigen das die Lampen auch an und aus gehen. Zu dem VDD Problem, das einige PIC18F die ich hier durchprobiert habe nicht 5,00V sonder 4,88V angezeigen und dann bei PICKit3 anstecken die Fehlermeldung "Device ID (00000000) does not match expected DeviceID (00001200)." ist mir aufgefallen, das die Verbindung zwischen PicKit3 und dem Board nicht sehr fest ist. Ich habe leider nur eine Winkelstiftleiste die auf der einen Seite nur kurze Pins hat. Wenn ich nun die Stiftleiste gerade lasse bekomm ich diese Meldung fast bei jedem PIC. "verkeile" ich die Stiftleiste gibts diese Meldung bei keinem PIC. Denke das das ein Kontaktproblem ist. Ich habe leider nicht die Möglichkeit zum löten aber da das Brennen nun auf dem Steckbrett geht kann ich mich nun um den Inhalt kümmern. =) Danke an Alle für die Hilfe. VG
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.