Kommunizieren Sie PIC mit digitalen Waagen/DMMs

Ist es möglich, dass ein PIC (ich denke an die Verwendung von 16F628 / 16F628A) mit einem anderen Gerät kommunizieren kann, in diesem Fall einer Digitalwaage oder einem industriellen Digitalmultimeter, das die Kommunikation über USART / serielle Schnittstelle verwendet?

Ich weiß, dass es möglich ist, Digiscales an den PC anzuschließen und Daten über serielle Schnittstellen zu lesen (ich habe das schon einmal gemacht, also weiß ich, dass ich es könnte). Ich habe mich nur gefragt, ob jemals jemand versucht hat, PICs oder Mikrocontroller anstelle von PCs zu verwenden. Die Änderung ist erforderlich, da dort, wo ich dieses Ding implementieren werde, die PC-Option nicht verwendet werden kann (sie ist nicht vorhanden) und die Verwendung von PIC viel viel billiger ist.

Ich habe Codes für einen 16f84 erhalten, der mit mir mit einem PC kommuniziert (habe ihn von electronic-diy.com bekommen, jetzt irgendwie blockiert), werde versuchen, ihn zuerst in 16f628A-kompatibel zu konvertieren. Wer Ideen hat, teilt sie.

Es erscheint mir offensichtlich, wenn Sie dies bereits an einer seriellen Schnittstelle getan haben, dasselbe für Ihren PIC zu verwenden. Verwenden Sie einen MAX232 oder ähnliches, um die EIA-232-Pegel in die PICs umzuwandeln
Ich habe mich nur gefragt, ob die serielle Schnittstelle auf der PC-Seite auch auf die PIC-Seite übersetzt werden kann. Matt Jenkins hat das bereits näher ausgeführt, also ja, ich nehme an, es ist machbar.
Wie ich sehe, hat Matt Ihnen eine gute Antwort gegeben, aber Sie werden wahrscheinlich keine Gedanken von anderen hören, da Sie seine akzeptiert haben, bevor jemand anders die Möglichkeit hatte, etwas möglicherweise anderes zu sagen.
Ich denke, ich hätte länger warten sollen, aber nachdem ich die Antwort von jemandem akzeptiert habe, können andere Leute immer noch hier posten, oder?

Antworten (1)

Der PIC hat einen Industriestandard-UART, und alles, was der PC tun kann, kann der PIC in Bezug auf die Kommunikation tun.

Der einzige Unterschied zwischen den beiden besteht darin, dass der PC höchstwahrscheinlich einen RS-232-Leitungstreiber in der Schaltung hat, um die richtigen +/-12 V oder so bereitzustellen. Der PIC hat dies nicht, aber das Hinzufügen von etwas wie einem MAX232-Chip konvertiert die Ausgabe in Standard-RS-232-Pegel.

Alles, was Sie wissen müssen, sind die richtigen Protokolle für die Kommunikation mit dem entfernten Gerät und deren Implementierung in der PIC-Firmware. Beachten Sie, dass der PIC standardmäßig kein Hardware-Handshaking und einen sehr kleinen (2 Zeichen) Empfangspuffer hat, daher schreibe ich normalerweise meine eigenen Sende-/Empfangsroutinen, die Hardware-Handshaking mit ein paar anderen E/A-Leitungen implementieren gehen auch durch den MAX232-Chip (CTS/RTS).

Das Ermitteln der richtigen Baudrateneinstellung auf dem PIC kann ein wenig schwierig sein, je nachdem, in welcher spezifischen Sprache Sie programmieren - einige Berechnungen sind oft erforderlich, um den Divisor aus der Systemtaktgeschwindigkeit zu erhalten. Das Datenblatt ist dafür unerlässlich – lesen Sie es gründlich durch.

Ja, ich habe herausgefunden, dass ich die RS232 von 12 V auf TTL 5 V umwandeln muss, damit sie funktioniert - es ist die Software, um die ich mir mehr Sorgen mache. Ich verwende HiTech C in C-Programmierung, um den PIC zu programmieren. Ich suche im Internet nach Beispielen und habe bisher nur einige gefunden, die praktikabel aussehen.
Es ist ganz einfach - sobald Sie den USART konfiguriert haben, müssen Sie die Sende- / Empfangsflags überprüfen und in Pufferregister schreiben / aus ihnen lesen.
Danke für die Antwort. Ich beginne damit, zuerst das Datenblatt zu lesen.
@Sodrohu - Das Lesen des Datenblatts ist immer eine gute Sache!
Ich habe das Datenblatt gelesen und dort steht, dass USART entweder einen asynchronen oder einen synchronen Modus hat - welchen soll ich wählen?