1 Allgemeines
Das PIC18F4550 DEMO Board ist eine vereinfachte Version des von
Microchip erwerbbaren Demo Boards. Der Grossteil der verfügbaren
Beispiele können mit dem Nachbau trotzdem getestet werden.
Im Downlaod-Archiv von Microchip findet man die notwendige Software,
Beispiele, den Schaltplan und Anleitungen für den Betrieb des
Boards.
Da die Schaltung sehr einfach im Aufbau ist, günstig in der
Anschaffung und die Programmbeispiele kurz gehalten sind, eignet
sich das PIC 18F4550 USB Demo Board sehr gut für die ersten
Versuche mit USB-Mikrocontrollern.
2 Hardware

Abbildung 1: Schaltung für da PIC18F4550 USB
Demo Board
Diese Schaltung habe ich vor einiger Zeit im Internet gefunden.
Sie stammt nicht von mir. Der Name des Autors ist mir leider nicht
bekannt. Deshalb kann ich ihn hier auch nicht nennen. Den Aufbau
habe ich auf einer Lochrasterplatine vorgenommen. Der Aufwand beträgt
für den Aufbau etwa einen halben Tag (bis alles läuft
und wenn es beim ersten mal klappt:). Weiter unten sieht man dann
das Ergebnis. Abgesehen vom Microcontroller und der USB-Buchse sind
zum Aufbau keine "besonderen" Bauteile erforderlich. Die
Schaltung entspricht exakt jener von Microchip. Es wurde lediglich
auf die RS232-Schnittstelle, auf die externe Spannungsversorgung
über den USB-Bus, einen Temperatursensor und einige Stecker
verzichtet. All diese Teile sind für den Minimalbetrieb des
DEMO Boards aber nicht notwendig.
3 Software
Die gesamte Software zum Test des Boards inklusive eines Bootloaders
kann man sich hier
bei Microchip downloaden.
Programmierung des PIC18F4550
Bevor man mit der gesamten Schaltung arbeiten kann, muss man zuerst
den Bootloader auf den PIC brennen. Ich verwende dazu den PIC Brenner
von SPRUT.
Wichtig ist dabei, dass die Konfigurationsbits
richtig gesetzt sind.
Configuration bit |
Settings |
Full speed USB Source Selection |
Clock src from 96MHz PLL/2 |
CPU System Clock Postscaler |
[OSC1/OSC2 Src; /4][96MHz PLL Src: /6]Divide
by 5 (20MHz input) |
Oscillator |
HS: HS+PLL, USB-HS |
Fail-Safe Clock Monitor Enable |
Disabled |
Internal External Switch Over Mode |
Disabled |
USB Voltage Regulator |
Enabled |
Power Up Timer |
Enabled |
Brown Out Detect |
Disabled in hardware, SBOREN disabled |
Brown Out Voltage |
4.5V |
Watchdog Timer |
Disabled-Controlled by SWDTEN bit |
Watchdog Postscaler |
1:1 |
CCP2 Mux |
RC1 |
PortB A/D Enable |
PORTB<4:0> configured as digital I/O
on Reset |
Low Power Timer1 Osc enable |
Disabled |
Master Clear Enable |
MCLR Enabled, RE3 Disabled |
Stack Overflow Reset |
Disabled |
Low Voltage Program |
Disabled |
Dedicated In-Circuit Port (ICD/ICSP) |
Disabled |
Extended CPU Enable |
Disabled |
All left options are Disabled |
Disabled |
Abbildung 2: Konfigurationsbits zum Brennen des
PIC
Mit dem eingesetzten PIC sieht die fertige Schaltung dann folgendermassen
aus. Das Layout der dargestellten Expeimentier-Platine eignet sich
dazu sehr gut für den Aufbau. Wie man erkennen kann, ist die
Schaltung in Mischtechnik aufgebaut. Die Spannungsversorgung ist
mit einem Linear-Spannungsregler L7805 aufgebaut. Zum Schutz gegen
Verpolung wird die Versorgungsspannung über eine Diode (1N4002)
zum Spannungsregler eingeleitet. Die Spannungsversorgung ist im
oben dargestellten Schaltplan nicht eingezeichnet.

