Misc

Senden und Empfangen von Daten von UART in dspic30f und dspic33f

Autor: Laura McKinney
Erstelldatum: 10 April 2021
Aktualisierungsdatum: 17 November 2024
Anonim
Servoverstärker auslesen und visualisieren ( dsPIC30F4011 ) Modbus RTU Display RS485
Video: Servoverstärker auslesen und visualisieren ( dsPIC30F4011 ) Modbus RTU Display RS485

Inhalt

Der Autor schloss sein letztes Ingenieurjahrsprojekt mit den dsPic-Mikrocontrollern ab und erhielt umfassende Einblicke in diese Geräte.

UART ist aufgrund seiner Einfachheit, einfachen Implementierung und minimalen Hardwareanforderungen das am häufigsten verwendete Kommunikationsprotokoll in Mikrocontrollern.

Dieses Tutorial und die Implementierung eines Beispielcodes führen Sie durch den Prozess der erfolgreichen UART-Kommunikation zwischen einem dspic-Mikrocontroller und einem PC.

Dinge, die für die UART-Kommunikation benötigt werden

Der erste Schritt sollte darin bestehen, alle für die UART-Kommunikation erforderlichen Dinge zu sammeln. Die folgende Liste fasst diese Hardware- und Softwareanforderungen zusammen:


1. UART-Kommunikationssoftware für PC

  • Option 1: Ich würde die Arduino IDE für diesen Zweck bevorzugen. Die Arduino IDE verfügt über einen seriellen Monitor, mit dem gesendete Daten vom Mikrocontroller überwacht werden können. Es hat auch einen ausgezeichneten grafischen Monitor, um die empfangenen Daten zu zeichnen. Dieselbe IDE kann auch zum Senden serieller Daten verwendet werden.
  • Option 2: Das PicKit ™ -Tool verfügt auch über einen seriellen Monitor zum Senden und Empfangen von Daten, jedoch nicht über einen seriellen Plotter. Es werden auch keine hohen Baudraten bis zu 115000 unterstützt, die von der Arduino IDE unterstützt werden können.

2. USB-zu-Seriell-Konverter / Transceiver

  • Option 1: Der USB-TTL-Wandler PL2302 kann sehr bequem als Transceiver zwischen der seriellen USB-Schnittstelle des PCs und den TX / RX-Pins des Mikrocontrollers verwendet werden. Es ist sehr billig und im Internet und in lokalen Elektrofachgeschäften erhältlich (zumindest in meiner Region).
  • Option 2: Das PicKit ™ ist das Programmierwerkzeug der Pic-Mikrocontroller und verfügt über einen eingebauten UART-Transceiver. Der Vorteil dieser Verwendung besteht darin, dass Sie keine zusätzliche Hardware erwerben müssen, da PicKit die Aufgabe übernimmt. (Vorausgesetzt, Sie haben es bereits, seit Sie die Bilder programmiert haben.) Der Nachteil ist, dass Sie das PicKit nicht in Ihre fertigen Projekte einfügen können, da Sie es möglicherweise für die spätere Verwendung benötigen. In diesem Fall ist der USB-zu-TTL-Konverter eine bessere Option.
  • Option 3: Eine UART-zu-RS232-Konvertierungsschaltung kann mit Hilfe von MAX232-ICs und RS232-Kabeln hergestellt werden. ICs sind normalerweise billig, aber die Herstellung der Schaltung kostet mehr Zeit. Dies war die Legacy-Lösung vor dem Aufkommen von USB-zu-TTL-Konvertermodulen.

3. dsPic Micro-Controller und sein Programmierer

Ein Bildgerät und sein Programmierer zum Laden des Codes.


4. Ein paar Überbrückungsdrähte

Herstellen der erforderlichen Verbindungen zwischen den TX / RX-Pins des Mikrocontrollers und dem USB-TTL-Wandler

5. USB-Verlängerungskabel (optional)

Falls Sie den USB-zu-TTL-Konverter weit von Ihrem PC entfernt verkabeln müssen, wenn Sie Ihr Projekt endgültig zusammenbauen.

