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.
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.
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.
quelle