AVR Downloader/UploaDEr - Bugs: bug #50350, EFuse high order 4 bits writes...
You are not allowed to post comments on this tracker with your current authentication level.
bug #50350: EFuse high order 4 bits writes incorrectly. Fix attached.
Submitter: | None | ||
Submitted: | Sat 18 Feb 2017 05:16:06 AM UTC | ||
Category: | None | Severity: | 3 - Normal |
Priority: | 5 - Normal | Item Group: | None |
Status: | None | Privacy: | Public |
Assigned to: | None | Originator Name: | Mark |
Originator Email: | -email is unavailable- | Open/Closed: | Open |
Release: | 6.3 | Programmer hardware: | STK500v2 |
Device type: | atmega32u4 |
Attached Files
file #39782: m32u4 EFuse write bug.JPG added by None (42KiB - image/jpeg - See EFuse Bug Fix.JPG for change to avrdude.conf to correct the issue.)
file #39783: EFuse Bug Fix.JPG added by None (33KiB - image/jpeg - See EFuse Bug Fix.JPG for change to avrdude.conf to correct the issue.)
Depends on the following items: None found
Items that depend on this one: None found
Carbon-Copy List
There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.
Follow 2 latest changes.
Date | Changed by | Updated Field | Previous Value | => | Replaced by |
---|---|---|---|---|---|
2017-02-18 | None | Attached File | - | ![]() |
Added m32u4 EFuse write bug.JPG, #39782 |
Attached File | - | ![]() |
Added EFuse Bug Fix.JPG, #39783 |
When programming the atmega32u4(m32u4) EFuse, AVRDude trys to write the upper 4 high bits as "0". These 4 bits are unused by the uP and are to be unprogrammed, set to "1". This causes a mismatch when read for verification since the uP ends up allowing 2 of these bits to be programmed:IE "1 1 0 0 i i i i".
In the avrdude.conf file under m32u4, it is set to write "x x x x i i i i". By updating the avrdude.conf file to "1 1 1 1 i i i i", the upper 4 bits are properly left as a "1" while the lower 4 bits are written according to user input. This corrects the issue.
Example: writing "F3" to the EFuse returns "C3" after programming since AVRDude trys to write "03" and the uP mistakenly accepts 2 of the upper "0"s. After updating the avrdude.conf to default the upper 4 bits to unprogrammed ("1"), the upper 4 bits are properly left as unprogrammed (unused) and the EFuse properly returns as "F3".