Nachdem Sie die Liste der erforderlichen Dinge durchgearbeitet haben, können Sie mit den Schritten 1 bis 4 fortfahren.

1. Installieren Sie die erforderliche Software und Treiber

Installieren Sie den seriellen Monitor Ihrer Wahl auf Ihrem PC. Wie ich bereits sagte, bevorzuge ich die Arduino IDE.

Bei Verwendung eines USB-zu-TTL-Konverters:

Sie müssen den Treiber herunterladen und installieren, bevor Sie das Modul zum Laufen bringen können. Die Treiber sind auf der Prolific Systems-Website und an anderer Stelle im Internet verfügbar. Stellen Sie sicher, dass die von Ihnen heruntergeladenen Treiber mit Windows 7 kompatibel sind, da dies sonst nicht funktioniert. Suchen Sie nach einem separaten Tutorial für die Treiberinstallation, wenn Sie Probleme haben.


Nach der Installation des Treibers müssen Sie den TTL-Konverter testen, um sicherzustellen, dass er ordnungsgemäß funktioniert. Es wird empfohlen, vor dem Testen des Konverters nicht fortzufahren.

So testen Sie den Konverter:

  1. Installieren Sie zuerst den erforderlichen Treiber und starten Sie das System neu.
  2. Stecken Sie das Konvertermodul ein und der PC sollte eine neue Geräteverbindung feststellen.
  3. Schließen Sie die TX- und RX-Pins am TTl-Wandler mit Hilfe eines Jumpers kurz.
  4. Öffnen Sie die Arduino IDE und wählen Sie die richtige serielle Schnittstelle aus, an die der Konverter angeschlossen ist.
  5. Senden Sie alle Daten über den seriellen Monitor.
  6. Wenn Sie dieselben gesendeten Daten auf dem seriellen Monitor zurückerhalten, funktioniert das Modul ordnungsgemäß.

Bei Verwendung von PicKit:

Laden Sie einfach das Pickit-Programm herunter und verbinden Sie das PicKit-Gerät mit Ihrem PC.

2. Verdrahten Sie die Anschlüsse

Für TTL-Konverter:

So verbinden Sie den USB-TTL-Wandler PL2303 mit dem dspic-Mikrocontroller

Pin-Name am KonverterEntsprechender PIN-Name auf dem Mikrocontroller

TX

RX

RX

TX

GND

GND, Vss

5 V (optional)

Vdd, Vcc

  • Pin-Namen sind auf der Rückseite des Konverters aufgedruckt.
  • Genaue PIN-Nummern, die ihren PIN-Namen entsprechen, müssen aus dem Datenblatt entnommen werden, wenn sie sich von Gerät zu Gerät ändern.
  • Optional kann eine 5-V- oder 3,3-V-Versorgung vom Wandler zur Stromversorgung des Mikrocontrollers verwendet werden.
  • Es ist zwingend erforderlich, die Erdung der Steuerung und des Umrichters gemeinsam zu machen.

Für PicKit:

Das PicKit verfügt über einen 6-poligen Anschluss mit Pin Nummer 1, der mit einem weißen Pfeil am Gerät gekennzeichnet ist.

Pin-Nummer auf dem 6-Pin-HeaderEntsprechender Pin-Name auf der MCU

2

Vcc, Vdd

3

Gnd, Vss

4

TX

5

RX

  • Zusätzlich wird der Schaltplan in einem Einschub im UART-Tool des PicKit angezeigt.

3. Senden Sie Daten von dspic über UART

Laden Sie den Code zum Senden von Daten über UART hoch, nachdem Sie die Verbindungen verkabelt und das TTL-Konvertermodul getestet haben, um sicherzustellen, dass es funktioniert.

  • Text kann mit der Funktion printf () in der Bibliothek stdio.h gesendet werden.
  • Variablen können gesendet werden, indem sie zuerst in ein Array konvertiert und dann mit printf () gedruckt werden.

Beispielcode zum Senden von Daten über UART

