tag:blogger.com,1999:blog-89006118538971812712024-03-13T10:10:50.223-07:00aef-embeddedaefhttp://www.blogger.com/profile/07174447288630958312noreply@blogger.comBlogger5125tag:blogger.com,1999:blog-8900611853897181271.post-15168212549349168682009-07-12T07:33:00.001-07:002009-07-12T08:27:31.206-07:00AVRUSBBoot<span style="font-weight: bold;">AVRUSBBoot - USB bootloader for Atmel AVR controllers</span><br /><br />AVRUSBBoot is a bootloader for the Atmel AVR controllers. It uses a firmware-only USB driver to transfer binary data from the<br />PC to the flash of the controller. Once the AVR is flashed with the bootloader, no other ISP programmer is needed; then the<br />microcontroller can be reprogrammed over USB.<br />Features<br />Software works under multiple platforms. Linux, Mac OS X and Windows are tested.<br />Tested with ATMega8-16<br />No special USB controllers or smd components are needed.<br />Bootloader fits into 1024 word bootloader block<br />Hardware<br />Basically AVRUSBBoot can be used with all circuits which are supported by the AVR USB driver. To switch between the<br />bootloader and the application, an aditional jumper is necessary. Here is an example (Here the levels on the data lines are 5V<br />which doesn't meet the USB specification! The supply voltage should be regulated to 3,3V - 3,6V):<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisPcgddNEuo8mQywJD_m4VGzIJUYLUgW6H7FAIk4KWlmjfrVRQDJ1pufSSEAeZWOsrcSuXmB3I0nD1aVEvv_OMbaUvPjjg7YDI10ox2Y-Z0pk8UZyUpThHJmfp0mtNV7oAlNrqMVNd9Ac/s1600-h/avrusbboot_circuit.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 177px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisPcgddNEuo8mQywJD_m4VGzIJUYLUgW6H7FAIk4KWlmjfrVRQDJ1pufSSEAeZWOsrcSuXmB3I0nD1aVEvv_OMbaUvPjjg7YDI10ox2Y-Z0pk8UZyUpThHJmfp0mtNV7oAlNrqMVNd9Ac/s200/avrusbboot_circuit.png" alt="" id="BLOGGER_PHOTO_ID_5357594793355136050" border="0" /></a><br /><span style="font-weight: bold;">Firmware and adaptation</span><br />The firmware has to be adapted to your hardware. All necessary changes has to be done in the following two files:<br />bootloaderconfig.h:<br />Define the condition when the bootloader should be started, e.g. if a special pin is put to ground with a jumper, and the<br />initialisation of the hardware.<br />usbconfig.h:<br />Define the used data line pins. You have to adapt USB_CFG_IOPORT, USB_CFG_DMINUS_BIT and<br />USB_CFG_DPLUS_BIT to your hardware. The rest should be left unchanged.<br />Compile the firmware. You need avr-gcc, avr-binutils and avr-libc:<br /><br /><pre class="listing">$ cd firmware<br />$ make<br /></pre><br /><br />The bootloader firmware has to be written to the controller with a ISP programmer. Once the bootloader is flashed, you don't<br />need a programmer and you can download the binary data over USB. Don't forget to set the fuses for the external clock source<br />when flashing the bootloader for the first time!<br /><br /><span style="font-weight: bold;">Software</span><br />A C++ tool for downloading hex files is provided. To compile the program, you need libusb.<br /><br /><pre class="listing">$ cd software<br />$ make<br /></pre><br /><br />When the device is connected and the bootloader is started (set the jumper before connecting the device), hex files can be<br />written to the flash of the microcontroller:<br /><br /><pre class="listing">$ ./avrusbboot test.hex<br /></pre><br /><br /><span style="font-weight: bold;">Download</span><br /><a href="http://www.fischl.de/avrusbboot/avrusbboot.2006-06-25.tar.gz">avrusbboot.2006-06-25.tar.gz</a> (128 kB)<br />Links<br /><a href="http://www.obdev.at/products/avrusb/">http://www.obdev.at/products/avrusb/</a> Firmware-only AVR USB driver<br /><a href="http://libusb.sourceforge.net/">http://libusb.sourceforge.net/</a> libusb<br /><a href="http://libusb-win32.sourceforge.net/">http://libusb-win32.sourceforge.net/ </a>LibUsb-Win32aefhttp://www.blogger.com/profile/07174447288630958312noreply@blogger.com0tag:blogger.com,1999:blog-8900611853897181271.post-90242832975745231072009-07-09T06:47:00.000-07:002009-07-09T07:26:34.528-07:00USBasp - USB programmer for Atmel AVR controllers<table align="center" cellpadding="0" cellspacing="0" width="750"><tbody> <tr> <td colspan="2" align="left"><i>USBas</i><i>p is a U</i><i>SB i</i><i>n-circuit programmer for Atmel AVR controllers. It simply<br />consists of an ATMega48 or an ATMega8</i><i> and a couple of passive<br />components.The programmer uses a firmware-only USB driver, no<br />spe</i><i>cia</i><i>l U</i><i>SB controller is neede</i><i>d.</i><br /><h2>Features</h2> <ul><li>Works under multiple platforms. Linux, Mac OS X and Windows</li></ul> are tested.<ul><li>No special controllers or smd components are needed.</li><li>Programming speed is up to 5kBytes/sec.</li><li>SCK option to support targets with low clock speed.</li><li>Planned: serial interface to target (e.g. for debugging).</li></ul> <h2>Download</h2> <h3>Firmware and circuit</h3>The following packages include circuit and firmware.<br /><a class="linkslink" href="http://www.blogger.com/usbasp.2009-02-28.tar.gz">usbasp.2009-02-28.tar.gz</a> (260 kB)<br /><a class="linkslink" href="http://www.blogger.com/usbasp.2007-10-23.tar.gz">usbasp.2</a><a class="linkslink" href="http://www.blogger.com/usbasp.2007-10-23.tar.gz">00</a> <a class="linkslink" href="http://www.blogger.com/usbasp.2007-10-23.tar.gz">7</a><a class="linkslink" href="http://www.blogger.com/usbasp.2007-10-23.tar.gz">-10-23.tar.gz</a> (172 kB)<br /><a class="linkslink" href="http://www.blogger.com/usbasp.2007-07-23.tar.gz">usbasp.2007-07-23.tar.gz</a> (176 kB)<br /><a class="linkslink" href="http://www.blogger.com/usbasp.2006-12-29.tar.gz">usbasp.2006-12-29.tar.gz</a> (118 kB) Supports programmers with<br />ATMega48 and ATMega8.<br /><a class="linkslink" href="http://www.blogger.com/usbasp.2006-09-16.tar.gz">usbasp.2006-09-16.tar.gz</a> (116 kB) New VID/PID!<br /><a class="linkslink" href="http://www.blogger.com/usbasp.2005-11-14.tar.gz">usbasp.20</a><a class="linkslink" href="http://www.blogger.com/usbasp.2005-11-14.tar.gz">05</a><a class="linkslink" href="http://www.blogger.com/usbasp.2005-11-14.tar.gz">-11-</a><a class="linkslink" href="http://www.blogger.com/usbasp.2005-11-14.tar.gz">14.tar.gz</a> (175 kB)<br /><a class="linkslink" href="http://www.blogger.com/usbasp.2005-07-03.tar.gz">usbasp.2005-0</a> <a class="linkslink" href="http://www.blogger.com/usbasp.2005-07-03.tar.gz">7-03.tar.gz</a> (166 kB)<br /><a class="linkslink" href="http://www.blogger.com/usbasp.2005-04-21.tar.gz">usbasp.200</a><a class="linkslink" href="http://www.blogger.com/usbasp.2005-04-21.tar.gz">5-04-21.tar.gz</a> (169 kB)<br /><br />Please refer to <a class="linkslink" href="http://www.blogger.com/Readme.txt">Readme.txt</a> for details on building, installing and using<br />USBasp.<br /><h3>Software</h3> <ul><li>AVRDUDE supports USBasp since version 5.2! <a href="http://download.savannah.gnu.org/releases/avrdude/">Get AVRDUDE</a>.<br /></li><li><a href="http://khazama.com/project/programmer/">Khaza</a><a href="http://khazama.com/project/programmer/">ma AVR Programmer</a> is a Windows XP/ Vista GUI<br /></li></ul>application for USBasp and avrdude.<br /> <h2><br /></h2> <h2>Hardware Schematic</h2><h2><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSYucONPsYMmcRfiBUTIusHjlIdhKQJb5seEcbEWqrFSmAP-Uex1n5GTkWnCwqJ8pPvBsfhEJT5EC2XmRV9qkKobTaEbE_CgofdaIxw35AhIdd6Mehx9_VjAzudfbRySItXvXHEfeoXFM/s1600-h/Schematic.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 183px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSYucONPsYMmcRfiBUTIusHjlIdhKQJb5seEcbEWqrFSmAP-Uex1n5GTkWnCwqJ8pPvBsfhEJT5EC2XmRV9qkKobTaEbE_CgofdaIxw35AhIdd6Mehx9_VjAzudfbRySItXvXHEfeoXFM/s200/Schematic.jpg" alt="" id="BLOGGER_PHOTO_ID_5356464023542337074" border="0" /></a></h2><br /><br /><br /><br /><br /><br /><h3><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPG6cyvFD1nqZ9NFChlQHpN9BFs13DLFTNRcrLxiTMYQ8SkWDu8l1WpIUoqQPZWRWaGFjpGp7hKUz88OQbYwmmavs8clI7fzQFSND6Ij33GndxpLasWAGOUb38loCy4vT9W0HU8PynHmw/s1600-h/Schematic.jpg"><br /></a></h3> <br /><h3>PCB layouts</h3>Here is a list of tested PCB layouts. If you have designed your own PCB,<br />please let me know.<br /><br /><table> <tbody> <tr> <td><h2><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfFMyU0vFm3TqK8vJdF5L1SxUYnn1w15VLRy_aIGAewuplrkKeug8aqWaMXeRSfgG4wxOm76dovsarzNAa45M7e7btWLLQQuejxOqbme3YMZSVDfEI9GklENAszIcHPoDyjcfsul3Ol_0/s1600-h/1.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 150px; height: 82px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfFMyU0vFm3TqK8vJdF5L1SxUYnn1w15VLRy_aIGAewuplrkKeug8aqWaMXeRSfgG4wxOm76dovsarzNAa45M7e7btWLLQQuejxOqbme3YMZSVDfEI9GklENAszIcHPoDyjcfsul3Ol_0/s200/1.jpg" alt="" id="BLOGGER_PHOTO_ID_5356458722216138226" border="0" /></a></h2> <a href="http://www.blogger.com/bilder/usbasp_print.jpg"><img alt="USBasp: single-side PCB" src="http://www.blogger.com/bilder/usbasp_print_small.jpg" border="0" /></a><br /></td> <td valign="top"><a href="http://www.blogger.com/usbasp_single_side.t3001.zip">usbasp_single_side.t3001.zip</a><br />by Thomas Fischl<br />Single-Side PCB, TARGET 3001!<br />layout file Size: 90x40 mm (optimized<br />for case <a href="http://www.hammondmfg.com/dwg2c.htm" target="_blank">Hammond 1591ATBU</a>)<br /></td></tr> <tr> <td><h2><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg47OL6LB7SuTqdm41nYTOlccWhu7dAaTh8VR4L3Zkyymd9HwgQVPbnNb2CX7ENiJ4UCMLAnuQ4BsDrP3gfE6OfyMPar6NAnJ6S5PJNOpHttH85ThO5nKK9ABcoXir0CchJuubMZE94X1w/s1600-h/2.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 151px; height: 80px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg47OL6LB7SuTqdm41nYTOlccWhu7dAaTh8VR4L3Zkyymd9HwgQVPbnNb2CX7ENiJ4UCMLAnuQ4BsDrP3gfE6OfyMPar6NAnJ6S5PJNOpHttH85ThO5nKK9ABcoXir0CchJuubMZE94X1w/s200/2.jpg" alt="" id="BLOGGER_PHOTO_ID_5356458960079173058" border="0" /></a></h2> <img alt="LV-USBasp" src="http://www.blogger.com/bilder/lv_usbasp.jpg" /><br /></td> <td valign="top"><a href="http://www.blogger.com/pcbs/lv_usbasp.tar.gz">lv_usbasp.tar.gz</a><br />by Pawel Szramowski (11/2007)<br />With <b>Low-voltage front-end</b>.<br />Single-Side PCB, EAGLE layout files,<br />some SMD components<br /></td></tr> <tr> <td><h2><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijT0B-ntWtbvM1bWMcdH8XipD7y7t27jydZ0yrQFY4nFQ5fbzPV9rWuGFoG2J8tuQZ5OBTVES2iuyRZDTjDVzFCOXlfFyCTbehGtvc_pmd3mVXG_OPOry4aKJQLv8OfggHnaoYgmAiMyM/s1600-h/3.png"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 150px; height: 80px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijT0B-ntWtbvM1bWMcdH8XipD7y7t27jydZ0yrQFY4nFQ5fbzPV9rWuGFoG2J8tuQZ5OBTVES2iuyRZDTjDVzFCOXlfFyCTbehGtvc_pmd3mVXG_OPOry4aKJQLv8OfggHnaoYgmAiMyM/s200/3.png" alt="" id="BLOGGER_PHOTO_ID_5356459098636821154" border="0" /></a></h2> <img alt="Bernhard Walle" src="http://www.blogger.com/bilder/usbasp_layout_2sides.png" /><br /></td> <td valign="top"><a href="http://svn.berlios.de/viewcvs/hw-projects/trunk/projects/avr-programmer/eagle/" target="_blank">http://svn.berlios.de/viewcvs/hw-</a><br /><a href="http://svn.berlios.de/viewcvs/hw-projects/trunk/projects/avr-programmer/eagle/" target="_blank">projects/trunk/projects/avr-</a><br /><a href="http://svn.berlios.de/viewcvs/hw-projects/trunk/projects/avr-programmer/eagle/" target="_blank">programmer/eagle/</a><br />by Bernhard Walle<br />Double-Side PCB, EAGLE layout files,<br />part list with order numbers for<br />Reichelt.de and Conrad.de<br />Size: optimized for case <a href="http://www.hammondmfg.com/dwg2c.htm" target="_blank">Hammond 1591ATBU</a><br /><br /></td></tr> <tr> <td><h2><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCFgukUegSaRUQGYgrlDLPOnnhVePw3CffvIx0_7w2-UGuXL7ffsUNl0yL4BRRdvqsdy-NVTQBedEDpCn5Y-RzrsxDu_qIYUj7maK8gytUkSyNmVWerWAmv3542rFC6C88Krc0LzBzX40/s1600-h/4.png"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 150px; height: 80px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCFgukUegSaRUQGYgrlDLPOnnhVePw3CffvIx0_7w2-UGuXL7ffsUNl0yL4BRRdvqsdy-NVTQBedEDpCn5Y-RzrsxDu_qIYUj7maK8gytUkSyNmVWerWAmv3542rFC6C88Krc0LzBzX40/s200/4.png" alt="" id="BLOGGER_PHOTO_ID_5356459203034086722" border="0" /></a></h2> <img alt="Thomas Pfeifer" src="http://www.blogger.com/bilder/usbasp_tp.png" /><br /></td> <td valign="top"><a href="http://thomaspfeifer.net/atmel_usb_programmer.htm" target="_blank">http://thomaspfeifer.net/atmel_us</a><br /><a href="http://thomaspfeifer.net/atmel_usb_programmer.htm" target="_blank">b_programmer.htm</a><br />by Thomas Pfeifer<br />Single-Side PCB, PDF layout files, SMD<br />components<br /><br /><!--Size: ? --></td></tr> <tr> <td><h2><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5ga8RgO06eoUeAml94D0YlOJYEKnLhiHug1kLG6MNmmpUNpyjrXQfy6ceWDFNjxnFhDqfRKAxrdJRTvFOrX8sAiotd2_egpQU94c-BFwYG37sPp3RzOSKO5uwudxxd342p2iZfDBPhi8/s1600-h/5.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 150px; height: 82px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5ga8RgO06eoUeAml94D0YlOJYEKnLhiHug1kLG6MNmmpUNpyjrXQfy6ceWDFNjxnFhDqfRKAxrdJRTvFOrX8sAiotd2_egpQU94c-BFwYG37sPp3RzOSKO5uwudxxd342p2iZfDBPhi8/s200/5.jpg" alt="" id="BLOGGER_PHOTO_ID_5356459382539298114" border="0" /></a></h2> <img alt="Tomasz Ostrowski" src="http://www.blogger.com/bilder/usbasp_to.jpg" /><br /></td> <td valign="top"><a href="http://ostry.w.szu.pl/misc.php#USBasp" target="_blank">http://ostry.w.szu.pl/misc.php#USBasp</a><br />by Tomasz Ostrowski<br />Single-Side PCB, PDF and EPS layout files,<br />only four 0805 SMD parts, rest discrete<br />components<br /><!--Size: ? --></td></tr> <tr> <td><h3><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhN8wAGKd2Nliq1dVfp6MXY4G4qIr_C4Vm7-Yrep3_5Pffr_j2U5BxOAreCZWu9XvuFOHsSuYPxeI6TKewkvG5rN7pjN3h-UFeP1HWB3wgTky6Urb0rT4l09gcusGo2UPJrr0HBty-ZXsI/s1600-h/6.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 150px; height: 96px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhN8wAGKd2Nliq1dVfp6MXY4G4qIr_C4Vm7-Yrep3_5Pffr_j2U5BxOAreCZWu9XvuFOHsSuYPxeI6TKewkvG5rN7pjN3h-UFeP1HWB3wgTky6Urb0rT4l09gcusGo2UPJrr0HBty-ZXsI/s200/6.jpg" alt="" id="BLOGGER_PHOTO_ID_5356459477732727682" border="0" /></a></h3> <img alt="USBasp by Christian Heigemeyr" src="http://www.blogger.com/bilder/usbasp_ch.jpg" /><br /></td> <td valign="top"><a href="http://www.blogger.com/ch/USBasp_CH.zip" target="_blank">USBasp_CH.zip</a><br />by Christian Heigemeyr<br />Single-Side PCB, with some SMD 0805<br />components, PDF-files. With additional<br />buttons for reset and disconnection of<br />the target.<br /></td></tr> <tr> <td><h2><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWg1U4BuUiC-lhb2v5b2JXSnQBj893iNKigsl3C6tgqd5ha7UyjWvLYuG3v1amgLxNvpnz_hmKb6rBpLnegTaow7iUkqPAow1Dl4WLKNK10lS8q2jS5kKDp6LbigrqkzzgS6Z7uWVM81U/s1600-h/7.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 150px; height: 83px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWg1U4BuUiC-lhb2v5b2JXSnQBj893iNKigsl3C6tgqd5ha7UyjWvLYuG3v1amgLxNvpnz_hmKb6rBpLnegTaow7iUkqPAow1Dl4WLKNK10lS8q2jS5kKDp6LbigrqkzzgS6Z7uWVM81U/s200/7.jpg" alt="" id="BLOGGER_PHOTO_ID_5356459576068552466" border="0" /></a></h2> <img alt="Zhurov Pavel" src="http://www.blogger.com/bilder/usbasp_zp.jpg" /><br /></td> <td valign="top"><a href="http://www.blogger.com/zp/USBasp.sch" target="_blank">USBasp.sch</a>, <a href="http://www.blogger.com/zp/USBasp.pcb" target="_blank">USBasp.pcb</a><br /><a href="http://www.blogger.com/zp/ComponentSide.pdf" target="_blank">ComponentSide.pdf</a>, <a href="http://www.blogger.com/zp/TopSide.pdf" target="_blank">TopSide.pdf</a>,<br /><a href="http://www.blogger.com/zp/Schematics.pdf" target="_blank">Schematics.pdf</a><br />by Zhurov Pavel<br />Single-Side PCB, P-CAD 2002 format and<br />PDF files Crosspiece TXD and RXD are<br />added for the ISP connector<br /></td></tr> <tr> <td><h3><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9y7qclEwO43Rh4Q5W3zSJoE6YwclK0QdEqcAzMQC7JKAYgaiKTbIhfd0YKT7_x4szT8XwNZrKQrXrhyxPcT7cQlM7xEZd4O-n1y2ISBEaO04cCNMR7_ve7Re3yXWCS5Y8dOI4Tb7fVBU/s1600-h/8.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 150px; height: 119px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9y7qclEwO43Rh4Q5W3zSJoE6YwclK0QdEqcAzMQC7JKAYgaiKTbIhfd0YKT7_x4szT8XwNZrKQrXrhyxPcT7cQlM7xEZd4O-n1y2ISBEaO04cCNMR7_ve7Re3yXWCS5Y8dOI4Tb7fVBU/s200/8.jpg" alt="" id="BLOGGER_PHOTO_ID_5356459682355340050" border="0" /></a></h3><br /><br /><br /><br /><br /><br /><br /><img alt="J.A. de Groot" src="http://www.blogger.com/bilder/usbasp_groot.jpg" /><br /></td> <td valign="top"><a href="http://www.blogger.com/usbasp_gr.rar">usbasp_gr.rar</a><br />by J.A. de Groot<br />The board is single sided (EAGLE format),<br />measures 3 by 8 cm and uses only<br />regular components.<br /><br /><a href="http://w3.ele.tue.nl/nl/ewinkel/studenten/knowledge_base/atmel_programmeren/" target="_blank">USBasp Howto</a> (in Dutch). There is also<br />a pdf file with 6 devices on one euro-card.<br /><br /><br /></td></tr> <tr> <td> <h3><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4lG960CLMVEp7Zj10W15IFlpwnBVt5gSm5dIEAVpracKzSZ8_18nILUyPYPiPG0SpAbuIqU9YrzB5MGRMd2skwb1R1aaBpQaZvDnwZ3sZwojKSHnZpD4oQVY5dBrjbp4wy8Hge7RfeZg/s1600-h/9.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 150px; height: 113px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4lG960CLMVEp7Zj10W15IFlpwnBVt5gSm5dIEAVpracKzSZ8_18nILUyPYPiPG0SpAbuIqU9YrzB5MGRMd2skwb1R1aaBpQaZvDnwZ3sZwojKSHnZpD4oQVY5dBrjbp4wy8Hge7RfeZg/s200/9.jpg" alt="" id="BLOGGER_PHOTO_ID_5356459785902002562" border="0" /></a></h3> <img alt="Matthias Goerner" src="http://www.blogger.com/bilder/usbasp_mg.jpg" /><br /></td> <td valign="top"><a href="http://www.blogger.com/mg/usbasp_mg.zip" target="_blank">usbasb_mg.zip</a><br />by Matthias Görner<br />Single-Side PCB, eagle-format, with PS/<br />PDF-files integrated sockets for target<br />chips ATmega8 and ATmega32<br /></td></tr> <tr> <td><h2><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJEqCUGs7r3JRl9U4fynn7NxJ_sk0srww_KRzNAJJJeHN2ddJ-tMMSJ5XuhmhWK4LN4Q1ZE5qOJXmmhxrPPpDVo4UV_uy5i4DZQZC1ur4FwJ3RZ1WfAYw23EVnyiVFfAYcoz3AXBM5CKE/s1600-h/10.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 150px; height: 66px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJEqCUGs7r3JRl9U4fynn7NxJ_sk0srww_KRzNAJJJeHN2ddJ-tMMSJ5XuhmhWK4LN4Q1ZE5qOJXmmhxrPPpDVo4UV_uy5i4DZQZC1ur4FwJ3RZ1WfAYw23EVnyiVFfAYcoz3AXBM5CKE/s200/10.jpg" alt="" id="BLOGGER_PHOTO_ID_5356459873351352626" border="0" /></a></h2> <img alt="USBasp by Hannes Östlund" src="http://www.blogger.com/bilder/usbasp_hannes_oestlund.jpg" /><br /></td> <td valign="top"><a href="http://h.myftp.org/cgi-bin/gitweb.cgi?p=usbasp.git;a=snapshot;h=master" target="_blank">Tarball with layout</a><br />by Hannes Östlund<br />Doubleside-Side PCB, SMD components,<br />very small<br /></td></tr></tbody></table><br /><h2>Links</h2><img alt="de" src="http://www.blogger.com/pics/de.png" /> <a class="linkslink" href="http://www.fundf.net/usbasp/">Bausatz "USBasp"</a> <span class="linkstext">Offizielles USBasp Selbstbau-Kit</span><br /><img alt="en" src="http://www.blogger.com/pics/en.png" /> <a class="linkslink" href="http://www.obdev.at/products/avrusb/" target="_blank">http://www.obdev.at/products/avrusb/</a><span class="linkstext"> Firmware-only AVR USB driver</span><br /><img alt="en" src="http://www.blogger.com/pics/en.png" /> <a class="linkslink" href="http://libusb.sourceforge.net/" target="_blank">http://libusb.sourceforge.net/</a> <span class="linkstext">libusb</span><br /><img alt="en" src="http://www.blogger.com/pics/en.png" /> <a class="linkslink" href="http://libusb-win32.sourceforge.net/" target="_blank">http://libusb-win32.sourceforge.net/</a> <span class="linkstext">LibUsb-Win32</span><br /><img alt="en" src="http://www.blogger.com/pics/en.png" /> <a class="linkslink" href="http://www.nongnu.org/avrdude/" target="_blank">http://www.nongnu.org/avrdude/</a><span class="linkstext"> AVRDUDE - AVR<br />Downloader/UploaDEr</span><br /><!-- Hier endet Hauptinhalt --><br /><br /></td></tr><!-- Copyright-Leiste --> <tr> <td colspan="1" bg="" style="color: rgb(237, 240, 246);" align="left" valign="top"><span class="copyright"> </span><br /></td></tr></tbody></table>aefhttp://www.blogger.com/profile/07174447288630958312noreply@blogger.com0tag:blogger.com,1999:blog-8900611853897181271.post-80355763255741913222009-07-04T19:27:00.000-07:002009-07-04T19:57:26.772-07:00Lead-Acid Battery Desulfator.It was twenty years ago that I left my on-grid home, and my job as an electronics engineer, to begin life on an alternative energy oriented organic farm. In the intervening years, I have<br />installed, maintained, and experimented with numerous RE systems in my area.<br /><br />What I have come to understand from this experience is that off-grid life tends to become very much focused on the battery bank and its fate.<br /><br />All power sources and loads breathe through this crucial pathway. Batteries are heavy, toxic, inefficient, and—to the amazement of many—electrically very fragile. Weak or failing batteries are a very likely cause of breakdown, especially in smaller solar-electric systems.<br />Most newcomers to renewable energy are quite familiar with using water tanks or gas tanks, and naturally use this familiarity in trying to understand their battery banks. Everyone knows that a bigger water tank is better than a small one. Unfortunately, batteries are not like tanks, and the result is trouble. It is definitely not true that a big battery bank is necessarily better than a small one. An oversized battery bank can be almost impossible to charge properly. Without a minimum daily exercise regimen, it can become the equivalent of a couch potato. The main culprit is sulfation, which is a gradual crystallization of the battery’s plate material, rendering it electrically inactive.<br /><br />Some Theory<br />Past issues of Home Power (see Access) have gone into the details of keeping lead-acid batteries healthy, so I will only touch on the main points here. The usual practice in maintaining a battery in good condition is to apply a periodic equalization charge over and above what would be a normal full charge. Unfortunately, this is an energy-wasting tactic. It ultimately results in clean<br />battery plates, but at a steep price, especially if the energy must come from a generator.<br />I initially went to the Internet to find any available information on the problem of sulfation. The search engines turned up several commercial sites that give useful details on the fine points of battery charging and equalization. A second resource is the IBM patent server (www.patents.ibm.com). I found relevant patents there, using keywords like “desulfate” and “rejuvenate.”<br /><br />What this wealth of data shows is that there are numerous strategies for charging and electrically desulfating batteries. Most of them were designed or developed in the last twenty years or so. Considering that lead-acid batteries have been around for more than<br />a century, this is a relatively new innovation. Virtually all of the devices and patents I found have in common the use of some form of pulsing charge current. This is in contrast to the constant or slowly varying currents generated by sources like solar-electric panels.<br /><br />I distilled and simplified these various techniques, and came up with a basic circuit that will keep small to medium sized batteries in desulfated condition. It can even be used to bring old, sulfated units back into service. Use of the circuit has dramatically reduced the need for equalization charges in my own home system. Resonant Frequency The technique used in this circuit relies on a little known aspect of lead-acid batteries. They possess what is called a “resonant frequency,” at a surprisingly high frequency. The frequency is dependent on various physical details of the battery’s construction, but it is on the order of 2 to 6 megahertz, which is in the low<br /><div style="text-align: center;">ranges of the shortwave radio bands.<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimKXckl-eM9GDiXskCkh4zPePMRoVtMlhucbGyA-nV0OkHBL3rAn8_BRd1rvMvTUCv5fTGOIzvLIKyk0G2uldPqMqIzjK43bY53ldtOZj3S62tEmWo70zwiGxqf54zmxJUhPVTNxRv9kE/s1600-h/Untitled.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 238px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimKXckl-eM9GDiXskCkh4zPePMRoVtMlhucbGyA-nV0OkHBL3rAn8_BRd1rvMvTUCv5fTGOIzvLIKyk0G2uldPqMqIzjK43bY53ldtOZj3S62tEmWo70zwiGxqf54zmxJUhPVTNxRv9kE/s320/Untitled.jpg" alt="" id="BLOGGER_PHOTO_ID_5354798345319405106" border="0" /></a> Figure 1: 12 Volt Battery Desulfator<br /></div><br />This resonance is just like that of a stringed musical instrument, where a pluck of the string creates a vibration of a specific tone. In the case of the battery,<br />sulfur ions dissolved in the electrolyte take the place of the string. A sufficiently energetic electrical “pluck,” or pulse, will cause a similar vibration of these ions, back<br />and forth throughout the electrolyte. When this vibrational state isoccurring, there are uncountable collisions between the ions in the electrolyte and the battery plates, as the back and forth vibration continues. It is this rhythmic beating of the plates which causes the breakup of the crystalline deposits, slowly but surely, for as long as the electrical pulsations are applied.<br />It is not unlike sandblasting a rough surface, but on a micro-physical level. This is an advantage of electrical methods over the use of chemicals like EDTA. Rather than dissolving the sulfate deposit and allowing it to settle on the bottom of each cell, as with EDTA, the pulse technique returns the sulfate back into solution again.<br /><br /><span style="font-weight: bold;">Circuit Details</span><br />The circuit is in essence a very widely used form of switching DCto-DC convertor, which can take a DC voltage and step it up to a higher level. Figure 1 shows the version which is specifically for 12 volt systems. The basic pulse rate is set by the venerable 555 timer chip, U1, which switches the MOSFET Q1 at a 1 kHz rate. When Q1 is in the non-conducting state, current is drawn from the battery through L2 so that capacitor C4 can be charged slowly. Then Q1 is turned on for a brief 50 microseconds, causing the charge stored in C4 to start flowing through L1. When Q1 is turned off again, the stored inductive energy in L1 has to continue to flow somewhere, so it pulses back into the battery through diode D1. This current pulse can get as high as 6 amps. The use of an inductor to supply this pulse is what makes it possible to restore badly sulfated atteries with a high internal resistance. The peak voltage drop across the battery can initially be as high as 50 volts. With continued treatment, this peak volt<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWhyphenhyphenMCoCs9064yEeVxlrYsTayawQP2IppeUi-fUHB2ynwY_OctYT9s5nx1msciuL1mN2XkhPeb4Pgx4fN1TLF07OyyuGxrMbjCnFC5QQfngWLsbwAutZQEq6yie5tE52Z5KotoP1EA-Dk/s1600-h/Untitled1.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 194px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWhyphenhyphenMCoCs9064yEeVxlrYsTayawQP2IppeUi-fUHB2ynwY_OctYT9s5nx1msciuL1mN2XkhPeb4Pgx4fN1TLF07OyyuGxrMbjCnFC5QQfngWLsbwAutZQEq6yie5tE52Z5KotoP1EA-Dk/s320/Untitled1.jpg" alt="" id="BLOGGER_PHOTO_ID_5354799161128370770" border="0" /></a>age will decrease as the battery’s internal resistance gradually declines.<br /><br /><br />Figure 2 shows the version for use in 24 volt systems.<br /><br />Its only additional feature is the use of a 79L12 voltage regulator (component U2, Digi-Key part number NJM79L12A-nd) to convert the 555’s input voltage down to 12 volts. Also L3 (Digi-Key part number DN4518-nd) is increased in value over L1 in the 12 volt unit, to compensate for the higher terminal voltage.<br /><br />If an oscilloscope is available, it is easy to observe the ringing wave form across the battery terminals. It is likely that more than one frequency will be apparent, due to all the wiring and other details of the setup. It should be possible to see a small spark jump from the leads of the pulse generator as it is connected, a result of the high peak voltage available (keep this in mind if<br />your batteries are not well ventilated). Depending on the case, and the type of inductors used for L1 and L2, a faint audio tone can also be heard when the circuit is operating. Digi-Key part number DN4516-nd will work for L1, and DN7437-nd will work for L2. There is no reverse olarity protection in this circuit, so make sure that the leads are clearly marked. A mistake will result in damaged components. Also, it is not a good idea to expose the 12 volt circuit to more han 16 volts at the terminals. See the parts table for a detailed component list. But<br />don’t get too attached to using exactly these components, or to buying new stuff. The homebrew<br />ethic is based on an ability to make do, come up with alternatives, and recycle. My first trial units had quite a bit that was clipped out of old junk circuit boards.<br /><br /><span style="font-weight: bold;">Usage</span><br />It should be emphasized that pulsing energy to and from the battery happens at less than 100 percent efficiency. This circuit draws about 40 mA from the battery while in operation (less than 1 amp-hour per day), so some additional charging source is needed. For reconditioning a sulfated battery, I simply clip the circuit across the battery terminals in parallel with a 30 watt solar panel. In my initial testing, it took a month to partially reclaim a pair of golf cart batteries that had been allowed to sit, discharged, for almost a year. They had such a <a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_ebV80b8IZv8eW9-wmhbSLTgUOv9hE0L59vH0AIJOcu2Usgw1L5tJFbfBKVdy4QKIfmd7ehnXg18GRL7k2IrTfXN8D6x06PXjwss3rhphyphenhyphennl6gDRRlXvcuysdynbQEcmObK-e8uHZyj8/s1600-h/Untitled2.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 305px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_ebV80b8IZv8eW9-wmhbSLTgUOv9hE0L59vH0AIJOcu2Usgw1L5tJFbfBKVdy4QKIfmd7ehnXg18GRL7k2IrTfXN8D6x06PXjwss3rhphyphenhyphennl6gDRRlXvcuysdynbQEcmObK-e8uHZyj8/s320/Untitled2.jpg" alt="" id="BLOGGER_PHOTO_ID_5354801658631375314" border="0" /></a>high internal resistance that a very small current would take the terminal voltage over 16 volts. For use in a functioning power system, you can clip the circuit across the main battery terminals, using as short a lead length as possible. When external equipment,<br />such as an inverter, is connected across a battery bank, then additional low impedance paths are formed. The desulfator’s current pulses will appily flow down these paths as well, and it serves no purpose for the pulses to flow into the inverter.<br />I had initially thought that this shunting, or dilution, of the current pulses away from the battery would be a problem. This has not proven to be the case, however, because the impedance of typical inverters at frequencies above 1 megahertz is not very low. (Note: impedance is just a fancy word for resistance, taking into account the circuit’s behavior at different frequencies.) One way to keep the external equipment from shunting away the current pulse would be to take some ferrite toroid cores and slip them over the battery leads as they leave the bank. This will increase the high frequency impedance without affecting the DC performance of the circuitry. The circuit as shown, with its approximately 6 amp peak capacity, is probably strong enough to maintain a bank of several hundred amp-hours. If you want to use the circuit with larger banks, it will be necessary to select D1, L1, and L2 for higher current capacity. You will also need to vary the pulse width from the 555 accordingly, so that Q1 is allowed to stay on for a longer period of each cycle. If you want to power the circuit from an auxiliary voltage source, so that the battery being treated remains trickle charged, simply remove R3 and place 12 volts across C1. It’s best to construct the unit in a shielded case. Otherwise it is likely to generate a fair bit of radio interference. The use of the shortest possible lead length is also a good idea. All the components are available from any general electronics distributor. Radio Shack is as good a place as any for getting the case, clip leads, circuit board, and other components.<br /><span style="font-weight: bold;">Does It Work?</span><br />If badly sulfated batteries are treated, it is convenient to use a trickle charger of one or two amps. In this case, the simplest way to see that the circuit is having an effect is to note that the terminal voltage actually drops each day as the batteries slowly charge. This is a result<br />of the internal resistance of the cells decreasing as the plates become slowly cleared of the sulfate, and more useful plate area comes in contact with the electrolyte. Also, the specific gravity of the cells begins to rise slowly, evidence that the sulfate is going back into<br />solution. To further check the progress, you could do a discharge test, using a known load, to determine the useful capacity. This would involve measuring the length of time taken by the load to drop the battery voltage from a high level to a low level. If you repeat this test, a gradual lengthening of this interval should be noted. In one system I worked with, at first the batteries would not power even a small load. After treatment, they were able to run loads in the neighborhood of 5–10 amps for a few hours. This is far from “like new” condition, but it was sufficient for them to be returned to use in the small PV system they were taken from. I expect hat further treatment would have helped. It seems that the process is inherently slow. Lead sulfate is just not very willing to return into solution. Healthy Batteries I have used this circuit in my main system for over a year, and have not seen the need to equalize in that time (I do not own a generator). All of the cells’ electrolyte levels remain in step with each other, and there has been no problem with starting big loads—asure sign of battery health. Patience is required in<br />reclaiming weak and tired batteries, and no amount ofdesulfating will help a battery with a shorted cell, or one that has lost plate material through excessive use. The device is especially useful for automotive batteries that sit for long periods. If you use a generator for equalization, this technique is a must. When you live off-grid, silence is golden.<br /><span style="font-weight: bold;">Access</span><br />Author: Alastair Couper, Kaupo, Maui, HI 96713<br />kalepa@shaka.comaefhttp://www.blogger.com/profile/07174447288630958312noreply@blogger.com1tag:blogger.com,1999:blog-8900611853897181271.post-32328274212951892672009-07-01T08:17:00.000-07:002009-07-01T08:22:10.428-07:00The VHDL Standard.1 INTRODUCTION<br />This report is intended to give an overview of the current status of the VHDL IEEE<br />Standard 1076. The objective of this document is not to provide an overview of VHDL. The<br />objective is to help positioning the existing VHDL standards as well as the ongoing<br />standardization activities. The report also highlights important European VHDL activities.<br />Chapter 1 is this introduction.<br />Chapter 2 lists existing standards and standardization activities. For each activity, it<br />highlights the objectives, current status and future plans.<br />Quite some organizations are working on VHDL standardization or other VHDL<br />promoting activities. To help understand the positioning and the goals of these<br />organizations, Chapter 3 contains a list of these organizations.<br />Chapter 4 provides some details on European VHDL related tool efforts.<br />Chapter 5 gives a few examples of European companies using VHDL. The chapter also<br />lists European R&D programmes related to VHDL.<br />Chapter 6 lists some conclusions.<br />All practical information available has been gathered into Chapter 7. This includes<br />electronic repositories (which ones and how to access them) and an extensive list of<br />contacts within companies and organizations, plus various other information.<br /><br />2 STATUS OF THE VHDL STANDARD<br />2.1 VHDL IEEE Std 1076-1987<br />The VHDL language was an offshoot of the VHSIC (Very High-Speed IC) program, funded<br />by the U.S. Department of Defense (DoD), and was first proposed in 1981. The<br />development of VHDL was carried out by IBM, Texas Instruments, and Intermetrics,<br />starting two years later in 1983. In August 1985, version 7.2 of the language was released<br />for public review.<br />Besides gaining the advantages of a hardware description language, the VHDL developers<br />sought to unify the designs of all the VHSIC contractors and subcontractors into a single<br />language. VHDL would allow anyone working on the program to define circuits and<br />models independently of design tools and independently, too, of technology or vendor of<br />the end product. Thus, a circuit could be designed and archived in VHDL, and later<br />fabricated with the most advanced technology.<br />In principle, functional parts of a design could be reused in different applications and<br />different technologies without repeating valuable design work. These benefits were<br />especially attractive to the DoD, which is often faced with obtaining equipment and spare<br />parts for decades from multiple suppliers through multiple generations of new<br />technologies. VHDL ultimately was included in Military Standard 454, and is a<br />requirement for all DoD projects.<br />In March of 1986, the IEEE took on the effort of standardizing VHDL. The VHDL Analysis<br />and Standardization Group (VASG) was set up to review the language, with the goal of<br />repairing known problems with the language and modifying the language where a broad<br />consensus formed around the modifications. The Air Force fully supported this work by<br />awarding a contract to Intermetrics to develop the support software for the new language<br />standard, now known as IEEE Std 1076.<br />VHDL has been compared to ADA and many of the goals are the same as for the ADA<br />language. VHDL evolution however has differed from ADA and as a result is establishing<br />itself as an industry standard language more rapidly. From the inception of the VHDL<br />program, the DoD acknowledged the weaknesses in the ADA standardization approach<br />and took steps which have resulted in a strong language. VHDL has benefited from<br />substantial industry review and participation throughout its development.<br />When in March 1986 all rights to the VHDL language were transferred to the IEEE, the<br />original version 7.2 language went through a phase of substantial changes driven primarily<br />by industry representation from CAE vendors as well as users. The goals of the IEEE in<br />developing a standard language were broader in scope. Driven by the need for a<br />production quality language suitable as a design tool to be used throughout the design<br />cycle, the IEEE enhanced the language substantially.<br />This effort resulted in the creation of a world-class hardware description language which<br />was ratified in December 1987 as the first industry standard hardware description<br />language with overwhelming support from industry. One important reason for the strong<br />support VHDL has received throughout industry is that unlike ADA, there are no other<br />standard languages which VHDL must compete against. Recently, however, the IEEE<br />standardization of the Verilog Hardware Description Language has started.<br /><br />2.2 VHDL IEEE Std 1076-1993<br />Since its emergence as an IEEE standard, VHDL has been quite a success story. Despite the<br />fact that VHDL was created from scratch, more and more companies signal that they are<br />entering the VHDL marketplace or that they are expanding their current offerings. VHDL<br />has established itself as the premier hardware description language.<br />The IEEE is very determined that standards be used by their communities. Therefore, it<br />is an official IEEE requirement that all standards be reaffirmed at least every 5 years. This<br />reaffirmation may be anything from reaffirmation simpliciter to a radical change. The<br />important point is that a group of experts and users within the standard’s designated<br />community must care enough about the standard to keep it alive.<br />For VHDL, the 5 year reaffirmation IEEE requirement means that the language had to be<br />reballoted during 1992. Therefore, the VHDL Analysis and Standardization Group (VASG)<br />began planning the eventual reballoting in June of 1990.<br />The first decision made was to disallow radical changes to VHDL during this<br />restandardization period. The language had great forward momentum in the marketplace,<br />and radically altering it —even for sound technical reasons— could have a devastating<br />impact to that momentum. Second, for much the same reason, it was decided to make the<br />new version of VHDL as upward compatible as possible. Finally, it was decided to allow<br />change requests to come from the users.<br />In December 1992, the VHDL ballot successfully passed the IEEE requirements for the first<br />time. Then, the resolution process for the comments received during this first ballot started.<br />The team in charge to answer these comments changed the Language Reference Manual,<br />so there had to be a second ballot.<br /><br />The second ballot was held in May 1993. The ballot results were positive: 155 affirmative,<br />40 negative and 14 abstention votes. This reflects a return rate of 85.6% and an approval<br />rate of 79%. The standard was then formally approved at the September 1993 meeting of<br />the IEEE Standards Board’s Review Committee.<br />The IEEE Std 1076-1993 was published during the first quarter of 1994. The new Language<br />Reference Manual (LRM) is self-sufficient, which means that the "old" LRM has become<br />obsolete. The new LRM includes an appendix identifying portability issues.<br />During the restandardization process, several working groups were formed. The following<br />working groups submitted a PAR (a PAR is a Project Authorization Request, which gives<br />a group a formal status as a working group moving towards a standard) to the IEEE New<br />Standards Committee, and were approved:<br />1076a Shared Variables - amendment to IEEE 1076-1993<br />1076.1 Analog Extensions to VHDL<br />1076.2 Standard Mathematical Package<br />1076.3 Standard Synthesis Package<br />1076.4 VHDL Timing and Back Annotation<br />1076.5 Utility Libraries<br />Recently (April 1994) a new DASC Test Study Group is being formed.<br />Another PAR which was approved, is the standardization of the Verilog HDL (PAR 1364).<br />As only the VHDL Hardware Description Language is within the scope of this report, we<br />did not include any further information on this PAR. However, we mention it for<br />completeness.<br />Section 2.3, titled Extensions of VHDL, gives information on PAR 1076a and PAR 1076.1.<br />Section 2.4, titled Definition of Standard Practices, gives information on PAR 1076.2, PAR<br />1076.3, PAR 1076.4, PAR 1076.5 and the Test Study Group. As the IEEE Standard<br />Multivalue Logic System for VHDL Model Interoperability (IEEE Std 1164-1993) and the<br />IEEE Waveform and Vector Exchange Specification (IEEE Std 1029.1-1991) also define<br />"Standard Practices", there are subsections giving information on this standard.<br />First, we have another subsection on VHDL ’93, highlighting some reflections on<br />VHDL ’93.<br /><br />2.2.1 Reflections on VHDL ’93<br />The user requirements gathered during the restandardization process can be classified as<br />follows:<br />bugs and repairs (e.g., textio, which was ill-defined),<br />improvements (e.g., provide a no-change option for conditional signal assignments), and<br />new concepts (e.g., introduce analog modelling).<br />An additional division can be made between<br />requirements regarding the language itself and<br />requirements regarding its use (e.g., provide a SIN function).<br />Some of the requirements, mainly the synthesis-related ones, could be answered by the<br />standardization of ’standard’ packages, such as the std_logic_1164 package defining a<br />nine-state multi-value logic type and its associated resolution and logical functions (which<br />has already been voted on) or the standard packages of Ada. Such packages could be<br />written in pure VHDL and introduced as part of the standard or of sub-standards. An<br />example of a VHDL application that became a standard is WAVES.<br />Other requirements included changes in the definition of the language itself.<br />Among all the requests from users for a VHDL ’93 standardization, the requirements<br />concerning analog domain, and more precisely mixed-mode simulation, were most<br />numerous: about one fifth of the total. Europeans are particularly interested in this field.<br />In the very early stages of the standardization process, it became apparent that it would<br />not be possible, due to the very different levels of requests as well as to scheduling, for<br />analog extension to be included in VHDL ’93. However, because of the interest of<br />designers in this topic, a PAR (a Project Authorization Request) of VHDL has been<br />launched. The first draft of the Language Reference Manual is expected to be balloted by<br />the end of 1994.<br />Thus, VHDL ’93 (like VHDL ’87) does not cover the analog domain. Nevertheless, it is easy<br />to find many papers and even tutorials explaining how to model analog parts in VHDL<br />’87. For limited purposes, this has been done with VHDL ’87 and, of course, is possible<br />with VHDL ’93.<br />Indeed, VHDL ’93 offers some new possibilities for this purpose. The main one is the<br />introduction of a foreign "mechanism" that allows foreign models to be interfaced. These<br />models can potentially be described in an analog modelling language. This is not a "pure"<br />VHDL solution, and the interface is described so briefly that problems of portability and<br />dependency on tool vendors are inevitable. Nevertheless, this interface does exist, which<br />is an important advantage.<br />For people in search of a "pure" VHDL solution, one of the main problems is to identify<br />the "steady states" of the digital world during which the analog kernel may execute. Lastdelta<br />activation processes should solve this. It is also possible to imagine calling foreign<br />subprograms from these processes to activate an external analog kernel.<br />Analog modelling very often depends on parameters that can vary dynamically during<br />simulation. One example of this is temperature. The dynamic characteristics of such<br />parameters cannot be represented by the use of generic parameters. Their representation<br />as global signals or specific ports is definitely not satisfying. Shared variables, which are<br />in fact global variables, have been introduced into VHDL ’93 and could be used for this<br />purpose.<br /><br />2.3 Extensions to VHDL<br />2.3.1 Analog VHDL (VHDL-A) Working Group<br />Name : Analog Extensions to VHDL WG (VHDL-A)<br />PAR : 1076.1<br />Chair : Jean-Michel Bergé<br />Contact list : see section 7.5<br />Information : see section 7.5 for details on how to get more information<br />Objectives<br />The purpose of the VHDL-A working group is to develop analog extensions to VHDL,<br />i.e. to enhance VHDL such that it can support the description and simulation of circuits<br />that exhibit continuous behaviour over time and over amplitude.<br />VHDL-A must be suitable for the description and simulation of digital, analog, and<br />mixed digital/analog systems. VHDL-A must be able to support any design<br />methodology and be technology independent.<br />Technology independence means that components of any technology (electrical,<br />mechanical, thermal, optical, fluid,...) must be supported, for example the attitude and<br />orbit of a satellite.<br />Mixed analog/digital simulations are a very important usage of VHDL-A, for example<br />mixed analog/digital simulation of an ASIC as well as mixed simulation of a mechanical<br />system (such as attitude and orbit of a satellite), together with a digital system (such as<br />the digital implementation of the satellite control system).<br />The analog part of VHDL-A should be targeted primarily towards the following<br />applications:<br />- DC and transient analysis,<br />- electronic circuits (OpAmps, PLLs, comparators,...),<br />- lumped element systems (meaning that microwaves cannot be handled).<br />The other domains (mechanical, thermal,...) could be easily introduced as they are<br />analogous to the electrical domain.<br />Using VHDL-A, it should be possible to describe the structural composition of analog<br />subcircuits connected by analog wires. Analog components could embody SPICE netlists<br />since the analog simulator should understand this de facto standard description.<br />Using VHDL-A, it should be possible to describe the behaviour of analog circuits. Two<br />styles should be provided: relations or equations, and procedural models. These two<br />styles will form the "core" of the analog part of VHDL-A.<br />Activities completed<br />The Design Objectives Document is completed and is available via anonymous ftp from<br />the VHDL-A repository mentioned in section 7.5.<br />Activities planned<br />Language design phase, documentation and validation phases are going on Goal: the LRM<br />(Language Reference Manual draft #1) will be ready for balloting by the end of 1994.<br />Responses from the first ballot should be received and ready for analysis by March 1995.<br />Further steps are to respond to all balloting responses, determine the result of the ballot,<br />modify documents as required, and resubmit for balloting. Most probably, there will be<br />at least two ballots. The earliest that balloting could be complete is August 1995. This<br />schedule is rather ambitious. As more information is gathered and work progresses, the<br />Work Group will reschedule the activities.<br />Relationship with other Working Group / Standards<br />Through DASC meetings.<br />It has been decided that VHDL-A will be an extension of the current VHDL and not a<br />supplement: i.e. the ballot only concerns analog extension (and not the entire language)<br />and the result (if positive) will consist in two standards. The previous STD 1076 remains<br />the same and the analog standard is created and refers to it.<br />2.3.2 Shared Variables Working Group<br />Name : Shared Variables WG (SVWG)<br />PAR : 1076a<br />Chair : Stephen Bailey<br />Contact list : see section 7.5<br />Information : see section 7.1 for details on how to get more information<br />Objectives<br />Shared Variables received the largest percentage of negative votes and/or comments in<br />balloting for VHDL 1076-1993. The working group was formed with the charter of<br />proposing an amendment to VHDL 1076-1993 (1076a) that would re-design the language<br />implementation of shared variables in order to address as many as possible of the concerns<br />that balloters of 1076-1993 have as possible.<br />Activities completed<br />The work is currently in the requirements phase. Requirements have been collected and<br />shortly the voting on each requirement’s relative importance will start (some requirements<br />are in conflict with others). The final requirements document was planned to be complete<br />by the end of February 1994.<br />A technical writer, LRM editor and technical review committees have been formed. A<br />requirements committee is completing the requirements work.<br />Activities planned<br />Once the relative importance of each requirement has been established, the technical<br />committee and writer will begin work on a language re-design proposal. Language<br />changes will be limited to areas related to shared variables.<br />The proposal will be submitted to the technical review committee and re-worked as<br />required by the committee’s feedback. Finally, the proposal will be submitted for a vote<br />of the voting membership of the SVWG. If approved, the proposal will be given to the<br />LRM editor who will integrate the changes with the LRM. The revised LRM will be<br />reviewed and then submitted to the IEEE for balloting.<br />Relationship with other Working Groups / Standards<br />Amendment to IEEE 1076-1993.<br />The OO-VHDL study group will be monitoring the shared variables progress since one<br />possible approach (monitors) is object-oriented.<br />2.4 Definition of Standard Practices<br />2.4.1 Mathematical Package Working Group<br />Name : VHDL Mathematical Package WG<br />PAR : 1076.2<br />Chair : Jose A. Torres<br />Contact list : see section 7.5<br />Information : see section 7.1 for details on how to get more information<br />Objectives<br />Develop a set of standard VHDL mathematical packages that include:<br />most often used real and complex elementary functions, and<br />the required data types and type conversion functions.<br />Activities completed<br />Strawman proposal for a math real and complex package is done (includes package<br />definition and body).<br />- Real functions include common real constants, common real functions and real<br />transcendental functions.<br />Work is in progress to put together a test bench.<br />- The NBS FORTRAN tests of math functions will be reused (15/10/93)<br />- The WG is checking with Mentor Graphics if the tests for their math package can be<br />used as a basis for the test bench (15/10/93).<br />- The Vantage test bench template can be used as a basis for the test bench (15/10/93).<br />- Some funding is available from Synopsys to develop a prototype of the test bench for<br />the math package (15/10/93).<br />Electronic form of the package is available on request.<br />Activities planned<br />Finish test bench,<br />Verify proposed functions,<br />Incorporate suggested changes, and<br />Ballot the package.<br />Currently, they are looking at June-July 1994 to start balloting the packages.<br />Relationship with other Working Groups / Standards<br />This standard is meant to be compliant with VHDL Standard 1076.<br />The VHDL Analog Extensions WG will submit analog requirements to the Math WG.<br />No requirements were received by 25/11/93.<br />The minutes of the 15/10/93 Math WG meeting mention the following: "There is still<br />the issue about the need for double precision functions and the possibility that a new<br />real type called FLOAT may be part of the VHDL-A effort. This type will require greater<br />accuracy than the current REAL type. The current proposed solution for this<br />requirement is to develop two math packages: one for each real type.<br />One consequence of such a decision is that we could ballot the REAL based math<br />package almost immediately and could ballot the FLOAT package at the same time that<br />analog is balloted."<br />The COMPLEX package is intended to support analog needs, complex numbers should<br />probably be based on FLOATS.aefhttp://www.blogger.com/profile/07174447288630958312noreply@blogger.com0tag:blogger.com,1999:blog-8900611853897181271.post-61769697440035876652009-06-30T08:56:00.000-07:002009-07-04T19:27:39.607-07:00AVRdude GUI for Ubuntu<h1><i><i>AVR8 Burn-O-Mat</i></i></h1><br /><table border="0" cellpadding="20" cellspacing="0" width="100%"><tbody><tr><td colspan="4"><h2>Downloads</h2> <p> <table> <tbody><tr><td>Version:</td><td>2.1.1</td></tr> <tr><td>Date:</td><td>2009/03/07</td></tr> <tr><td>License:</td><td><a href="http://www.gnu.org/licenses/gpl-3.0.html">GPL v3.0</a></td></tr> </tbody></table> </p> <p align="justify"><br /></p><p align="justify">This program needs the Java SE Runtime Environment (JRE). </p><p align="justify">For Ubuntu 9.04 may install packages follwing as</p><p align="justify">#sun-java6-jdk<br />#sun-java6-jre<br />#sun-java6-bin<br />#java-common<br />#gsfonts-x11<br />#odbcinst1debian1<br />#unixodbc<br /></p><p align="justify">Or you can download it here: <a href="http://java.sun.com/javase/downloads/index.jsp"><br /></a></p><p align="justify"><a href="http://java.sun.com/javase/downloads/index.jsp">http://java.sun.com/javase/downloads/index.jsp</a></p><span style="text-decoration: underline;"></span> <p> <table> <tbody><tr><td><b>Linux Debian Paket</b></td><td><br /><a href="http://avr8-burn-o-mat.aaabbb.de/avr8-burn-o-mat-2.1.1-all.deb">avr8-burn-o-mat-2.1.1-all.deb</a><br />(many thanks to Patrick Klampfl)</td></tr> <tr><td><b><br />Windows Installer</b></td><td><br /><a href="http://avr8-burn-o-mat.aaabbb.de/AVR8_Burn-O-Mat_2_1_1_setup.exe">AVR8_Burn-O-Mat_2_1_1_setup.exe</a></td></tr> <tr><td><b>Alle (ZIP Datei)</b></td><td><a href="http://avr8-burn-o-mat.aaabbb.de/AVR8_Burn-O-Mat_2_1_1.zip">AVR8_Burn-O-Mat_2_1_1.zip</a></td></tr> <tr><td><b>Sourcecode</b></td><td><a href="http://avr8-burn-o-mat.aaabbb.de/AVR8_Burn-O-Mat_2_1_1_src.tar.bz2">AVR8_Burn-O-Mat_2_1_1_src.tar.bz2</a></td></tr> </tbody></table> </p> <p> (Attention: I did not had much time to test the new version, therefore the<br /></p><p>program might not work as you expect it!) </p> <h3><i style="background-color: rgb(255, 0, 0);"> New: </i> <a href="http://avr8-burn-o-mat.aaabbb.de/avr8_burn_o_mat_avrdude_gui_online.html">AVR Burn-O-Mat online fuse calculator</a></h3> <p align="justify"> The fuse configurator can be used online now. Not all features are working<br /></p><p align="justify">because Java applets do not have full access to the local computer.<br /></p><p align="justify">You have to install the AVR Burn-O-Mat application to your computer i</p><p align="justify">f you want to use all features (e.g. read and write fuses within the fuse dialog). </p> <h2>Preface</h2> <p align="justify"> To burn Atmel microcontrollers with Linux you may use <b>avrdude</b> like I do.<br /></p><p align="justify">But sometimes you may wish a more comfortable way to do this without<br /></p><p align="justify">knowing hundreds of command line options and without the need of<br /></p><p align="justify">a calculator to calculate the hex codes for the fuses. Thats why I decided<br /></p><p align="justify">to write a graphical user interface that make it easy to read and write fuses,<br /></p><p align="justify">EEPROM and program memory. </p> </td> </tr> <tr> <td align="center"> <a href="http://avr8-burn-o-mat.aaabbb.de/avr8_burn_o_mat_screenshot.png"> <img src="http://avr8-burn-o-mat.aaabbb.de/avr8_burn_o_mat_screenshot_small.png" alt="AVR8 Burn-O-Mat main window" /> </a> </td> <td align="center"> <a href="http://avr8-burn-o-mat.aaabbb.de/avr8_burn_o_mat_screenshot_fuses.png"> <img src="http://avr8-burn-o-mat.aaabbb.de/avr8_burn_o_mat_screenshot_fuses_small.png" alt="AVR8 Burn-O-Mat fuses" /> </a> </td> <td align="center"> <a href="http://avr8-burn-o-mat.aaabbb.de/avr8_burn_o_mat_screenshot_clock_options.png"> <br /> </a> </td> <td align="center"> <a href="http://avr8-burn-o-mat.aaabbb.de/avr8_burn_o_mat_screenshot_settings.png"> <br /> </a> </td> </tr> <tr> <td align="center"> <a href="http://avr8-burn-o-mat.aaabbb.de/avr8_burn_o_mat_screenshot.png">main window</a> </td> <td align="center"> <a href="http://avr8-burn-o-mat.aaabbb.de/avr8_burn_o_mat_screenshot_fuses.png">fuses</a> </td> <td align="center"> <a href="http://avr8-burn-o-mat.aaabbb.de/avr8_burn_o_mat_screenshot_clock_options.png"><br /></a> </td> <td align="center"> <a href="http://avr8-burn-o-mat.aaabbb.de/avr8_burn_o_mat_screenshot_settings.png"><br /></a> </td> </tr> <tr> <td colspan="4"> <table border="0" cellpadding="20" cellspacing="0" width="100%"><tbody><tr><td align="center"><a href="http://avr8-burn-o-mat.aaabbb.de/avr8_burn_o_mat_screenshot_clock_options.png"> <img src="http://avr8-burn-o-mat.aaabbb.de/avr8_burn_o_mat_screenshot_clock_options_small.png" alt="AVR8 Burn-O-Mat Clock options" /> </a> </td> <td align="center"> <a href="http://avr8-burn-o-mat.aaabbb.de/avr8_burn_o_mat_screenshot_settings.png"> <img src="http://avr8-burn-o-mat.aaabbb.de/avr8_burn_o_mat_screenshot_settings_small.png" alt="AVR8 Burn-O-Mat settings" /> </a> </td> </tr> <tr> <td align="center"><a href="http://avr8-burn-o-mat.aaabbb.de/avr8_burn_o_mat_screenshot_clock_options.png">Clock options</a></td> <td align="center"><a href="http://avr8-burn-o-mat.aaabbb.de/avr8_burn_o_mat_screenshot_settings.png">settings</a></td> <td align="center"><br /></td> <td align="center"><br /></td></tr></tbody></table><h2><br /></h2><h2><br /></h2><h2><br /></h2><h2>Description</h2> <p align="justify"> The <b>AVR8 Burn-O-Mat</b> is written in Java. That has the little disadvantage<br /></p><p align="justify">for you that you have to install Java before you can use the<br /></p><p align="justify">AVR8-Burn-O-Mat. But don't panic, you can download Java for<br /></p><p align="justify">no costs here: <a href="http://java.sun.com/javase/downloads">http://java.sun.com/javase/downloads</a> </p> <p align="justify"> The installation procedure is quite easy. You have to extract the ZIP archive<br /></p><p align="justify">in a directory of your own choice. </p> <p align="justify"> The program should be self explaining. First you should take a look at<br /></p><p align="justify">the settings. Make sure that the path to avrdude program and the<br /></p><p align="justify">avrdude configuration file is correct. Next you should select the correct<br /></p><p align="justify">programmer and the port where the programmer is connected.<br /></p><p align="justify"> (The supported programmers are read from the file <b>avrdude.conf</b>) </p> <p align="justify"> Here is a list with the supported microcontrollers: </p> <p align="justify"> ATmega8, ATmega16, ATmega32, ATmega64, ATmega128, ATmega48,<br /></p><p align="justify">ATmega88, ATmega168, ATmega162, ATmega8515, ATmega8335,<br /></p><p align="justify">ATmega164, ATmega324, ATmega644, ATmega169, ATmega329,<br /></p><p align="justify">ATmega3290, ATmega649, ATmega6490, ATtiny2313, ATtiny13, ATtiny25,<br /></p><p align="justify">ATtiny45, ATtiny85, ATtiny26 </p> <p align="justify"> New microcontrollers can be added easily. All needed informations<br /></p><p align="justify">(for AVR8-Burn-O-Mat) are stored in the file <b><br /></b></p><p align="justify"><b>AVR8_Burn_O_Mat_Config.xml</b>. The format of this file should<br /></p><p align="justify">be self explaining. </p> </td> </tr> <tr> <td colspan="4"> <h2>Contributors</h2> <p align="justify"> I would like to thank the following people for bug reports, suggestions for<br /></p><p align="justify">improvements or parts of the fuses file: </p> <ul><li>Jan Kallwies</li><li>Volker Kretz</li><li>Christian Henz</li></ul> </td> </tr> <tr> <td colspan="4"> <h2>License:</h2> <p align="justify"> This program is free software: you can redistribute it and/or modify it<br /></p><p align="justify">under the terms of the GNU General Public License as published by<br /></p><p align="justify"> the Free Software Foundation, either version 3 of the License, or<br /></p><p align="justify">(at your option) any later version. </p> <p align="justify"> This program is distributed in the hope that it will be useful, but</p><p align="justify"> WITHOUT ANY WARRANTY; without even the implied<br /></p><p align="justify">warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR<br /></p><p align="justify">PURPOSE. See the GNU General Public License for more details. </p> <p align="justify"> You should have received a copy of the GNU General Public License<br /></p><p align="justify"> along with this program. If not, see <a href="http://www.gnu.org/licenses/gpl-3.0.html">http://www.gnu.org/licenses/gpl-3.0.html</a> </p> <p align="justify"> BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE,<br /></p><p align="justify">THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT<br /></p><p align="justify">PERMITTED BY APPLICABLE LAW. THE PROGRAM IS PROVIDED<br /></p><p align="justify">"AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED<br /></p><p align="justify">OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED<br /></p><p align="justify">WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A<br /></p><p align="justify">PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE<br /></p><p align="justify">QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.<br /></p><p align="justify">SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE<br /></p><p align="justify">COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. </p></td></tr></tbody></table><br /><br /><span style="font-size:78%;"><span style="font-style: italic;">credit : http://avr8-burn-o-mat.aaabbb.de/avr8_burn_o_mat_avrdude_gui_en.html</span></span>aefhttp://www.blogger.com/profile/07174447288630958312noreply@blogger.com0