attiny85 e reset come I/O

scusate l'ennesimo post sull'argomento, ma avrei bisogno di qualche chiarimento:
programmando i fuse per utilizzare il RESET come I/O perdo la possibilità di programmare il chip via ISP e questo è chiaro.
quindi qual'è la procedura per utilizzare questa funzione?
se si potesse fare chiarezza su questo punto sarebbe utile.
la maggior parte dei topic che ho letto si concludono con "riprogrammando il reset non puoi più caricare gli sketch"

inoltre, questo programmatore HV può funzionare per resettare i fuse?
http://www.rickety.us/2010/03/arduino-avr-high-voltage-serial-programmer/

se ci sono altri schemi che avete testato li accetto comunque.
grazie

R.

Esatto ricdata, una volta che hai programmato i fuse per usare il pin di RESET come normale pin, non puoi più programmare il chip via ISP ... dato che non è in grado di ricevere il segnale di RESET che gli servirebbe.

Unico sistema, ed unico pin dei processori Atmel, che regge i 12v è proprio il RESET e, tramite un programmatore HIGH-VOLTAGE (12v) si possono resettare i FUSE :slight_smile:

Ti consiglio QUESTO shield che è adatto a vari processori, funziona molto bene, ha un bel software a corredo e ti potrà essere sempre utile :wink:

Guglielmo

grazie Guglielmo,
con il programmatore HV si possono anche caricare gli sketch?
quello che non mi è chiaro è che se prima programmo il chip, per poi disabilitare il reset dovrei ricaricare il bootloader, ma a questo punto perderei lo sketch caricato in precedenza. è giusto quello che dico? quindi come fare?

Negli ATtiny NON c'è un bootloader ... quella funzione che vedi sull'IDE e che ti dice che carica il bootloader sul Tiny ... è finta, in realtà non carica nulla, ma programma solo i FUSE :wink:

Ora, una volta ripristinati i FUSE con l'HV, puoi sia riprogrammarli come vuoi tu (... quello che tu chiami caricare il bootloader), che caricarci via ISP qualsiasi programma. :slight_smile:

Guglielmo

quindi io dovrei, creare una board con il RESET disabilitato e caricare lo sketch.
nel caso dovessi riprogrammare devo prima passare il tiny sull' HV.

gpb01:
Negli ATtiny NON c'è un bootloader ...

C'è un bootloader per Tiny85 ma è ancora molto acerbo.

PaoloP:
C'è un bootloader per Tiny85 ma è ancora molto acerbo.

Quale ? Quella cagaxx che usa Adafruit ??? Che, su una MCU con 8KB, lui da solo se ne mangia più di 2 ? ]:smiley: ]:smiley: ]:smiley:

Lascia perdere ... :grin: :grin: :grin:

Guglielmo

Quello di Coding Badly (Google Code Archive - Long-term storage for Google Code Project Hosting.) papà del Tiny Core, ma che comunque si piglia anche lui 2K. :fearful:

Che poi mi spieghi perche questo codicesi prende 2K? :sweat_smile:

