Nem működik az eredeti MCHPUSB Bootloader? Máshova tennéd a boot gombot? Nem szeretnéd karácsonyfadísznek használni a bootloadert?
Ezekre a problémákra keressük a megoldást.
A MCHPFSUSB Framework v2.1-ben lévő MCHPUSB Bootloader PIC18F4550 Firmware-t módosítottam, hogy csak 1 LEDet használjon, máshol legyen a bootgomb és az az 1 LED persze, hogy működjön rendesen.
Az eredetivel az volt a problémám, hogy valamilyen oknál fogva csak akkor működött rendesen, ha újratelepítettem a driverét. Vagyis, minden bootload módba váltás után drivert kellett telepítenem, hogy tudjak rá progit feltölteni.
Ennek a megoldása szerencsére nem volt nehéz, ugyanis a Microchipes fiúk bennehagyták commentben amit kiszedtek. Ezt a sort kellett visszaraknom:
USBPrepareForNextSetupTrf(); // Removed; pedig kell!
Ez a sor az usbdrv.c fájlban a USBDriverService(void) függvényben található.
A másik probléma a boot gomb helye. Nekem valamiért nem tetszett, hogy a B port 4. bitjére rakták, az E port 1. lába jobb hely neki. Ehhez módosítani kellett az io_cfg.h fájlt. Ne felejtsük el digitálisra állítani az E portot!
Maradtak a LEDek. Csodálkoztam, hogy az új bootloader már 4 státusz LEDet használ. Minek ennyi? Ha fényeffekteket akarok, majd írok olyan progit. Szóval átírtam a boot.c-ben lévő BlinkUSBStatus(void)-t. Ha már belenyúltam, picit lassítottam a villogáson. A LED az E port 0. bitjére került.
Picit följebb a forrásban a BootService(void) függvény használja a 3. és 4. LEDet, elég megjegyzésbe rakni a kérdéses sorokat.
A módosított firmware letölthető lentebb. Tekintet nélkül arra, hogy nálam hiba nélkül működik, nem vállalok semmilyen felelősséget érte!
bootloader2_1firmware.zip