USBoot
für
USB-Bootloader der PIC18F2550/4550/2553/4553/2455/4455/2458/4458
zurück
zur Software-Seite , Download , Elektronik
, Homepage
Einleitung
Die Software USBoot, kann ohne
PIC-Programmiergerät ein HEX-File in einen USB-PIC brennen, wenn
sich in diesem bereits ein Bootloader befindet. Der Bootloader ist ein
kleines PIC-Programm, das einmalig mit einem anderen
Programmiergerät in den PIC gebrannt werden muss.
Details sind an
anderer Stelle erläutert.
.
Der Bootloader
Mein Bootloader ist ein leicht
modifizierter Microchip-Bootloader. Ich habe das Original so angepasst,
das es sich mit der Student-Edition des C18-Compilers compilieren
lässt, und dann immer noch so klein ist, dass es in den Boot-Block
der USB-PICs passt. Beim Start des PIC prüft der Bootloader
zuerst. ob er aktiv werden soll. Wenn das nicht der Fall ist, dann
übergibt er die Kontrolle sofort an die Firmware. Damit bleibt der
Bootloader normalerweise unsichtbar.
Soll der Bootloader aber aktiv werden, dann übernimmt er die
Kontrolle, und meldet das USB-Gerät am PC an, damit die
Windowssoftware USBoot in der Lage ist, den Flash-Speicher des PIC via
USB zu
brennen.
Welche Hardware ist
nötig?
Der Bootloader benötigt einen
PIC18F2550/4550/2553/4553/2455/4455/2458/4458 mit
USB-Anschluss und Quarz bzw. Resonator (4, 8, oder 20 MHz)
Woran erkennt der Bootloader, ob er
aktiv werden soll?
Ich habe zwei Möglichkeiten vorgesehen:
1. der Bootloader wird aktiv, wenn die Spannung am Pin 1 (MCLR)
Low-Pegel hat.
2. der Bootloader wird aktiv, wenn die EEPROM-Zelle mit der Adresse
0xFE den Wert 0xFF hat
zu 1.
Pin 1 verbindet man über einem Widerstand mit Vdd. Damit liegt es
normalerweise auf High-Pegel. Ein Jumper kann Pin 1 mit Vss verbinden,
um es auf Low-Pegel zu ziehen. Will man den Bootloader verwenden, dann
steckt man zuerst den Jumper, bevor man das USB-Gerät mit dem PC
verbindet.
zu 2.
Der Trick mit der EEPROM-Zelle ermöglicht es, den Bootloader durch
die Firmware zu aktivieren. Damit entfällt der lästige Umgang
mit dem Jumper. Die Firmware muss lediglich die EEPROM-Zelle 0xFE
mit 0xFF beschreiben, und dann einen Reset des PICs auslösen. Dann
wird sofort der Bootloader aktiv. Der Bootloader-2 unterstützt den
EEPROM-Zellen Test nicht. |
|
Woran erkennt der
Benutzer, dass der
Bootloader aktiv ist?
Im einfachsten Fall startet er USBoot. Die Software zeigt ihr
Hauptfenster nur dann, wenn der Bootloader aktiv ist.
Manche Menschen lieben aber ein optisches Signal.
- Die Bootloader-2&3 legen das Pin
RB7 auf High-Pegel. Eine hier angeschlossene LED würde
aufleuchten.
- Der Bootloader-0 legt die Pins RB0
und RC1 auf high. (Hier sind beim Brenner8 LEDs angeschlossen)
- Der Bootloader-5 verzichtet auf das
Aktivieren eines Pins. Bei ihm gibt es also keine LED als
Aktivitätsanzeige.
Bootloader-Versionen:
Es gibt hier mehrere Versionen des
Bootloaders, die funktionell alle identisch sind. Unterschiede gibt es
nur darin:
- wie der Bootloader aktiviert werden
kann
- an welchen Pins der Bootloader LEDs
einschaltet, um seine Aktivität zu zeigen
|
LEDs an RB7 |
LEDs an: RB0 und RC1 |
keine LEDs |
aktiviert durch: Jumper
|
Bootloader-2 für Experimente
|
-
|
- |
aktiviert durch: Jumper und EEPROM-Zelle
|
Bootloader-3 für Experimente |
Bootloader-0 für Brenner8 |
Bootloader-5 für USB4all |
Jeden Bootloader gibt es jeweils
für drei unterschiedliche Quarzfrequenzen des PIC (4 MHz, 8 MHz
und 20 MHz).
PIC-Konfiguration:
Die durch den Bootloader nachgeladene
PIC-Software hat
keinen Einfluss auf die Konfiguration des PIC. Die ist wie folgt
festgelegt:
- Externer Quarz/Resonator-Takt: 4, 8,
20 MHz (ja nach Bootloderversion)
- Tosc: 48 MHz
- Tcycl: 12MHz
- Tusb: 48MHz
- Power-Up-Timer: aktiv
- Brown-out-Reset: aus
- USB-Voltage-Regulator:aktiv
- Watchdog-Timer:aus
- MCLRE-Pin:digital-IO RE3
- PBADEN: aus
- Low-Voltage-Programming: aus
- Codeprotection: aus
- Write-Protect für Boot-block:
aktiv
Download
Die
aktuelle USBoot-Version V4.0 mit Treiber, Handbuch, Bootloadern, und
einer Test-Firmware:
Für Interessierte hier noch das komplette Delphi-Projekt der Version 3.5.
bekannte Probleme
USBoot beschreibt weder den EEPROM noch
die Konfiguration des PICs, obwohl das technisch möglich wäre.
Da ich den Microchip-Treiber
einsetze, funktioniert die Software unter WinNT, Win2000, WinXP
mit Administratorrechten.
Unter WinVista32
sollte die Software mit dem "alten" Treiber im
Kompatibilitätsmodus
(WinXP SP1) und mit dem "neuen" Treiber normal funktionieren, ich teste
das aber nicht.
Entwicklungsgeschichte
USBoot 4.0 (21.05.2012)
- erweiterte Typenpalette
USBoot 3.0 (24.04.2007)
- USBoot bekommt seine eigene Seite auf
meiner Homepage
- Praktisches Bündel mit Treiber, Bootloadern, Beschreibung ...
USBoot 1.0 (15.08.2006)
- Urversion
zurück
zur Software-Seite , Download , Elektronik
, Homepage
Autor: sprut
erstellt: 24.04.2007
letzte Änderung : 21.05.2012