On Mon, Jun 27, 2011 at 12:08:28PM -0400, Gordon Williams wrote: >=20 > ----- Original Message -----=20 > From: "Byron Jeff" > > The problem with the Microchip loader, the Tiny bootloader, and others = is > > that virtually all of them tie up the hardware serial port making it a > > challenge to use when you have a project that also needs that serial po= rt. >=20 >=20 > Tiny bootloader doesn't tie up the serial port. You can use the serial p= ort > for whatever you want. Of course it does. Take a look at the hardware section here: http://www.etc.ugal.ro/cchiculita/software/tinybldusage.htm Specifically: -------------------------------- On your board, you must have the PIC (pins TX,RX) connected to the serial port of the PC (pins Rx,Tx), usually using a MAX232 level converter: -------------------------------- >=20 > The boot loader runs on PIC startup a very short time to see if there is > anything to be downloaded. If it doesn't detect any download it runs the > main program were you configure the uart and start using it. Now of course the application can share the hardware serial port. But it does require some management. For example if you wanted a MIDI or DMX interface, then there would have to be some way to multiplex the TX/RX for = the bootloader with the TX/RX for the target equipment. Also there must be an assurance that the target hardware doesn't somehow wiggle the RX line during the boot phase. This is exactly my point. A bit-banged serial interface can be a single pin (input only or half duplex) that doesn't tie up any hardware I/O devices for the target. The price is that the pin must be dedicated to the bootloader task, at least at boot. But since any digital input pin can be used, it gives a lot of flexibility for its use. Another issue is that since the hardware async serial interface is specifically used, there is little opportunity to change the line protocol to give more flexibility (autobauding) or reliability (encoding the clock signal into the protocol). Which means most likely that even if there is an internal oscillator block available, that an external crystal or resonator will still need to be used. This ties up two more potential I/O lines that are multiplexed with the crystal circuit pins. Take a read of Wouter's ZPL paper. It outlines that I/O and hardware are the most precious resources and should be allocated judiciously. A 28 pin part may have 32K of flash and 4K of RAM. But it only has 25.5 I/O pins max. Conservation of those resources is paramount with a bootloader. BAJ >=20 > Gordon Williams >=20 > --=20 > http://www.piclist.com PIC/SX FAQ & list archive > View/change your membership options at > http://mailman.mit.edu/mailman/listinfo/piclist --=20 Byron A. Jeff Department Chair: IT/CS/CNET College of Information and Mathematical Sciences Clayton State University http://cims.clayton.edu/bjeff --=20 http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .