Scheinbar instabile PIC18F2550-Grundschaltung

7

Durch meine Arbeit habe ich einiges an Erfahrung mit der Hardwareentwicklung gesammelt, aber nur aus einer Überwachungsfunktion. In letzter Zeit habe ich mit dem Design von MCU-Schaltkreisen herumgespielt, um ein besseres Verständnis zu erlangen.

Ich habe die folgende Schaltung zusammengestellt, damit ich ein bisschen mit den MCU-Registern herumspielen kann, und es funktioniert - nur zeitweise.

Die LED blinkt wie vorgesehen, stoppt dann für eine beliebige Zeit, blinkt wieder anders oft aus, wieder aus usw. Es scheint kein zyklisches Verhalten zu geben. Es beginnt ohne externen Eingang zu arbeiten (dh es zu stupsen) und scheint daher auch keine lose Verbindung zu sein. Mir ist klar, dass der zweite Vss-Pin nicht im Schaltplan geerdet ist, aber das hat der Schaltung auch nicht geholfen, als ich es ausprobiert habe. Könnte es sein, dass Vusb nicht geerdet ist? Ich hätte gedacht, dass dies nur den USB-Betrieb beeinträchtigen würde.

Schema

Code:

#include <stdio.h>
#include <stdlib.h>

#include <p18f2550.h>
#include <delays.h>

#pragma config FOSC = INTOSCIO_EC       

#pragma config WDT = OFF                

void main() {

    TRISAbits.TRISA1    = 0;    // Set RA1 as output
    LATAbits.LATA1      = 1;    // Set RA1 as HIGH

    while (1)
    {
        LATAbits.LATA1 = ~LATAbits.LATA1;   // Toggle LED pin
        Delay10KTCYx(25);                   // Delay
    }    
}

Hier ist das Datenblatt für das Teil.

njt
quelle

Antworten:

14

Zwei Dinge:

  1. Ein Vss-Pin ist nicht verbunden. Alle Vss, Vdd, AVss und Avdd Pins, wenn vorhanden, müssen ordnungsgemäß angeschlossen.

  2. PGM ist schwebend, was schlecht ist, wenn LVP aktiviert ist. Dadurch kann das Teil zufällig in den Programmiermodus versetzt werden.

Olin Lathrop
quelle
3
Nur um dies zu belegen, hatte ich vor ungefähr einem Jahr genau diese Symptome mit dem gleichen Teil, als ich PGM schwebend ließ.
John Burton
1
Großartig, danke. PGM mit einem 10k Widerstand, um es zu lösen.
NJJ
1
@njt: Es ist auch eine gute Idee, LVP in der statischen Konfiguration zu deaktivieren, es sei denn, Sie verwenden es tatsächlich.
Olin Lathrop
Ich habe mit einer instabilen Strecke zu kämpfen, die mich verrückt gemacht hat, und obwohl diese Antwort ziemlich alt ist, hat sie sich als Lösung für mein Problem erwiesen. Vielen Dank!
Merlevede
4

Auch wenn Sie den Vusb-Pin nicht verwenden, ist er dennoch eine Komponente des von Ihnen verwendeten Chips. Sie deaktivieren es nicht im Code, daher müssen Sie die Anforderungen in Tabelle 28-5 erfüllen.

Diese Anforderungen umfassen einen Kondensator von 220 nF oder mehr zwischen dem Vusb-Pin und Masse, um sicherzustellen, dass der interne Regler stabil ist. Beachten Sie, dass ich zwischen Vusb und Masse gesagt habe, dass Sie diesen Pin nicht kurzschließen möchten - es ist der Ausgang eines internen Spannungsreglers. Es ist unwahrscheinlich, dass dies das beobachtete Verhalten verursacht, aber es wird vom Datenblatt verlangt.

