This is aimed at all the folks who bought a DiscFerret with 001B
firmware... and has been cross-posted to classiccmp because I know there
are a few DiscFerret owners who don't follow the official mailing list.
There's a fairly nasty bug in the USB stack on firmware version 001B.
This bug causes the DiscFerret to stop responding under some conditions:
- When the power cable is plugged in before the USB cable.
- When the USB cable is unplugged, then reconnected while the
DiscFerret is powered up. ("hot plugging")
Basically, there's a logic error in the Microchip USB stack which causes
it to enter an infinite loop whenever the PIC boots without the USB
cable connected, or when the USB cable is disconnected mid-way through a
USB packet.
In the latter case, the USB PHY/SIE module in the PIC gets out of sync
with the host, and fails to re-synchronise when the host is reconnected.
The solution is to upgrade to Firmware 001C. This is available from
<http://www.discferret.com/downloads/>.
In simple terms:
- Short the BOOT jumper on the DiscFerret
- Connect the power supply and USB cable (in any order)
- Remove the jumper
- Run mphidflash to reprogram the PIC (the exact command line to use
is on the Downloads page).
The whole procedure can be done in a few minutes. If you've ever
reflashed a PC BIOS, you'll have no trouble upgrading the firmware on a
DiscFerret.
Any problems -- feel free to email me, or post on Discferret-L.
Thanks,
--
Phil.
classiccmp at philpem.me.uk
http://www.philpem.me.uk/