Abbildung 3: PIC18F4550 USB Demo board auf einem
Lochraster aufgebaut
Und schliesslich noch die Unterseite:

Abbildung 4: Unterseite des PIC18F4550 USB Demo
Board
Und wenn nun, nach dem Anlegen der Betriebsspannung einige LEDs
blinken,, dann kann man mit der Inbetriebnahme loslegen.
4 Erste Inbetriebnahme
Am einfachsten führt man einen Test mit den mitgelieferten
Beispielen durch. Das Beispiel mit dem Cockpit des Autos funktionierte
bei mir nicht. Ich erhielt vom Treiben immer einen Fehler "operlapped
IO".
Programm zum PIC uploaden
Der Programmiervorgang erfolgt mit dem Programmloader über
die USB-Schnittstelle. Das Programm findet man im Unterverzeichis
der Demo-Software unter /PC/PDFSUSB/PDFSUSB.EXE. Um einen Download
zu starten, hält man die Taste S2 gedrückt und tippt für
kurze Zeit die Taste S1 (Reset). Anschliessedn sollte man in der
Listbox der verfügbaren USB-Geräte das Board aufgelistet
werden. Nach der Auswahl des entsprechenden Boards wählt man
die Firmware aus, die auf das DEMO Board programmiert werden soll
aus. Zum Anfang empfiehlt es sich z.B. das Beispiel Demo im Unterverzeichnigs
/fw/Demo/_output/MCHPUSB.hex upzuloaden. Über die Taste "Program
Device" erfolgt schliesslich der Programmiervorgang. Bei erfolgreicher
Programmierung sieht man im Ausgabefenster der Programmiersoftware
"Programmin Flash Completed".
Die Funktion der Software kann nun durch den Start der Software
\Pc\Mpusbapi\Example Applications\Borland_C\Example 01 - Load-time
Linking\_console.exe geprüft werden. Wenn das Demo Board ordentlich
arbeitet, dann kann vom Konsole-Programm u.a. die Version der Firmware
abgefragt werden.
Bemerkungen zur Programmierung
Mir ist aufgefallan, dass die downzuloadende Firmware bei jedem
Programmiervorgang jedes mal neu geöffnet werden muss, bevor
die Firmware zum PIC gesendet wird. Scheinbar legt das Programm
MCHPUSB.EXE beim ersten Upload im Speicher eine Kopie ab und prüft
nicht, ob sich die Software in der Zwischenzeit geändert hat.
5 USB API für Borland Delphi
Im den bei Microchip downloadbaren Demos findet man u.a. ein Interface
zur USB-API (Application Programming Interface) für die Programmiersprache
c++. Ich habe die Routinen entsprechend auf Borland Delphi portiert
und ein Beispielprogram inklusive der Firmware erstellt. Den gesamten
Programmcode kann man hier downloaden. Die
Abbildung zeigt einen Screen shot des Testprogramms.

Abbildung 5: Screen shot der Software zum testen
der USBAPI
6 Links
Weitere interessane Informationen findet man hier:
 |
Für eines meiner Projekte liess ich mir einige Prototypen
(AKKON
USB Controller Board) fertigen. Falls jemand Interesse
hat, dann findet man hier
Informationen dazu. Dokumentation (Schaltplan, Stückliste
etc.) gibt es auch dazu. Hier findet man auch eine erweiterte
Schaltung eines PIC18F4550 Board. |
7 Download
Nr |
Type |
downloadbares File |
Beschreibung |
0 |
 |
USBAPI
für Borland Delphi |
Interface zur USBAPI für Borland Delphi
inklusive einem Beispielprogramm und dem Programmcode für
die PIC-Firmware |
|
|
|
|
|