mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC 16F877A - Keine Programmabarbeitung / ICSP-Programmierung nur wenn PGM auf LOW


Autor: Tobias John (tobiasjohn) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe ein kleines Problem mit einer Platine die ich entwickelt habe.

Hier das Layout:
http://img523.imageshack.us/my.php?image=boardsf7.png

und hier der Schaltplan (Teil-Ausschnitt):
http://img403.imageshack.us/my.php?image=circuitms0.png

Das Problem ist folgendes:

Ich habe ein einfaches Programm zum Testen per ICSP in den PIC gebrannt.
Das funktionierte nur wenn ich PGM (RB3) mit einem Draht auf GND gelegt 
habe. Das ist das eine Problem - vielleicht hat dazu jemand auch eine 
Antwort.

Das viel größere Problem ist, dass der PIC das Programm nicht 
abarbeitet.
Das Programm macht nicht mehr als PORTB von High auf Low und umgekehrt 
zu wechseln und damit die 2 LEDs D4 und D5 zum blinken zu bringen.
Leider passiert rein GAR nichts.
Es scheint als würde der PIC den Quarz den ich verwende (16MHz) nicht 
"akzeptieren".

Hier das zugehörige Programm:
#include <pic.h>
#define PIC_CLK 16000000
#include "delay/delay.h"

__CONFIG (HS & BORDIS & PWRTEN & WDTDIS & UNPROTECT & DEBUGDIS & LVPDIS);

void main() {
  TRISB = 0x00;
  for(;;) {
    PORTB = 0x00;
    DelayMs(500);
    PORTB = 0xFF;
    DelayMs(500);
  }
}

Wenn ich den Quarz am Oszilloskop ansehe, dann schwingt der schön mit 16 
MHz... Eigenartig.

Bin um jeden Tipp dankbar!

Autor: joa (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
noh,
ähm ich hätte die Vermutung dass es sich um einen Analog Port handelt, 
dieser muss ersteinmal auf Digital umgestellt werden ADCON Register 
glaub ich. Ansonsten alle Spannungen kontrollieren MCLR un co.

Autor: joa (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hhmmm hab grad mal das Datenblatt inhaliert hmmmm trifft wohl nicht zu 
mit dem analog Port^^!!!

Autor: joa (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So hier hab ich mal ne Ini in assembler für den Pic bei mir funktioniert 
sie:

__CONFIG   _PWRTE_ON  & _HS_OSC & _WDT_OFF & _BODEN_OFF & _LVP_OFF & 
_DEBUG_OFF



movlw   0x00      ; Interupt disable
  movwf   INTCON

Und vorsichtshalber kannst du denn auch nocheinmal das INTCON Register 
nullen, dann bist du auf der sicheren Seite!!!!!!!!!!

Also meiner läuft mit der Initialisierung wunderbar, aber wie gesagt ist 
asm!!!!!!!!^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Autor: ChrisS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist Normal, da du den LVP Modus nicht abgeschalten hast.
Und um den abzuschalten, mußt du in den HVP gehen. Dazu muß aber
PGM auf low sein, sonst ist immer der LVP aktiv, und damit lässt sich
das Konfig-Register nicht umprogrammieren.

Autor: Enrico (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal auf sprut.de der hat es mit Pics gut drauf. Dort ist auch das 
von dir beschriebene Problem verzeichnet, mach mittels HVP das Bit für 
die Low Voltage Programmierung weg und du hast ruhe. Das ganze ist unter 
"Fehlern/Fussangeln usw" beschrieben da soweit ich weiß jeder da mal 
reintappt... :)

Autor: Tobias John (tobiasjohn) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo...
danke für die Antworten. Ich habe jetzt PGM/RB3 auf GND gelegt. Jetzt 
funktioniert das Programmieren im HVP wunderbar!

Leider läuft das Programm immer noch nicht.

Ich habe es mal gekürzt und nun setze ich nur PORTB komplett auf High. 
Leider geht das trotzdem nicht.
#include <pic.h>
#define PIC_CLK 16000000
#include "delay/delay.h"

__CONFIG (HS & BORDIS & PWRTEN & WDTDIS & UNPROTECT & DEBUGDIS & LVPDIS);

void main() {
  TRISB = 0x00;
  INTCON = 0x00;
  PORTB = 0xFF;
}

Das muss doch gehen! Leider sagt bei mir der komplette PortB nichts!

Noch eine Idee?

Autor: Tobias John (tobiasjohn) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kaum zu glauben. Der Quarz war defekt.
Ausgetauscht und schon gings!

Danke trotzdem!

Gruß,
 Tobias

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.