Attiny85 smette di funzionare durante la programmazione.

Ciao a tutti.
Ho realizzato, dopo un contatore completo con un atmega328p, un piccolo rivelatore Geiger con un attiny85 che ha solo due funzioni:

  • all'accensione fa lampeggiare un led tra 1 e 5 volte per indicare lo stato dell'elemento al litio
  • per ogni particella rilevata emette un bip.
    L'alimentazione è a 3,2....4,2V, secondo lo stato di carica.

Il tubo Geiger (un classico SBM20) è con un elevatore di tensione attraverso 4,7Mohm e il catodo va a massa con 330pF, alla base di un transistor attraverso 1k5 e da lì a massa attraverso 100k. Il collettore del transistor va al pin 7 (I/O 2, INT 0, che è anche SCK).

È già la seconda volta che, durante la programmazione con il mio solito USBASP, ad un certo punto non risponde più e devo sostituirlo! La prima volta credevo che fosse accaduto perché il venditore mi aveva mandato un elevatore di tensione in una versione speciale senza la resistenza da 4,7 Mohm interna. Messa la resistenza, però, dopo qualche programmazione è accaduto di nuovo. Con l'altro contatore trigger che ho progettato e costruito (con un atmega328p) non mi è mai accaduto. Lì, però, il collettore del transistor va su I/O2, pin 4, che non ha nulla a che fare con l'SCK.

Poiché mi è accaduto entrambe le volte durante la programmazione, mi viene il sospetto che delle chiusure a massa da parte del transistor sul SCK possano fare danni... Forse non si sono bruciati, ma solo bloccati... In effetti, mi viene in mente che alcune volte mi ha dato errore nella verifica alla fine della programmazione. Ogni tanto il tubo capta qualcosa (e alcune volte gli avevo anche lasciato un campioncino radioattivo vicino). Purtroppo mi sembra che sia l'unico pin con interrupt esterno nell'attiny85.

Mi potete aiutare affinché non accada di nuovo?
Se il problema sta nella programmazione corrotta, una soluzione è mettere un transistor che, quando viene pilotato dai 5V provenienti dal programmatore USBASP, blocca gli impulsi provenienti dalla sonda.

Grazie
Gianluca

Non puoi metterlo su uno zoccolo e programmarlo a parte, oppure hai la necessità di programmarlo al volo quando inserito nel circuito?

Ciao, Paolo
È un smd su mille fori... In un forum sul tema ne ho pubblicato le foto. Basta cercare con Google microgeiger e Datman.

Sembra un consiglio "siemo", ma programmare senza tubo Geiger?

o metterci un jumper per scollegare il Bjt durante la programmazione

Durante la programmazione ICSP i pin NON devono essere collegati ad altro ... dovevi prevedere dei jumper (o mini dip-switch) per isolare i pin durante la programmazione.

Guglielmo

P.S.: Suggerimento sovrapposto con quello di Brunello :smiley:

Grazie a tutti
Inizialmente ebbi qualche dubbio, ma poi ho visto che i LED collegati non mi hanno mai dato problemi, anzi indicavano il flusso dei dati. Con l'attiny85 mi è capitata la corrispondenza del SCK con l'unico INT e non mi sono posto il problema... Adesso so che devo pormelo! :slight_smile:

Il costo non è elevato, ma se potessi evitare di dissaldarlo per la seconda volta mi farebbe piacere... Che cosa può essere successo? ("Qualunque cosa!" forse mi risponderete...). Proverò a dare un clock esterno...