[RISOLTO]usb tiny isp autocostruito non funziona

che intendi per costruito? se non hai realizzato il CPB puoi rinunciare subito, sono sistemi molto critici, e per la stessa ragione i valori dei componenti vanno rispettati senza eccezioni.

ho realizzato il pcb :slight_smile: sono partito dallo schema originale, e ho cambiato quasi tutti i componenti mettendoli smd (così devo fare meno buchi --> meno punte rotte XD)
le resistenze che ho messo di valore diverso ho visto che sono resistenze di protezione, e in alcuni casi potrebbero essere omesse...più tardi mi procuro quelle di valore giusto e provo allora :wink:

Io ho replicato la 1a versione dell'USBtiny e mi funziona perfettamente.
Hai dato i permessi come descritto nel link che hai citato?

alexdb:
ho realizzato il pcb :slight_smile: sono partito dallo schema originale, e ho cambiato quasi tutti i componenti mettendoli smd (così devo fare meno buchi --> meno punte rotte XD)
le resistenze che ho messo di valore diverso ho visto che sono resistenze di protezione, e in alcuni casi potrebbero essere omesse...più tardi mi procuro quelle di valore giusto e provo allora :wink:

Che schema hai realizzato? Io con quello originale di Adafruit non ho avuto problemi. Potresti pubblicare il tuo circuito?

il circuito è lo stesso, ho solo modificato il package dei componenti...comunque è nel primo post...

i permessi li ho dati, comunque per scaramanzia ho provato con sudo ma non va lo stesso :0

Ma tu hai detto di aver cambiato i valori delle resistenze.
Di quali resistenze hai cambiato il valore? E da quanto le hai messe?

allora ho cambiato il valore di tutte le resistenze da 1,5k (perchè non ne ho) e le ho messe da 2.2k.
le resistenze da 27 ohm le ho messe da 68.

l'unica eccezione sono le resistenze per i due led, una da 4,7k e una da 150 ohm, ma non credo che centrino molto con il problema...

R3 serve come resistenza di pull-up. Forse una da 2K2 non dà abbastanza corrente per dare un segnale di base.
R1 e R2 servono per limitare la corrente sulle linee D- e D+: io le ho messe da 47 ohm, non ho provato con 68.
In più non ho messo R6 e R7 sulle linee SCK e MOSI.

leo72:
R3 serve come resistenza di pull-up. Forse una da 2K2 non dà abbastanza corrente per dare un segnale di base.

provo con qualcosa di più basso? tipo 1 k?

R1 e R2 servono per limitare la corrente sulle linee D- e D+: io le ho messe da 47 ohm, non ho provato con 68.

in teoria l'usb funziona, perchè il programmatore mi risponde..

In più non ho messo R6 e R7 sulle linee SCK e MOSI.

allora provo a ponticellare..

alexdb:

leo72:
R3 serve come resistenza di pull-up. Forse una da 2K2 non dà abbastanza corrente per dare un segnale di base.

provo con qualcosa di più basso? tipo 1 k?

Beh, bisognerebbe vedere di quanta corrente ha bisogno come pull-up quella linea, valore che io non conosco perché non so le specifiche USB.
Però se ti da problemi di sincronizzazione forse il problema è da qualche altra parte. Hai usato il risonatore ceramico da 12 MHz? Hai settato i fuse del 2313 prima di caricarci il firmware?

leo72:

alexdb:

leo72:
R3 serve come resistenza di pull-up. Forse una da 2K2 non dà abbastanza corrente per dare un segnale di base.

provo con qualcosa di più basso? tipo 1 k?

Beh, bisognerebbe vedere di quanta corrente ha bisogno come pull-up quella linea, valore che io non conosco perché non so le specifiche USB.
Però se ti da problemi di sincronizzazione forse il problema è da qualche altra parte. Hai usato il risonatore ceramico da 12 MHz? Hai settato i fuse del 2313 prima di caricarci il firmware?

il risonatore è da 12 MHz, i fuse li ho settati così:
LowFuse 0xFF
HighFuse 0xDB

