PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PIC-Probleme



Lermontov
05.01.2008, 19:27
Hallo PIC-Freunde,
während einige von Euch eine nach der anderen Applikationen für PICs schreiben, schlage ich mich stundenlang am Start und kann nicht ma den ersten Gang einlegen.
Ich HATTE! 3 MCs 2x16F819 und 1x16F628. Ich verwende MPLAB ICD2 nachgebaute version von MICRO4YOU. Datenübertragung läuft über Serialport, Spannungsversorgung über USB. Anfänglich wurden meine MCs erkannt und ich hatte sie flashen können. Nach ca. 20 Vorgängen sien diese Dinge nicht mehr ansprechbar. MPLAB sagt, dass die erwartete MC-ID falsch ist: erwartet 0x27 empfangen 0x1FF, und beim Verifizieren des Flashvorgangs auch eine andere empfangene Zahl 0x3FFF.
Sind die MCs kaputt? Wie kann denn das passieren? Ich habe so einen Adapter mit speziellem Steckplatz für verschiedene Mikrokontroller und eine separate Testplatine. Ich stecke sie ständig um. Kann es sein, dass die CHIPs durch die statische Ladung von meinen Fingern kaputt gegangen sind? Ich bestelle mir jetzt 20 Stück bei Reichelt!

Und zweite Frage: Ich möchte den INTRC benutzen. Im Datenblatt steht die Frequenz bis zu 8MHz. Ich habe lediglich FOSC/4=ca.24 kHz. Die Config-Bits habe ich richtig gesetzt, da die FOSC/4 = 7,78kHz kann ich am Ausgang messen?

Dank im Voraus...

Gruß Peter

hjb
05.01.2008, 19:44
Hallo Peter,

Programmierung:
Kontrolliere mal mit einem Oszi ob die Programmiersignale am PIC ankommen (GND, Vcc=5V, MCLR ca.12V, PGD und PGC).

INTRC:
Der interne RC-Oszilator hat eine höhere Toleranz (+-35%) als ein Quarz, man kann ihn aber mit einem Register (OSCTUNE) abgleichen. Dies kann auch in der Software automatisch erfolgen wenn man ein konstantes Zeitsignal (T0=32kHz, SIO, ... ) hat.

Gruß Hans-Jörg

Siro
07.01.2008, 18:27
Könnte es sein, daß Du in der Software das
OSCCON: OSCILLATOR CONTROL REGISTER (ADDRESS 8Fh)
nicht richtig gesetzt hast ?. (IRCF0..IRCF2) Bit 4,5,6
Diese Bits stehen nach einem Reset auf 000 also auf langsamste Geschwindigkeit. Alle 3 Bits müssen aber auf 1 gesetzt werden für die volle
Geschwindigkeit.
Dies bezieht sich jedoch nur auf den PIC 16F818/819
Beim 16F627/628 gibt es diese Bits nicht.

mfg Siro

Lermontov
08.01.2008, 12:34
Hallo Siro,
doch, ich habe diese Bits richtig gesetzt, alle auf 1. Es gibt noch die zusätzliche Konfiguration des RA6 Pins, habe auf Fosc/4 gesetzt, also INTIO1, und dann die Frequenz mit dem Multimeter am RA6 gemessen, war ca. 26,xxx kHz. Habe erstmal an meinen MMeter nicht geglaubt. Dann mit dem externen Quarz ausprobiert, habe dann wie erwartet 4.5MHz gemessen, was auf dem Quarz stand. Jetzt kann ich leider keine Versuche mer machen, da meine PICs nicht angesprochen werden können. Vielleicht kaputt.
Danke aber für den Tip! Ich lag also nicht falsch mit meinen Überlegungen.

Gruß Peter

Siro
08.01.2008, 17:53
Den Programmer MICRO4YOU ICD2 "Clone" wird anscheinend garnicht mehr angeboten ?? Konnte ich zumindest nicht mehr finden.
Ich habe aber mal recherchiert: Du scheinst nicht der einzige zu sein,
der Probleme mit dem Teil hat.
In einem Forum habe ich gelesen, daß eventuell die Zuleitungen
vom Programmer zum Controller zu lang sein können.
Dies wäre evtl. eine Möglichkeit, du könntest aber auch mal einen
100nF Keramik Kondensator zwischen +5V und Ground schalten.
(Direkt am Programmer bzw. auf Zielboard)
Dies ist selbst beim Original PM3 Programmer von Microchip
bei einigen Chips erforderlich. Hier soll man sogar probieren mit bis zu
1 µF, wenn es nicht klappt.
Warum deine Chips kaputt sein sollen gibt für mich wenig Sinn,
die PICs sind eigentlich sehr tolerant und fliegen bei mir auch auf dem Tisch bzw Steckboard rum, ohne ESD Schutz. Hab aber dadurch noch keinen zerstört.
Vielleicht spinnt ja auch der Programmer selbst.
Die Möglichkeiten sind doch recht vielfältig.

Wegen der Clockrate könntest Du ja mal deinen "Code" schicken,
4,6,8 oder mehr Augen sehen doch mehr, zudem weis ich von mir, das
man irgendwann "Bertiebsblind" wird und simple Fehler immer wieder übersieht.
mfg Siro