Holgi's PIC16C765 USB-Testboard


Microchips PIC16C765 oder PIC16C745 USB-Controller eignen sich gut für eigene Experimente wenn man keinen einfachen dummen USB-Port sondern einen Chip mit programmierbarer Eigenintelligenz braucht. Da es sich hierbei um USB 1.1 LowSpeed Devices handelt sollte man es aber nicht zu eilig haben. Die USB Schnittstelle der Controller schafft zwar 1.5MBit/s, aber die Daten müssen im Chip noch verarbeitet werden. Man kommt im Endeffekt so auf 1000 Byte/s. Ein Datenpaket mit 8 Byte braucht ca. 8ms. Das reicht für Messungen von sich langsam ändernden Größen wie Temperaturmessungen oder zum schalten von Relais. Einen CompactFlash Reader sollte man mit diesen Controllern besser nicht bauen.

Die USB-Routinen von Microchip benötigen ungefähr 2kB Programmspeicher. Es bleiben also 6kB für eigene Programme übrig.

PIC16C765 USB Testboard

USB-Testboard für PIC16C765 Layout (Eagle3.5) und USB-Demo mit Sourcecodes (VisualC 5 und MPASM)

Das Programm im PIC führt folgende Funktionen aus:
AD-Werte von den fünf analogen Eingängen an PORTA lesen. PORTA kann mit dem Programm nicht auf digitale IO's geändert werden !
Die serielle Schnittstelle ist fest auf 9600Baud, 8, N, 1 eingestellt und kann Daten senden und empfangen. Siehe aber auch unten.
Die beiden PWM-Ausgänge sind aktiv. DutyCycle 0% voreingestellt. Kommt also noch kein Signal raus. Über das PR2 Register kann die PWM-Frequenz geändert werden.

Alle anderen PORT's sind auf digitale IO's gesetzt und können gelesen und geschrieben werden.
Die TRIS Register können gelesen und geschrieben werden um die Datenrichtung von Port's/Pins zu ändern. 

Die Grundeinstellung nach jedem RESET:
PORTA alles auf analoge Eingänge außer PORTA4 digitaler Eingang.
PORTB alles Ausgänge
PORTC1 PWM-Ausgang1, PORTC2 PWM-Ausgang2, PORTC6 Ausgang für TxD, PORTC7 Eingang für RxD,
die anderen PORTC Pins Eingänge
PORTD und PORTE alles Eingänge

Wer andere Funktionen oder eine andere Grundeinstellung braucht muß das PIC Programm selbst an seine Wünsche anpassen.

Das PC-Demoprogramm zeigt wie man einfach Ports beschreibt und liest, wie man die TRIS Register ändert und wie man Werte vom AD-Wandler bekommt. Zu Anfang ein nettes kleines Lauflicht auf PORTB und PORTD. Noch kein Beispiel für die serielle Schnittstelle.

Es wurde schon mehrfach danach gefragt ob der PIC16C765 per USB programmiert werden kann. Das geht NICHT. Dazu braucht man ein PIC Programmiergerät. Hoffentlich bringt Microchip bald einen USB-Flash Controller mit USB-Bootloader raus. Mit den Eprom-Typen ist das arbeiten einfach nur lästig ;)

20.07.2005 Es gibt jetzt PIC18Fxx50 USB-Flash Controller. Den Bootloader muß man aber immer noch mit einem richtigen PIC-Prommer reinbrennen. Siehe dazu mein neues PIC18F2550 USB Testboard

Leider gibt es bei Microchip keinen USB-Treiber in Form einer DLL. Es gibt zwar VBHIDComm.ocx . Eine VB ActiveX Komponente. Die mochte mein VisualC Compiler aber nicht einbinden. Sie steht bei Microchip auch nicht mehr zum Download bereit ! Es gibt aber ein paar Seiten wo sie noch zu finden ist. Suche mit google nach hidcomm.exe oder hidcomm.zip. Größe ca. 2.4MB.

Die Suche nach einer anderen Möglichkeit für VC5 brachte erst nicht viel zu tage. Bis ich eine Seite mit dem Titel USB by Example gefunden habe. Link ? Guckst du bei www.google.com. Die brachte dann Licht in die Sache.

Die PIC's sind sogenannte HumanInterfaceDevices (HID). Für die braucht man gar keinen Treiber. Win fragt auch gar nicht danach wenn man das Testboard einstöpselt. Im Gerätemanager taucht nach ein paar Sekunden unter HID (HumanInterfaceDevices) , nicht unter USB !, ein HID kompatibles Gerät auf. Man kann solche HID Devices mit Win Boardmitteln (HID.DLL und SETUPAPI.DLL) bearbeiten. Man muß nur wissen wie. Ich habe mir das ganze aus ein paar VisualBasic Beispielen von der Seite oben zusammengesucht und eigene C-Routinen geschrieben. Frag mich bloß nicht was da genau gemacht wird. Ich weiß es nicht. Hauptsache es geht ;)


Ich entwerfe keine Schaltungen oder Programme für andere. Dazu fehlt mir einfach die Zeit. Bei mir sind keine Bausätze, Platinen oder programmierte Chips zu den Schaltungen erhältlich. 

E-Mail

Zur Startseite