Außerdem konnten Sie an Pin 8 keine Verbindung zur Vss-Verbindung herstellen. Dies ist möglicherweise mit dem Vss-Pin verbunden, mit dem Sie verbunden sind, dies ist jedoch nicht garantiert. Sie sind möglicherweise nicht miteinander verbunden, und die Hälfte Ihres IC schwebt. Es ist auch möglich, dass Sie zwei Stifte benötigen, um die Impedanz gegen Erde zu verringern und eine bestimmte Geschwindigkeit oder eine bestimmte Stromsenkungsfähigkeit zu erreichen. In jedem Fall sollten Sie diesen Pin auch mit Vss verbinden.

Um für einen Moment Meta zu werden, müssen Sie verstehen, dass das Datenblatt wie ein Vertrag zwischen Ihnen und Microchip ist. Vielleicht würde der Vusb-Pin Probleme verursachen, wenn Sie ihn nicht anschließen, vielleicht auch nicht, vielleicht würde er nur Probleme verursachen, wenn Sie ihn demonstrieren oder wenn Sie etwas Gefährliches anschließen. Sie müssen das Datenblatt konsultieren, um zu bestimmen, was Sie mit jedem Pin tun sollen. Wie Sie vielleicht in einem 428-seitigen Dokument vermuten, ist fast alles angegeben. Jeder der anderen Pins wird wahrscheinlich auch eine Spezifikation haben. Nicht verwendete Eingangspins erfordern häufig eine Verbindung zu Vcc oder Vss. Ich bin kein PIC-Experte, aber ich denke, dass es mindestens einen weiteren Nur-Eingabe-Pins gibt, der für andere Programmier- und Debug-Modi verwendet wird.

Kevin Vermeer
quelle
Ich dachte, die Kappe auf Vusb ist nur notwendig, wenn der interne Regler, der 3,3 V erzeugt, aktiviert ist. Dies ist im Grunde die Ausgangskappe für diesen Regler, die vernünftigerweise nicht auf den Chip gesetzt werden kann. Es ist nicht erforderlich, wenn der Regler ausgeschaltet ist, es sei denn, das USB-Modul ist eingeschaltet und befindet sich im richtigen Modus. Sie können zum Beispiel Vusb an Vcc binden, wenn sie 3,3 V haben, wenn ich mich recht erinnere.
Olin Lathrop
@OlinLathrop - " was es ist, es sei denn, das USB-Modul ist eingeschaltet und im richtigen Modus " - Ich stimme zu, dass es nur notwendig ist, wenn der Regler eingeschaltet ist, aber ich bin mir nicht sicher über den Standardzustand. Ich dachte, es wäre eingeschaltet, es sei denn, Sie haben es ausgeschaltet, und der angegebene Code schaltet es nicht aus.
Kevin Vermeer
@ Kevin: Ich habe gerade nachgesehen und es scheint, dass Sie Recht haben. Ich dachte, der Regler ging zusammen mit dem USB-Modul ein und aus, das in der Firmware jederzeit aktiviert und deaktiviert werden kann. Es scheint jedoch, dass der Regler nur von einem Konfigurationsbit gesteuert wird, das sich nach dem Löschen im aktivierten Zustand befindet. Ja, das OP sollte entweder eine geeignete Vusb-Kappe bereitstellen oder den USB-Regler in der statischen Konfiguration deaktivieren.
Olin Lathrop
Ich bin mir nicht sicher, ob ich der Theorie hinter der Kappe am Vusb-Stift folge. Kann jemand eine kurze Erklärung geben? Vielen Dank!
NJJ
@njt - Im Inneren des Chips befindet sich ein linearer Spannungsregler, dessen Ausgang an Pin 14, Vusb, liegt. Dieser Regler erfasst seine Ausgangsspannung und stellt ihn ein, wenn die Spannung zu niedrig ist, oder nach unten, wenn er zu hoch ist. Wenn keine Last vorhanden ist, würde eine normalerweise kleine Einstellung zu großen Schwingungen führen. Wenn es einen Kondensator gibt, sind diese Schwingungen gering. Einige Linearregler benötigen keine Kappen für die Stabilität, aber dieses Datenblatt besagt, dass ein 220 nF Kondensator benötigt wird.
Kevin Vermeer