I fuse concordano con quelli dettati da Adafruit. Hai qualcosa collegato sulle linee RST/MOSI/MISO/SCK lato chip da programmare oppure no?
Mi spiego: quando programmi il chip destinatario, questo ha qualcosa sulle linee che portano i suddetti segnali? Tipo qualcosa pullato basso, che è ciò che da noia?
Il chip che programmi, dove risiede? Su una sua scheda, oppure su una breadboard? Hai messo le masse in comune?

Cerchiamo di venirne fuori, dai quante più info possibili :sweat_smile:

alexdb:
il risonatore è da 12 MHz, i fuse li ho settati così:
LowFuse 0xFF
HighFuse 0xDB

Schema USBTinyISP modificato - #22 by leo72 - Generale - Arduino Forum qui leo mi hai detto dei fuse diversi. quali sono in conclusione?

Il fuse basso E4 attiva l'oscillatore interno. Probabilmente in quella discussione ho suggerito quei valori per poter flashare il firmware su un micro montato in standalone senza quarzi esterni. Però dopo va riprogrammato il fuse nuovamente per attivare l'uso dei 12 MHz esterni.

Dico "probabilmente" però perché non ricordo quella discussione e non ho ora voglia di rileggermi tutte le pagine.
$FF per il fuse basso attiva invece l'uso di un quarzo esterno con clock superiore a 8 MHz, sarebbe quindi un valore corretto.

Relativamente al fuse alto, il valore 9F disabilita il BOD (mentre Adafruit consiglia di lasciarlo attivo, ma secondo me è una cosa che non serve essendo l'USBtinyISP alimentato a 5V dalla porta USB) e preserva la EEPROM interna dalla cancellatura durante l'erase del chip, una cosa che non influisce sull'uso dell'USBtinyISP.

leo72:
I fuse concordano con quelli dettati da Adafruit. Hai qualcosa collegato sulle linee RST/MOSI/MISO/SCK lato chip da programmare oppure no?
Mi spiego: quando programmi il chip destinatario, questo ha qualcosa sulle linee che portano i suddetti segnali? Tipo qualcosa pullato basso, che è ciò che da noia?
Il chip che programmi, dove risiede? Su una sua scheda, oppure su una breadboard? Hai messo le masse in comune?

Cerchiamo di venirne fuori, dai quante più info possibili :sweat_smile:

allora ho fatto diverse prove:
attiny 85, attiny 84 e atmega 328p su breadboard con i collegamenti minimi, cioè con alimentazione e massa, miso mosi sck e reset, e per il 328p anche il quarzo.
poi ho anche provato ad attaccarlo all'arduino uno.
le masse sono in comune..
quindi non c'è nient'altro attaccato a quelle linee..

Hai ricompilato il firmware o hai usato quello originale di Adafruit?

ho usato quello originale..
in pratica ho caricato nell'attiny2313 il file main.hex nella cartella /spi dell'archivio...

A livello SW a me pare tutto a posto. Io stesso ho realizzato l'USBtinyISP versione 1.0 e con il firmware originale funziona perfettamente.
Non vorrei tu avessi realizzato male una saldatura. Se avrdude risponde che non riesce a dialogare col chip, spesso è un problema di collegamenti.

Ad esempio, come colleghi il chip da programmare al tuo programmatore?

allora ad esempio l'atmega328p su breadboard l'ho collegato così:
massa e alimentazione in comune
reset proveniente dall'attiny sul pin 1
sck sul pin 19
miso sul 18
mosi sul 17

forse devo ponticellare le resistenze di protezione sulle linee miso mosi e sck....

comunque quando ho provato ad attaccarlo all'arduino uno il led 13 (che è sulla linea sck) lampeggiava..

vuoi che posto una foto del circuito finito?

alexdb:
allora ad esempio l'atmega328p su breadboard l'ho collegato così:
massa e alimentazione in comune
reset proveniente dall'attiny sul pin 1
sck sul pin 19
miso sul 18
mosi sul 17non è corretto

forse devo ponticellare le resistenze di protezione sulle linee miso mosi e sck....

comunque quando ho provato ad attaccarlo all'arduino uno il led 13 (che è sulla linea sck) lampeggiava..

vuoi che posto una foto del circuito finito?

No, è sbagliato. Il segnale di RST per il chip destinatario devi prelevarlo dal pin 16 dell'Attiny, è specificato nello schema.