Hallo Leute, ich möchte hier einen PIC 16F57 programmieren und habe der Einfachheit halber ein kleines Beispielprogramm von Sprut.de (LED LAuflicht) für den 16f84 als Vorlage genommen. Leider komm ich damit nicht zurecht. Alleine schon die Programmierung der Port Pins klappt nicht. Im Datenblatt des 16F84 steht, dass die TRIS-Register in der Bank 1 liegen. Im Programm von Sprut wird dazu erst in die Bank umgeschaltet und dann die Register beschrieben. Zum 16F57 finde ich im Datenblatt erst gar nicht die Information, wo die TRIS-Register liegen. Auf Seite 30 unter "summary of port registers" steht für "TRIS" nur "N/A", statt einer Adresse. Könnt ihr mir weiterhelfen, denn sonst ist mein Projekt gleich im Keim erstickt. Mark
>ich möchte hier einen PIC 16F57 programmieren und habe der Einfachheit >halber ein kleines Beispielprogramm von Sprut.de (LED LAuflicht) für den >16f84 als Vorlage genommen. Der 16F57 hat mit dem 16F84 nichts gemeinsam. Nimm einen 16F84.
Da komme ich aber vermutlich mit den Port-Pins nicht aus. In der ersten Version ginge das vielleicht, aber wenn ich das Ding erweitern will, stünde ich auf dem Schlauch und müsste alles nochmal neu machen.
>Da komme ich aber vermutlich mit den Port-Pins nicht aus.
Dann nimm einen 16F873
Beispiel für die Richtungsteuerung der Ports bei 16F57: movlw 0x.. tris PORTB TRIS wird hier als Befehl ausgeführt, nicht als Speichern auf einer bestimmten Adresse.
@holger Ich habe nur einen PicStart 16B1 und bin daher in der Auswahl der PICs ziemlich eingeschränkt. Der 16F57 liegt hier. Es soll auch nur eine ganz simple Zeitschaltuhr werden. Dafür möchte ich jetzt keinen neuen Programmierer und neue PICs kaufen. @Dieter Genau so habe ich es mir gerade aus dem Datenblatt zusammen gereimt. Danke für deine Bestätigung. Das LED-Programm von Sprut eckt aber auch noch an anderer Stelle an. Es werden die Register 0x22 und 0x23 benutzt. Die liegen außerhalb der Bank 0. Ich kann mich dunkel erinnern, dass man die nicht ohne weiteres benutzen kann. Ich benutze jetzt erstmal die Register 0x12 und 0x13, aber wenn ich nicht auskomme, muss ich auch die Register aus anderen Bänken benutzen. Habt ihr einen guten Link, wo erklärt wird, wie man das am Einfachsten macht? Mark
Hallo, hier ist ein Link, bei dem Adapter aufgezeigt sind. 16f628 ist pinkompatibel mit 16c84 . Solltest du Probleme haben, den Pic typen anzugeben, verwende den 16cxx, das ist ein generischer Typ und funktioniert auch fuer die meisten F typen mit 14 bit Kernen, der f57 ist ein 12 bit Kern. Solltest du Firmware V2 haben, dann verwende einfach ein neues MPLAB.
Chris S. wrote: > hier ist ein Link, bei dem Adapter aufgezeigt sind. Ich finde keinen Link. Hast du den vergessen, oder geht das hier im Forum mit Trick17? > 16f628 ist pinkompatibel mit 16c84 . > > Solltest du Probleme haben, den Pic typen anzugeben, verwende den > 16cxx, das ist ein generischer Typ und funktioniert auch fuer die > meisten F typen mit 14 bit Kernen, der f57 ist ein 12 bit Kern. Hm, wo muss ich den angeben? Im Moment flashe ich die PICs mit der DOS-Software, die beim 16B1 dabei war. Ich hatte mir schon gedacht, dass man ein paar neuere PICs mit dem PICSTART 16B1 flashen kann, aber dazu hatte ich keine Infos im Netz gefunden. > Solltest du Firmware V2 haben, dann verwende einfach ein neues MPLAB. Ich habe die V2.0. Das hört sich sehr interessant an. :-) Ich benutze MPLAB 7.5 aus dem Jahr 2006. Der müsste den PICSTART ja kennen. Unter ->Programmer->Select Programmer ist der 16B1 nicht angegeben. Muss ich dort vielleicht den PICSTART Plus auswählen, oder braucht man da ein Plugin? Grüße Mark
Mark Thalle wrote: > Hm, wo muss ich den angeben? Im Moment flashe ich die PICs mit der > DOS-Software, die beim 16B1 dabei war. > Ich hatte mir schon gedacht, dass man ein paar neuere PICs mit dem > PICSTART 16B1 flashen kann, aber dazu hatte ich keine Infos im Netz Meines Wissens wird der PICSTART 16B1 nicht mehr unterstützt. Der ist ja schliesslich so alt, dass er wohl noch mit Röhren aufgebaut war. Ich hatte den PICSTART 16B benutzt, später den PICSTART Plus, dann den PICkit 1 und den ICD1, dann den ICD2. Ich kann Dir nur einen Tipp geben: Kauf den PICkit2, ev. als Set mit einem Demoboard, und Du kannst fast alle neuen PICs programmieren und viele auch Debuggen. Vergiss den 16F84 und den PIC16F57. Den 'F57 setze ich noch ein, aber aus ganz speziellen Gründen. Schau aber sicherheitshalber nach, welche PICs vom PICkit2 unterstützt werden. > Muss ich dort vielleicht den PICSTART Plus auswählen, oder braucht man > da ein Plugin? Gibt es meines Wissens nicht.
Link: http://www.qsl.net/dl4yhf/winpic/index.htm useful http://home.pacbell.net/theposts/picmicro/ mal ausprobieren, ob es auch mit 16b1 V2 geht.
@ Mark Thalle (bitts) > Das LED-Programm von Sprut eckt aber auch noch an anderer Stelle an. Es > werden die Register 0x22 und 0x23 benutzt. Die liegen außerhalb der Bank 0. Sprut verwendet m. E. den PIC 16F84. Dabei geht die Bank 0 bis 7FH, der frei verfügbare RAM von 0CH bis 02FH, alles in Bank 0. Noch eine persönliche Empfehlung: Auf der Seite von Sprut sind einige Bauanleitungen für Brenner, dessen Nachbau nur ein paar wenige Euro kostet und außer einem Lötkolben und DMM keine speziellen Werkzeuge erfordert. Die Software dazu läuft stabil und brennt so ziemlich alles. Achso, und falls du mal PICs für ein eigenes Projekt auswählst, nimm besser eine Nummer größer. Meist fehlt genau eine I/O-Leitung und die größeren PICs haben noch andere Annehmlichkeiten wie UART, I2C, ADC, etc an Board. Ist nur meine Meinung, so als Tipp. Viel Erfolg
@schris Danke für die Links. So ein Adapter scheint zwar umständlich zu sein, aber da ich nur alle Jubeljahre mal etwas mit PICs mache, ist das vielleicht besser, als wenn ich mir dann jedes mal einen neuen Flasher kaufe. Vielleicht kann ich den 16B1 aber doch bald in die Tonne treten, denn über einen USB-RS232-Adpater läuft der nicht. Für den zweiten Link fehlt mir die Ausdauer. Ich hab so schon ziemlich zu kämpfen, wenn ich mich nach langer Pause mal wieder mit PICs beschäftige. Linux tu ich mir da nicht auch noch an. @severino Warum benutzt du noch den alten F57. Ich mache es, weil es der preiswerteste Pic mit 16 I/O ist, den ich mit dem 16B1 flashen kann. Den PicKit 2 hatte ich mir letztes Jahr schon mal angesehen, aber da gab es soviele unterschiedliche Angebote, dass ich nicht wusste, was ich am Besten nehmen sollte. Außerdem wollte ich dann gleich ein Demoboard dazu haben und einen ZIF-Sockel, und dann kostet das gleich richtig Geld. Dann habe ich mir Chinanachbauten und auch den WILLEM-Brenner angesehen, wusste dann aber gar nicht mehr, was ich nehmen sollte. Wo würdest du den PicKIT2 kaufen? Gibt es da eine gute Quelle? Bei Reichelt kostet das Ding 69 Euro, ohne ZIF-Adpater. Bei ebay hab ich nix Gescheites gefunden. EDIT: Bei MPLAB8.1 ist der PICKIT2 ausgegraut. Den kann ich nicht als Programmer anwählen. Ändert sich das, wenn man den anschließt? Der PICKIT1 ist verfügbar. Muss man für den PICKIT2 erst Treiber installieren? Grüße Mark
@ Jens Die Sprut-Prgrammer habe ich mir auch schon angesehen. Wenn ich mir jetzt einen baue, dann sollte der schon über USB laufen, damit der nicht nächstes Jahr wieder out ist. Soweit ich mich erinnern kann, muss man dafür dann einen fertig programmierten PIC haben. Wenn man alles zusammen zählt mit Buchse, Platine, PIC, Versand, ... dann ist das nicht mehr ganz so billig, denn ich muss mir die meistens Sachen extra bestellen. Vielleicht lach ich mir doch einen PicKit2 oder einen Clon an. Laufen die Clones auch mit MPLAB zusammen?
>Für den zweiten Link fehlt mir die Ausdauer. Ich hab so schon ziemlich >zu kämpfen, wenn ich mich nach langer Pause mal wieder mit PICs >beschäftige. Linux tu ich mir da nicht auch noch an. Einfach die Windows version downloaden. PS, du koenntest dir den Programmer auf einen Pickit+ updaten, firmware gibt es bei Olimex, aber der ist auch nur rs232.
Mark Thalle wrote: > Warum benutzt du noch den alten F57. Ist eine komplizierte Geschichte... Es ist der einzige Flash-PIC mit 28 Pins (brauche fast alle I/O), der im breiten DIL28 Gehäuse erhältlich ist. Und das muss ich so haben, weil zwischen den Pin-Reihen noch andere Komponenten zu liegen kommen. Also ein mechanischer Grund. > Wo würdest du den PicKIT2 kaufen? Gibt es da eine gute Quelle? - Farnell, aber die liefern wohl nur an Firmen und Schulen. Dort gibt es eine Promo-Version inkl 9 PICs für EUR 36 Art.9945350) - Microchip Direct (musst halt wegen Versandkosten und Zoll aufpassen) - Schuricht (inkl. Demoboard mit PIC16F690 EUR 61 exkl. MWST). Warum baust Du nicht den PICkit2 nach? Die Schemas etc. sind auf der Microchip-Website erhältlich. Musst allerdings einen PIC18F programmieren, womit wir wieder am Anfang sind. Aber vielleicht kann Dir das ja jemand in Deinem Land machen. Ich bin in der Schweiz, und mit dem Versand ist das eher problematisch. Den PIC kannst Du vielleicht als Sample kostenlos bei Microchip bestellen. Ich würde auf den ZIF-Adapter verzichten und den PIC in der Schaltung programmieren. Dann kannst Du ihn auch für's Debuggen in der Schaltung lassen und brauchst ihn nicht aus- und einzustecken. > EDIT: Bei MPLAB8.1 ist der PICKIT2 ausgegraut. Den kann ich nicht als > Programmer anwählen. Hängt vom ausgewählten PIC ab. Der PICkit2 kann fast alle PICs programmieren. zuerst den PIC wählen (Configure->Select Device). > Der PICKIT1 ist verfügbar. Muss man für den PICKIT2 erst Treiber > installieren? Nein. Welcher PIC ist denn aktuell ausgewählt (->Statuszeile unten) Allgemein kann ich nur empfehlen: Kauft einen brauchbaren Programmer und investiert Eure Zeit in die Entwicklung der Schaltung und der Software, statt sie mit unzuverlässig funktionierenden Selbstbau-Billig-Programmern zu verschwenden.
Severino R. wrote: >> Wo würdest du den PicKIT2 kaufen? Gibt es da eine gute Quelle? > - Farnell, aber die liefern wohl nur an Firmen und Schulen. > Dort gibt es eine Promo-Version inkl 9 PICs für EUR 36 Art.9945350) Das habe ich dann gerade mal gemacht. > Warum baust Du nicht den PICkit2 nach? Die Schemas etc. sind auf der > Microchip-Website erhältlich. Musst allerdings einen PIC18F > programmieren, womit wir wieder am Anfang sind. Aber vielleicht kann Dir > das ja jemand in Deinem Land machen. Ich bin in der Schweiz, und mit dem > Versand ist das eher problematisch. > Den PIC kannst Du vielleicht als Sample kostenlos bei Microchip > bestellen. Das habe ich mir auch schon überlegt, aber wenn man dann zur Sicherheit 2 PICs kauft und viele Sachen nicht rumfliegen hat udn extra bestellen muss, dann wird das insgesamt doch ziemlich teuer. Am Meisten schreckt mich aber die Programmierung des PICs ab. Wenn das jemand für mich macht, kostet das auch wieder Porto und wenn es dann nicht klappt, weiß keiner, warum, und ich habe wenig Möglichkeiten, das zu kontrollieren. Ein fertiges Kit ist in meinem Fall insgesamt vermutlich nicht teurer. > Ich würde auf den ZIF-Adapter verzichten und den PIC in der Schaltung > programmieren. Dann kannst Du ihn auch für's Debuggen in der Schaltung > lassen und brauchst ihn nicht aus- und einzustecken. Bisher hatte ich dazu nicht die Möglichkeit und ich dachte auch immer, dass es einfacher ist, weil man dann die Schaltung nicht an das ICP anpassen muss. > >> EDIT: Bei MPLAB8.1 ist der PICKIT2 ausgegraut. Den kann ich nicht als >> Programmer anwählen. > Hängt vom ausgewählten PIC ab. Der PICkit2 kann fast alle PICs > programmieren. zuerst den PIC wählen (Configure->Select Device). Ne, das klappt nicht. Ich habe den 16f84 ausgewählt. Trotzdem ist der das PicKit2 ausgegraut. > >> Der PICKIT1 ist verfügbar. Muss man für den PICKIT2 erst Treiber >> installieren? > Nein. Welcher PIC ist denn aktuell ausgewählt (->Statuszeile unten) Z.B. 16F84 Ich hab dann mal einige ausprobiert. ... Ah, doch. Ich hab wohl immer daneben gelegen. Ich habe mal die Pull-Down-Box mit der Cursortaste durchgescrollt. Damit kann ich PICs finden, die vom PICKit2 unterstützt werden. Fast alle sind das aber eher nicht. 16F84 geht z.B. nicht, obwohl das ja ein Wald Feld und Wiesen-PIC ist. 16F87 geht aber. Dann kann ich mit dem PICKIT2 wohl sämtliche PICs, die ich hier herumliegen habe, nicht brennen. Naja, irgendwo muss man wohl mal einen Schnitt machen. > Allgemein kann ich nur empfehlen: Kauft einen brauchbaren Programmer und > investiert Eure Zeit in die Entwicklung der Schaltung und der Software, > statt sie mit unzuverlässig funktionierenden > Selbstbau-Billig-Programmern zu verschwenden. Ja, da geb ich dir trotz und wegen meiner geringen Erfahrung Recht. Grüße Mark
Mark Thalle wrote: > Das habe ich dann gerade mal gemacht. Toll, viel Spass schon mal. > Fast alle sind das aber eher nicht. 16F84 geht z.B. nicht, obwohl das ja > ein Wald Feld und Wiesen-PIC ist. Und auch extrem alt. Generell muss der PIC ICSP (In Circuit Serial Programming) beherrschen. > 16F87 geht aber. Der 16F84A auch, aber vorerst nicht mir MPLAB, sondern mit der separaten Programmersoftware für PICkit2, siehe auch: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en027813 > Naja, irgendwo muss man wohl mal einen Schnitt machen. Stimmt.
Severino R. wrote: >> Das habe ich dann gerade mal gemacht. > Toll, viel Spass schon mal. Danke. Umständlicher, als per RS232 und einem DOS-Programm mit einem DOS-Emulator wird es hoffentlich nicht werden :-) >> Fast alle sind das aber eher nicht. 16F84 geht z.B. nicht, obwohl das ja >> ein Wald Feld und Wiesen-PIC ist. > > Und auch extrem alt. > Generell muss der PIC ICSP (In Circuit Serial Programming) beherrschen. Ich dachte, dass das alle PICs könnten. Ich hätte jetzt vermutet, dass die alten PICs nur deshlab nicht gebrannt werden können ,weil die evtl. eine höhere SPannung brauchen, um in den Programmiermodus zu gelangen. Ich habe etwas von 14 Volt bei den alten 16Cxx-PICs in Erinnerung. >> 16F87 geht aber. > Der 16F84A auch, aber vorerst nicht mir MPLAB, sondern mit der separaten > Programmersoftware für PICkit2, siehe auch: > http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en027813 Aaahhhh... Das ist ja super. Dann muss ich die Sachen hier doch nicht mit PICSTART16B1 brennen. Danke für die Infos. Ich werde berichten, wie es läuft. Grüße Mark
Mark Thalle wrote: > Aaahhhh... > Das ist ja super. Dann muss ich die Sachen hier doch nicht mit > PICSTART16B1 brennen. Hast Du beachtet: PIC16F84 A, Du hast vom 'F84 (ohne ..A) geschrieben.
Bau doch den SPRUT Brenner8P nach, der ist super... funktioniert einwandfrei unter VMware in Mac OS X und es gibt mittlerweile sogar Linux Software (GPL) 16C57/16F57 = 12-bit Core. Hier gibt es keine TRIS Register, sondern nur den TRIS Befehl!
Severino R. wrote: >> Das ist ja super. Dann muss ich die Sachen hier doch nicht mit >> PICSTART16B1 brennen. > > Hast Du beachtet: PIC16F84 A, Du hast vom 'F84 (ohne ..A) geschrieben. Das habe ich nur mit einem halben Auge gesehen, aber nicht wirklich drauf geachtet. Die Software zum PicStart16B1, die MPS16B.EXE bietet mir gar keine 16Fxx an, sondern nur 16Cxx. Ich habe damit aber schon erfolgreich 16F84 und 16F84A geflasht. Manchmal hat es nicht geklappt, aber da das alles in einem DOS-Simulator unter XP gelaufen ist, weiß ich eh nie genau, wo die Fehlerquellen sitzen. Die Datasheets zum 16f84 und 16f84A sind so umfangreich, dass ich keine Chance sehe, die nennenswerten Unterschiede zu entdecken. Ich würde es jetzt einfach mal ausprobieren. Oder können die 16F84 kaputt gehen?
Sergey wrote:
> Bau doch den SPRUT Brenner8P nach, der ist super... funktioniert
Das hätte ich letztes Jahr fast mal gemacht, aber das waren mir
letztlich zuviele Hürden und preislich ist das auch kein Schnäppchen,
wenn man durch die Gegend gurken muss, um sich den Steuerpic brennen zu
lassen, oder bei mehr als einem Laden bestellen muss, um alles zu
bekommen, und wenn man dann von allem die doppelte Menge bestellt, weil
ja auch immer mal was kaputt gehen kann.
Aber gereizt hätte mich das schon. Das PicKIT2 hat den Vorteil, dass ich
den direkt aus MPLAB heraus benutzen kann. Das finde ich auch nicht
schlecht.
Da bin ich aber baff. Gestern Mittag hatte ich bei Farnell das PicKIT2 Promo-Paket, bestellt. Um 12Uhr hat der Paketdienst das Ding hier abgeliefert. Das hat keine 24h gedauert. Von den enthaltenen PICs bin ich aber ein wenig enttäuscht. Da sind hauptsächlich die billigsten Teile bei, die ich so in Preislisten gesehen habe. Da wären z.B. 16F54, 16F57 und 3 winzige SMD-Teile, die ich gar nicht gebrauchen kann. Außerdem weiß ich gar nicht, wie ich diese 10F-SMD-Teile programmieren soll. Wegen ihrer Größe geht das eigentlich nur per ICSP. Dadurch fällt dann aber noch einer der wenigen Pins weg bzw. der Rummel, den man zusätzlich in die Schaltung bauen muss, ist größer als der PIC selbst. Naja, der Rest, den ich da im Promopack gekauft habe, scheint dafür unschlagbar preiswert zu sein. So ein Demoboard mit einem PIC ist alleine schon mehr wert, als der Aufpreis zum normalen PicKIT2. Heute Abend komme ich dann vielleicht das erste Mal dazu, das Ding auszuprobieren. Ich muss mir allerdings noch einen Kopf über einen Programmieradapter machen. Zum Glück gibt es Sprut.de, denn sonst wäre das Adapterkabel sicher in die Hose gegangen :-)
Mark Thalle wrote: > Von den enthaltenen PICs bin ich aber ein wenig enttäuscht. Da sind > hauptsächlich die billigsten Teile bei, die ich so in Preislisten > gesehen habe. Da wären z.B. 16F54, 16F57 und 3 winzige SMD-Teile, die > ich gar nicht gebrauchen kann. Leider scheinen das vor allem Ladenhüter zu sein :-( Ich bin nicht ganz schlau geworden, wer das Promo-Kit zusammengestellt hat, vermutlich Farnell und nicht Microchip. Aber Du kannst ja bei Microchip Samples bestellen, und dann gleich schlauere Teile wie PIC16F887 oder PIC18... > Außerdem weiß ich gar nicht, wie ich diese 10F-SMD-Teile programmieren > soll. Wegen ihrer Größe geht das eigentlich nur per ICSP. Dadurch fällt > dann aber noch einer der wenigen Pins weg bzw. der Rummel, den man > zusätzlich in die Schaltung bauen muss, ist größer als der PIC selbst. Du kannst sie ja vor dem Einlöten programmieren (notfalls vorübergehend Drähte an die Beinchen löten. Wenn Du die Pins sauber entkoppelst, kannst du die Dinger auch in der Schaltung programmieren und dann den Programmer abtrennen, um das Programm auszuführen. So bleiben alle Pins verfügbar. > Naja, der Rest, den ich da im Promopack gekauft habe, scheint dafür > unschlagbar preiswert zu sein. So ein Demoboard mit einem PIC ist > alleine schon mehr wert, als der Aufpreis zum normalen PicKIT2. Welches Demoboard ist eigentlich dabei? > Heute Abend komme ich dann vielleicht das erste Mal dazu, das Ding > auszuprobieren. Ich muss mir allerdings noch einen Kopf über einen > Programmieradapter machen. Zum Glück gibt es Sprut.de, denn sonst wäre > das Adapterkabel sicher in die Hose gegangen :-) Viel Spass dann...
Severino R. wrote: > Leider scheinen das vor allem Ladenhüter zu sein :-( > Ich bin nicht ganz schlau geworden, wer das Promo-Kit zusammengestellt > hat, vermutlich Farnell und nicht Microchip. Vermutlich, denn die PICs waren alle in separaten Statictüten verpackt und einzeln mit Stickern von Farnell versehen. > Aber Du kannst ja bei Microchip Samples bestellen, und dann gleich > schlauere Teile wie PIC16F887 oder PIC18... Ja, das werde ich jetzt mal machen. Bisher hätte ich nichts davon gehabt, weil ich die nicht flashen konnte. >> Naja, der Rest, den ich da im Promopack gekauft habe, scheint dafür >> unschlagbar preiswert zu sein. So ein Demoboard mit einem PIC ist >> alleine schon mehr wert, als der Aufpreis zum normalen PicKIT2. > > Welches Demoboard ist eigentlich dabei? Es steht: "Low Pin Count Demo" drauf. Das müsste das hier sein: http://de.farnell.com/microchip/dm164120-1/development-kit-low-pin-count/dp/1439837 Da ist ein 16F690 drauf. Das gleiche gibt es wohl noch für 28-Pin-Pics, wenn ich das richtig verstanden habe. > Viel Spass dann... Danke. Und nochmal Danke für die Tipps.
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.