Ho realizzato una scheda che monta attiny85 ma che ha anche a bordo uno zoccolo per montarci solamente il chip. (naturalmente se monto uno non devo montare l'altro).
Se monto la scheda nessun problema.
Se monto il chip dopo un po' mi si cancella !!!! E devo riprogrammare anche il bootloader perchè il PC non me lo riconosce più.....
Ok, magari è colpa dei chip (ma è strano che funzionino e poi non funzionano...) ma mi chiedevo se nel circuito della scheda debba mettere qualche componente in più perche il chip lo proteggo solo con un condensatore 0,1 sull'alimentazione ed una resistenza 4k7 tra il + e il pin 2 (PB3), altrimenti spesso non parte.
Si, il condensatore sull'alimetazione e la pull-up sul piedino di reset sono le due cose che sono praticamente obbligatorie ... per il resto, salvo chip difettosi, non è possibile che si cancelli la flash.
Guglielmo
P.S.: Almeno le MCU comprale dai distributori ufficiali no su Ali
Ho visto anche io che la pull-up sul piedino di reset è praticamente obbligatorio.
poi però ho visto lo schema della schedina e qui non c'era, ma c'era la pull-up di uno dei piedini USB.
Seguito quello schema i chip non hanno più dato problemi a "partire" (senza quella andavano in run una volta su dieci).
I chip li ho presi su due fornitori diversi con due prezzi diversi su Aliexpress.... Mah.
Penso che faccio prima a montare la schedina (che poi costa quasi uguale al chip )
Adesso ho provato a programmarli "via programmatore" e non tramite USB, ma tramite "Arduino as ISP"
... ma infatti che "butti" a fare della preziosa flash (quei cosini hanno solo 8 KB) per un inutile bootloader ed un accrocco di USB ... prevedi il connettorino a 6 pin e li programmi con un qualsiasi programmatore ICSP
Se non ricordo male, il pullup sul pin dei dati della USB serve per "dire" al PC che si tratta di USB a bassa velocita', non so se influisca sull'Attiny.
Sono d'accordo con te, perché questo l'ho letto da diverse parti. Eppure nelle schedine di programmazione, quelle con lo zoccolino per l'attiny da programmare, non esiste questa pull-up sul PB5 (RST), come non esiste nelle schedine attiny85 già pronte da usare. Quindi il piedino reset l'ho provato con e senza pull-up, ma non è cambiato nulla.
Il pull-up sul pin dati per la USB, invece, è "vitale" altrimenti la MCU proprio non parte oppure "parte" se le tocchi qualche pin col dito (!?!?!?). E infatti è presente, in qualche modo, su tutti i tipi di schedine per attiny85.
Comunque adesso programmo quei chip con "Arduino as ISP" e non ho più avuto problemi (per ora).
Molti PC moderni non supportano più la 1.0 USB a 1.5Mhz usata in questo caso quindi bisogna usare un vecchio hub USB esterno che supporti tale bassa velocità
Ma io sono d'accordo con te!
Solo che non ci avevo pensato a programmarli via ISP. Mi sarei risparmiato un sacco di tempo.
Tempo, comunque, perso anche a capire che senza la resistenza su PB3 (pin2) l'Attiny85 parte due volte si e dieci no...
Lo stesso programma gira sulle board Attiny85 Digispark senza problemi da mesi. Poi ho pensato di togliere il superfluo e usare solo il chip PDIP8.
Probabilmente ho sbagliato a caricare il bootloader Micronucleus e poi il programma via USB (vabbé, anche io ogni tanto faccio cose senza senso, eh.... ).
Poi mi sono "svegliato" ed ho pensato di programmarli direttamente via ISP.
Adesso "sembra" che tutto funzioni.... Vedremo.
Da quello che ho visto, i chip funzionano, ma ogni 10 volte non partono se non faccio un cortocircuito sul RESET con il GND.
Provato a fare un reset software e anche un WDT, ma se il chip non parte già dall'inizio, c'è poco da fare.
Ci vorrebbe un semplice circuito di reset "lento", nel senso che tiene a GND il pin di reset per circa un secondo...
Suggerimenti ?
... poi, però, ho visto, nell'IDE di Arduino, a Strumenti, che il clock era a "16.5 Mhz (tuned off USB)" e allora ho provato a metterlo a "1 Mhz (no USB)". Così ho provato a spegnere e riaccendere decine di volte e adesso funziona sempre!!!
Per la Virtual USB il clock deve essere sempre a 12MHz, in quanto la USB 1.0 è a 1.5MHz e quindi riescono con 8 cicli di clock in assembly a trasmettere o ricevere 1 bit