Replies: 9 comments 18 replies
-
The following is my understanding so far on AVR109. AVR109 -- bootlader AVR910 -- simple pogrammer (mostly outdated other than to program ebn files) AVR911 -- The AVR Open-source Programmer (AVROSP) application for AVR109 and AVR910 ATxmega and AVR109 AN: xboot -- extension to AVR109, mostly for xmega AVRs but apparently also for mega AVRs. |
Beta Was this translation helpful? Give feedback.
-
There are many AVR bootloaders, but only a few are relatively popular.
For classic AVRs, the recommendation from avrdude project is to change optiboot to urboot. Optiboot_x for new UPDI AVRs: megaAVR-0 and tinyAVR 0/1/2 Optiboot_dx for new UPDI AVR DA/DB/DD Then there are others as well.
For classic AVR chips, the recommendation is to use urboot to replace AVR109. xboot is recommended if you are using ATxmega. Caterina is still good if you use USB AVRs.
Interesting one: https://makecode.com/blog/uf2-for-arduino-uno
The following bootloaders are more for niche use cases -- they are supported by avrdude.
Then there are other bootloaders which may not be supported by avrdude yet.
AVR® MCUs
|
Beta Was this translation helpful? Give feedback.
-
So far I have tested quite some bootloaders.
To be tested: |
Beta Was this translation helpful? Give feedback.
-
There are multiple usbasploader implementations in github.
|
Beta Was this translation helpful? Give feedback.
-
New one: 8-bit Microchip Device Firmware Update (MDFU) Client Library AVR® MCUs Host tool: FW image builder |
Beta Was this translation helpful? Give feedback.
-
Essay: About AN2634.A very primitive bootloader demo specific to tinyAVR and megaAVR. The source code is less than 200 lines and the code is less than 256 bytes. The ELF file contains a .text section that shows the entire code and a .fuse section that shows recommended values for FUSE settings. By default, when the boot selection switch is LOW on Power-On-Reset, the device enters bootstrap mode and waits with the UART open at 115200bps 8N1. Received bytes are written sequentially from the beginning of the flash area, and self-resets when the entire flash area is full. That's all that's been implemented. If it ends midway, please perform an external reset. There is no error detection. It is also not possible to read the flash area. Can AVRDUDE support that? There's no doubt that it can, but it doesn't have a handshake protocol, so you can't control the state of the target. AVRDUDE can only write data as is. |
Beta Was this translation helpful? Give feedback.
-
AVR109: Here is Juno FDxboot 1.51 operates at 2Mbps on an atmega8 with upload speed of 7.3kB/s; 6722/0.91=7386 =================================================== FDxICSP is based on AVR910. It's outdated, maybe, but salvageable, definitely. And there is a PCB photo of the actual programmer that I have just created. It actually is self-programmable using FDxBoot 1.5 bootloader. The programmer works fine, and I am confident to get it to upload at around 25-30kB/s on my atmega128, and make it universally support all MCU that supports SPI interface as means of flash programming. I don't own a MCU with 256kb, and both of these protocol is limited to sending a 16-bit word address, and that means 128kb is the maximum supported size. Other than that, both AVR109 and AVR910 work fine. =================================================== |
Beta Was this translation helpful? Give feedback.
-
Some benchmark results of urboot and @flyandancexo's optimized AVR109 bootloader (no source codes available yet). Note: please set FT232RL adapter latency timer to 1ms (Windows and Linux) before carrying out the benchmark test. ATmega328P, avrdude 7.3 release msvc64 binary urboot 1M baud rate (CH340) urboot 1M baud rate (Uno ATmega16U2) urboot 2M baud rate (Uno ATmega16U2) urboot 2M baud rate (Nano FT232RL) FDxboot optimized avr109 at 1M baud rate (1.61beta) (CH340) FDxboot optimized avr109 at 2M baud rate (1.62beta stable) (CH340) FDxboot optimized avr109 at 2M baud rate (1.62beta fast) (Uno ATmega16U2) FDxboot optimized avr109 at 2M baud rate (1.62beta fast) (Nano FT232RL) STK500v1 (from urboot) at 1M baud rate (CH340) @flyandancexo's results are a bit better for the CH340, probably different CH340x adapter and different computer. FDxboot 1.62@2Mbps with CH340G: Atmega16: Atmega128A: |
Beta Was this translation helpful? Give feedback.
-
New Project euboot : EDBG USB bootloader for AVR-DU series : https://github.com/askn37/euboot
CMSIS-DAP/EDBG protocol : AVR64DU32 (M1 macos Sequoia USB 2.0 Full-Speed)
|
Beta Was this translation helpful? Give feedback.
-
There are quite some issues related to AVR109 (some of them are related to xmega AVRs).
The official Microchip AVR109 AN and FW source codes can be downloaded here.
https://www.microchip.com/en-us/application-notes/an1644
However, it seems to be troublesome to get it work properly, at least based on my experiences. I am still struggling to get it to work with ATmega2560 (Note: xboot seems to work fine). I even have issues with ATmega8A and ATmega16A which are supposed to be work out of the box. I only managed to get it to work with ATmega32A and ATmega328P.
From @MCUdude
#454 (comment)
Beta Was this translation helpful? Give feedback.
All reactions