header.png

Downloads

fsusb

fsusb-0.1.11-2

Auf der Internetseite www.internetking.org von Rick Luddy gibt es, seit Jahren unverändert, die Urversion http://www.internetking.org/fsusb Nach den Angaben des Authors wird er fsusb nicht weiter entwickeln und betreuen.
Diese Urversion ist exakt auf das Original Microchip PICDEM FS USB Demoboard mit dem darauf verbauten PIC 18F4550 Controller zugeschnitten. Es ist nicht möglich mit dieser unveränderten Version z.B. PIC Controller mit Sprut's ( www.sprut.de ) abgespecktem Bootloader zu beschreiben.

fsusb-0.2

Änderungen der Version 0.2

Diese Änderungen wurden mit fsusb-0.2 eingeführt:
  • fsusb kann jetzt auch von Usern ohne root Rechte benutzt werden.
  • Ein Reset des PIC Controllers kann über fsusb durchgeführt werden. ( Hilfreich bei automatischem Ablauf des Firmware Updates ).
  • Die fest einprogrammierten VendorID:ProductID's sind jetzt nur noch als Defaultwert vorgegeben.Diese ID's können durch die Option „--pic-id“ verändert werden.
  • Die fest einprogrammierten Adressbereiche des PIC18F4550 sind jetzt nur noch als Defaultwert vorgegeben.Diese Adressbereiche können auf 2 verschiedene Arten verändert werden:
    • Ab Version 0.2 gibt es in fsusb Definitionen für Adressbereiche der Typen 18F2455, 18F2550, 18F4455 und 18F4550 ( Es ist vorgesehen weitere PIC Typen in fsusb zu integrieren). Diese Definitionen können mit „--pic 18F2455“ auf einfache Weise selektiert werden.
    • Um auch weitere PIC Controller mit anderen Adressbereichen bearbeiten zu können gibt es zusätzlich noch die Möglichkeit, die Adressbereiche per Konfigurationsdatei an fsusb zu übergeben „--device Dateiname“.

Command Line Interface

Wie fsusb von der Kommandzeile aus benutzt wird ist in der README beschrieben:
fsusb: Software for "PICDEM Full Speed USB" demo board
     modified by <sig@sigvdr.de> [2011] to version fsusb-0.2
     written by <rickluddy@gmail.com> version fsusb-0.1.11

fsusb command [<file>] [options]
commands: fsusb --program <file> [options] program board with <file> and verify fsusb --verify <file> [options] verify board against <file> fsusb --read <file> [options] read board, saving result in <file> fsusb --readboot <file> [options] read boot area, saving result in <file> fsusb --reset [options] reset board fsusb --pic-list list of mcu's (for option <pic>) fsusb --create <configFile> create a default configFile for 18F4550, modify this fsusb --connected [all|options] list connected USB devices
options: --usb-id <[VENDOR:]PRODUCT> define usb hardware id -(check id with ⟨lsusb>) default: 04d8:000b --pic <type of mcu> default: 18Fx550 --device <configFile> other mcu's than <--pic-list> need to be defined

Usage Examples

fsusb --read test.hex
read from a 18F4550 with bootloader default ID's 04d8:000b
fsusb --read test.hex --usb-id 0faa
read from a 18F4550 with bootloader ID's 04d8:0faa
fsusb --read test.hex --usb-id f7fa:0faa
read from a 18F4550 with bootloader ID's f7fa:0faa
fsusb --read test.hex --usb-id f7fa:0faa --pic 18F2455
read from a 18F2455 with bootloader ID's f7fa:0faa
fsusb --read test.hex --usb-id 0faa --device 18F8888.conf
read from a PIC with bootloader ID's 04d8:0faa,
adress ranges are defined in 18F8888.conf
fsusb --readboot boot.hex
read bootloader
fsusb --reset usb-id ff0c
reset the device with ID's 04d8:ff0c and run probably your new firmware
fsusb --pic-list
list all mcu names that you can use with option "--pic" other mcu's have to be defined with configFile
fsusb --create test.conf
create a default configFile for a 18F4550 mcu, modify this configFile with the correct adress ranges for your mcu
fsusb --connected
list devices (default ID's 04d8:000b) connected to USB
fsusb --connected all
list all devices connected to USB
fsusb --connected --usb-id [f7fa:]0faa
. list devices ( ID's f7fa:0faa) connected to USB

ConfigFile

example for a configFile: do not use lowercase letters in a configFile
[18F4550]
EEPROM_BASE = 0x00
EEPROM_TOP = 0xff
PROGRAM_BASE = 0x0800
PROGRAM_TOP = 0x7fff
ID_BASE = 0x200000
ID_TOP = 0x200007 
CONFIG_BASE = 0x300000
CONFIG_TOP = 0x30000d
DEVID_BASE = 0x3ffffe
DEVID_TOP = 0x3fffff

Changelog

2013-05-16
added --connected
List devices connected to USB
added make.bat

bugfix Makefile.Win32
Build fsusb with mingw32
2011-05-11
deleted fsusb <file>
Programming MCU without command --program is not longer possible
added --reset
Reset MCU and run new program
added --usb-id
use fsusb with different vendorID's and od productID's, the default ID's are the original Microchip ID 04d8:000b
added --pic / --pic-list
select and list build in defined pic mcu's
added --device / --create
define config files for pic mcu's that are not defined in fsusb

Building

Linux
Just "make" ought to build it, assuming you have libusb and the
associated headers installed.
Debian users for example: apt-get install libusb libusb-dev
Windows
I used mingw32 on a Windows7 PC to build fsusb using libusb-win32-bin-1.2.6.0.zip
Add path to mingw32 to global PATH variable
Check INCPATH and LIBS in file Makefile.Win32, maybe you have to change   
	INCPATH = -I"..\libusb\include"           # path to lusb0_usb.h
	LIBS    = -L"..\libusb\lib\gcc" -lusb     # path to libusb.a
Just "make.bat" ought to build it