Fuses ATtiny85

Schimanski

Golden Member

korte vraag: Kun je bij een ATtiny85 de RSTDISBL fuse zetten zonder de reeds geladen firmware opnieuw te hoeven laden.

Uitleg: Ik heb tijdje terug een FA-SY synthesizer module gebouwd. Een SI570 via USB bestuurd met een ATtiny45. Een leuk dingetje, maar niet handig als stand-alone VFO omdat je een PC nodig hebt voor besturing.

Nu vond ik een aanpassing om hem wel stand-alone te gebruiken met LCD voor uitlezing en encoder voor besturing. Voor de encoder moet de /RST pin via RSTDISBL fuse worden omgezet naar I/O pin. Nadeel is dat je daarna niet meer via ISP kunt proggen.

Ik heb dus eerst de Firmware met een arduino als ISP in de ATtiny85 geblazen. En met AVRDUDESS de juiste fuses voor de firmware gezet, behalve de RSTDISBL fuse. Ik kon dan nog testen en evt. opnieuw firmware uploaden.

Nu alles goed werkt wil ik ook de encoder activeren door de RSTDISBL fuse te zetten. Moet ik nu tegelijk ook de firmware opnieuw laden, of kan ik gewoon alleen de fuse instellen omdat de in flash aanwezige firmware niet veranderd bij aanpassen fuses.

What, me worry? // Radiozendamateur - PA2HGJ // Stuff is the junk you keep -- Junk is the stuff you throw away // Tinkeo Ergo Sum

Jep, Fuses kun je altijd aanpassen zonder de code te wijzigen. Maar inderdaad, zonder reset kun je verdere ISP wel vergeten. Dan kun je alleen nog programmeren met HVSP.

EricP

mét CE

Ik meen me te herinneren wel eens gelezen te hebben dat je de RSTDISBL niet met ISP kunt zetten - juist om te voorkomen dat je de boel 'stuk' maakt.

Ofwel: lees eerst de datasheet ff voordat je iets gaat proberen wat niet kan :) (en ja, ik kan er naast zitten, ik heb zelf nooit de behoefte gehad dat te doen).

Nu je het zegt: het zou kunnen dat je gelijk hebt. Maar.... ik heb ook de indruk dat ik het wel eens perongeluk heb gedaan (*). Kortom, het zou ook heel goed kunnen dat het verschilt van CPU tot CPU.

(*) Fuse setting voor de ene op de andere CPU toepassen.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
buckfast_beekeeper

Golden Member

Via ISP kan je de resetfuse niet uit zetten. Net om te voorkomen dat je jezelf buiten sluit.

Zelf gebruik ik het nooit. 1 pootje te kort? Dan neem ik wel een grotere µC. Voor de prijs hoef je het niet te laten. Wil je verder met je oude printje? Een opsteekprintje, indien TH, met de nieuwe µC en de extra uitgangen.

Van Lambiek wordt goede geuze gemaakt.
Schimanski

Golden Member

Allemaal bedankt voor de antwoorden. Met AVRDUDESS en een Arduino als ISP kun je alle fusebits lezen/schrijven. Ik heb RSTDISBL nu aangepast en de firmware draait nog ;). ISP werkt nu niet meer en fuses lezen/schrijven kan nu ook niet meer. Met HVSP of een fuse-restorer kan ik tzt fuses aanpassen.

Ik ben het met buckfast-beekeeper eens dat je beter een ander µC kunt kiezen als je I/O tekort komt. In dit geval zat ik echter vast aan een bestaand ontwerp (print met DIL8).

Ik ben er ondertussen wel achter dat het een beetje een gekunsteld ontwerp is. USB wordt in software afgehandeld en dat is niet altijd stabiel. Als je te snel aan de encoder draait dan crashed USB of loopt I2C uitlezing vast :(.

Ik denk dat ik de boel toch ga omklussen naar een ATmega328 met CH340 of FTDI (aka Arduino Nano).

What, me worry? // Radiozendamateur - PA2HGJ // Stuff is the junk you keep -- Junk is the stuff you throw away // Tinkeo Ergo Sum
buckfast_beekeeper

Golden Member

Of µC met USB capaciteit.

Ik heb deze en deze fuse repair.

[Bericht gewijzigd door buckfast_beekeeper op woensdag 10 mei 2017 14:24:54 (89%)

Van Lambiek wordt goede geuze gemaakt.