#define FCY 30000000 #include xc.h> #include stdio.h> #include delay.h> #include libpic30.h> #include math.h> #include p30F4011.h> _FOSC (CSW_FSCM_OFF & FRC_PLL16); // Fosc = 16 × 7,5 MHz, d. H. 30 MIPS _FWDT (WDT_OFF); // Watchdog-Timer aus _FBORPOR (MCLR_DIS); void UART_Init (void) {_TRISF3 = 0; // Suche nach den genauen TX / RX-Pins deines Bildgeräts _TRISF2 = 1; // TX-Pin muss als Ausgangsport und RX-Eingang U1BRG = 7 gesetzt sein; // 115000 Baudrate bei 30 MIPS U1MODEbits.UARTEN = 1; // UART aktivieren} int main (void) {UART_Init (); while (1) {// Zum Drucken einer Variablen sprintf (Array, "% d", Variable); printf (Array); printf (" r n"); // Text drucken printf ("Grüße aus Pakistan r n"); __delay_ms (1000); }}

4. Empfangen Sie Daten über UART in dspic

Um Daten von UART zu empfangen, müssen Sie einen UART-Empfangsinterrupt verwenden, der jedes Mal ausgelöst wird, wenn ein Datenpaket in den UART-Empfangsregistern (U1RXREG) empfangen wird. Diese Daten werden an eine andere Variable übertragen und der Empfangspuffer wird gelöscht, wenn er voll ist. Sie können den folgenden Beispielcode verwenden.

  • Um sicherzustellen, dass der Interrupt tatsächlich ausgelöst wird, wurde an Port D0 eine LED angeschlossen, die einmal blinkt, wenn der Interrupt ausgelöst wird.
  • Wenn die LED unmittelbar nach dem Senden einiger Daten vom seriellen Monitor blinkt, gehen Sie davon aus, dass der Code ordnungsgemäß funktioniert.
  • Der Wert der Variablen 'data' kann auch im Debug-Modus überprüft werden.

Beispielcode zum Empfangen von Daten von UART

#define FCY 30000000 #include xc.h> #include stdio.h> #include libpic30.h> #include uart.h> #include delay.h> #include p30F4011.h> // Konfigurationseinstellungen _FOSC (CSW_FSCM_OFF & FRC_PLL16) ;; // Fosc = 16 x 7,5 MHz, Fcy = 30 MHz _FWDT (WDT_OFF); // Watchdog-Timer aus _FBORPOR (MCLR_DIS); // Pin-Char-Daten zum Zurücksetzen deaktivieren; void Interrupt_Init (void) {IEC0bits.U1RXIE = 1; } void __attribute __ ((Interrupt, auto_psv)) _U1RXInterrupt (void) {_LATD0 = 1; __delay_ms (500); _LATD0 = 0; Daten = U1RXREG; if (U1STAbits.OERR = 1) {U1STAbits.OERR = 0; } IFS0bits.U1RXIF = 0; } int main () {// Setze alle Port D Pins als Ausgänge _TRISD0 = 0; // UART einrichten - Die meisten Standardoptionen sind in Ordnung. UART_Init (); Interrupt_Init (); während (1) {__delay_ms (1000); } return 0; }}

Dieser Artikel ist genau und nach bestem Wissen des Autors. Der Inhalt dient nur zu Informations- oder Unterhaltungszwecken und ersetzt nicht die persönliche Beratung oder professionelle Beratung in geschäftlichen, finanziellen, rechtlichen oder technischen Angelegenheiten.

Frische Publikationen.

Seien Sie Sicher, Dass Sie Lesen Möchten

Pentium G4560 Review- und Benchmark-Daten
Computers

Pentium G4560 Review- und Benchmark-Daten

Hallo aller eit . Will hier. Heute werde ich die Köpfe meine prei gün tigen PC-Build , de Intel Pentium G4560-Proze or , di kutieren und überprüfen. Beginnen wir al o damit.In er t...
So verwenden Sie Google Moon mit der Google Sky App
Internet

So verwenden Sie Google Moon mit der Google Sky App

L. M. Reid i t ein iri cher chrift teller, der viele Artikel in Magazinen und online veröffentlicht hat.Erfahren ie, wie ie die e Google-Anwendungen einfach und chnell herunterladen können. ...