:101DC000112484B714BE90E083709070892B09F4BD
:101DD00011D18CE080BF8FE009D1BA9ABC9AC49A25
:101DE00086E02CE094E02FBD98BF08B602FEFDCF40
:101DF000B29AA8958150B9F7EE24FF2433E0332E30
:101E0000222423942FED522E9EEC492EC3D08134F0
:101E100061F4C0D0182FDCD0123811F0113811F451
:101E200084E001C083E0A5D0A1C0823411F484E134
:101E300003C0853419F485E0D1D098C0853541F4CC
:101E4000A9D0A82EA7D0B82EAA0CBB1C75018DC096
:101E5000863521F484E0C2D080E0E5CF843609F0F5
:101E60004AC098D097D0182F95D0C0E0D1E092D03A
:101E700089931C17E1F7ACD0F70137BEE89507B698
:101E800000FCFDCFE114F104E1F4C0900001D0901A
:101E90000101D0928501C092840180900801909048
:101EA000090190928701809286018CEF9FEFC80E06
:101EB000D91EC0920801D0920901509200014092AF
:101EC0000101C701A0E0B1E06C9011967C901197E0
:101ED0001296FC01030127BEE89511240296F1E059
:101EE000A034BF0789F725E0F70127BFE89507B6BB
:101EF00000FCFDCF3BC0843759F54CD04BD0082FA8
:101F000049D066D0E701102F209719F48091840101
:101F100014C0C130D10519F4809185010EC0C830BC
:101F2000D10519F48091860108C0C930D10519F492
:101F30008091870102C0FE01849121961AD0115030
:101F400019F70894E11CF11C0150E00EF11C0EC0C1
:101F5000853739F43DD08EE10CD083E90AD08BE08F
:101F600062CF813511F488E041D032D080E101D0D8
:101F70004DCF2AE030E08095089410F4C49802C058
:101F8000C49A000021D020D01FD01ED086952A955B
:101F9000A1F70895B29A48E050E020E030E0B3990C
:101FA000FECF12D011D010D00FD00ED08894B3999C
:101FB000089427954A9509F0F5CFA89505D004D047
:101FC00003D0B29A822F089593E49A95F1F7089579
:101FD000E1DF803209F0FFCF84E1CBCF1F93182FD0
:101FE000D9DF1150E9F7F4DF1F91089598E191BD11
:0E1FF00081BD089580E0FADFE4E0FF27099448
:021FFE000404D9
:0400000300001DC01C
:00000001FF

PaoloP:
Quello di Coding Badly (Google Code Archive - Long-term storage for Google Code Project Hosting.) papà del Tiny Core, ma che comunque si piglia anche lui 2K. :fearful:

Questo non lo conoscevo ... ma se si piglia pure lui 2KB ... è da pazzi usarlo ... :grin: :grin: :grin:

Ma perché ... ISP non vi va bene ? Funziona che è una meraviglia :slight_smile:

Guglielmo

Io non faccio progetti, sperimento. :wink:

PaoloP:
Io non faccio progetti, sperimento. :wink:

Dolce eufemismo per dire ... "nun faccio un cazxx" ??? XD :grin: XD :grin: XD :grin:

Guglielmo

La corretta traduzione sarebbe: Cazzeggio!
Quindi mi posso permette di perdere 2K per un bootloader su un Tiny45 :grin: (Quarantacinque!)

PaoloP:
Quindi mi posso permette di perdere 2K per un bootloader su un Tiny45 :grin: (Quarantacinque!)

2KB persi su un Tiny45 ...

Guglielmo

Non sono solo i 2K di bootloader, però.
C'è anche un'altra questione. I Tiny non riservano (leggi: "proteggono") un'area di memoria per il bootloader, come risolvono questa cosa ad Adafruit?

Ah non ne ho idea ... mi sono ben guardato dal provarlo XD XD XD

Puoi dare un'occhiata QUI :wink:

Guglielmo

Ok, ho capito cos'hanno fatto. Hanno adattato il firmware dell'USBtinyISP in modo da trasformarlo in bootloader.
In questo modo hanno potuto riusare anche i codici VID/PID per l'USB che Adafruit ha ed in più l'USBtinyISP è già supportato da avrdude per cui non hanno dovuto modificare altro.

Il bootloader si comporta come un bootloader normale, mettendosi in ascolto sulla seriale ed intercettando i dati per scriverli sulla flash. Nel caso che non arrivi nulla, fa partire lo sketch già in memoria con un jump. Immagino però che a differenza del bootloader dell'Atmega328 che sta nella parte alta della memoria, questo stia invece nella parte bassa perché non avendo il Tiny il supporto all'area per il bootloader non supporta tramite fuse il salto ad un indirizzo diverso da $0000. A meno che non usino la vector jump table con qualche int. Non ho studiato bene come funziona, però: ipotizzo e basta.

Resta il fatto che togliere 2K ad un chip con 8K è un controsenso :stuck_out_tongue:

No, il codice viene scritto, almeno quello che ho postato io, nella area alta.
La prima e le ultime righe sono

:101DC000112484B714BE90E083709070892B09F4BD
...
...
:021FFE000404D9
:0400000300001DC01C
:00000001FF

che seguendo queste indicazioni servono per dire al programmatore dove scrivere il codice
--> http://www.keil.com/support/docs/1584/

Ah, vero. Non avevo controllato l'hex che avevi messo.