Go Down

Topic: Info Segnale DTR (Read 563 times) previous topic - next topic

mauroplus

Ciao,utilizzando un modulo usb ftdi,in un'applicazione standalone,ogni volta che inserisco il cavo usb,si resetta il micro e perdo i dati variabili.
Avendo letto le info dei post vecchi ho creato il circuito ( allego schema ) come veniva consigliato per evitare l'autorestart,ma il "difetto" rimane tale e quale.
Leggendo che non collegando il dtr,si evita l'autorestart,ma per abiltare la nuova configurazione,bisognerebbe resettare manualmente il micro.
Andrebbe ben anche questa soluzione,ma quando invio il file non si muovono ne txrx,e non succcede nulla di nulla,non carico nessun file.
A livello di voci dell'IDE ,Board ( Arduino/Genuino uno ) e Programmer ( AVRISP MKII ),rimagono uguali come se utilizzassi una Board Uno r3..
Grazie

Questo è il Modulo :
https://www.amazon.it/AZDelivery-FT232RL-Adattatore-convertitore-Gratuito/dp/B01N9RZK6I/ref=asc_df_B01N9RZK6I/?tag=googshopit-21&linkCode=df0&hvadid=85524540263&hvpos=1o1&hvnetw=g&hvrand=9460251237975530839&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1008560&hvtargid=pla-388910303692&psc=1

Maurotec

Quote
Avendo letto le info dei post vecchi ho creato il circuito ( allego schema ) come veniva consigliato per evitare l'autorestart,ma il "difetto" rimane tale e quale.
Ricordo poco circa le vecchie discussioni, se puoi postare un link me le rileggo.
Il pin DTR (e RST) deve andare LOW quando si vuole trasferire lo sketch perché in questo modo la MCU si riavvia e la prima porzione di codice che viene eseguita e quella relativa al bootloader. Il programma avrdude per scrivere lo sketch dialoga pertanto con il bootloader e questo si aspetta in ricezione dei dati che interpreta come comandi, dopo avere decodificato i comandi avrdude invia lo sketch e il bootloader scrive byte per byte lo sketch nella porzione di flash dedicata.

Ora se puoi inserire un interruttore per aprire il collegamento tra DTR e RST la MCU non si resetta più e pertanto non è possibile trasferire lo sketch. Quando vuoi scrivere lo sketch giri l'interruttore su on e avvii upload.

Ciao.

mauroplus

Ciao,avendo poco tempo,solo ora sono riuscito a fare qualche ulteriore prova.
Leggendo le info e i vari consigli ,nello schema modificato che allego ho inserito un condensatore ( CX ) e levato la resistenza tra dtr e massa.
Ho provato a fare qualche prova con i condensatori a mia disposizione:
1nF / 10nF / 22nF / 33nF / 47nF / 100nF
solo con valore di 100nF ,il micro non si resetta quando inserisco il connettore usb,ma quando devo caricare il codice ,tutto rimane nel limbo..
Con tutti gli altri valori,succede l'inverso,come detto nei post precedenti.
Secondo voi ,magari c'è una valore tra 47nF e 100nF ,che mi permetta di arrivare a quello che voglio o devo lavorare su altre parti del circuito.
Grazie,in anticipo

Standardoil

no
quello che cerchi è impossibile, non esiste
è il reset che permette di caricare un nuovo eseguibile
se non si resetta non si carica
semmai includendo/escludendo con un interruttorino il condensatore abiliti o meno il reset....
Prima legge di Nelson (che sono io): La risposta giusta si può ottenere solo dalla domanda giusta, domande sbagliate danno risposte inutili

Non bado a studenti, che copino altrove

Hai problema-Ti domando-Non rispondi: Non ti serve più

mauroplus

Ciao,ma scusa come mai con la board Arduino Uno r3,non mi succede mai,mi sembra strano che non riesca ad arrivare allo stesso comportamento.
Scusa ,ma se con con il condensatore da 100nF non si resetta quando collego  il cavo alla porta,e va benissimo...ma quando carico il codice il dtr non va a livello basso per un periodo T...vorrà dire che 100nF magari in questo caso è troppo elevato...no ?
Grazie,comunque

Standardoil

boh, non saprei
tienici informati
Prima legge di Nelson (che sono io): La risposta giusta si può ottenere solo dalla domanda giusta, domande sbagliate danno risposte inutili

Non bado a studenti, che copino altrove

Hai problema-Ti domando-Non rispondi: Non ti serve più

miky_police

Posso farti una domanda? a cosa serve inserire l'USB se non puoi caricare un nuovo sketch (perché vuoi interdire il reset) e non puoi nemmeno aprire la seriale per leggere eventuali comunicazioni (aprire la seriale implica il reset del micro)... forse se specifichi meglio cosa vuoi fare potremmo trovare soluzioni alternative al tuo problema.
Il vero stupido è colui che fa e rifa la stessa cosa aspettandosi risultati diversi. A.E.

mauroplus

Ciao ,forse mi sono spiegato male,io vorrei arrivare allo stesso comportamento che ho quando uso una board tipo UNO r3....
Io voglio interdire il reset solo quando inserisco il cavo,oppure quando apro la comunicazione,non quando "carico" lo sketch.
Nell'ultimo circuito allegato,questa anomalia di reset non succede ( e mia va benissimo ) solo quando inserisco tra il pin del reset e massa una capacità di 100nF.
Però quando devo "caricare " lo sketch,la procedura non inizia...per farla partire con il condensatore da 100nf devo abbassare il dtr tramite il pulsante di reset ...insomma non mi piace ,voglio una procedura automatica..
Spero che sia stato abbastanza chiaro

Grazie in anticipo

miky_police

#8
Aug 12, 2019, 02:36 pm Last Edit: Aug 12, 2019, 03:00 pm by miky_police
intanto secondo me è sbagliato mettere insieme la 5v usb con la 5v di un regolatore, metti in comune solo la massa e la 5v usb la bypassi a massa con un 100nf. se vuoi che funzioni a prescindere della fonte di alimentazione (usb/esterna) devi creare un circuito che "capisca" chi sta alimentando e contestualmente escludere l'altra alimentazione (basta prendere uno schematico di una R3 per capire subito come realizzarlo). Probabilmente già apportando questa modifica su breadboard è possibile che tu risolva il tuo problema.
Edit: non riesco proprio a capire a cosa serve poter collegare l'USB senza il riavvio senza avere la necessità di una comunicazione seriale/upload di nuovo sketch.
EDIT2: È OVVIO CHE DEVI TOGLIERE ANCHE QUEL CERAMICO DA 100NF SUL DTR VERSO MASSA. Poi provi se va come vorresti.
io vorrei arrivare allo stesso comportamento che ho quando uso una board tipo UNO r3....
cosa intendi per "board tipo UNO R3"?
è una r3 originale o "tipo" cinese originale con un CH340G come convertitore seriale... se no possiamo parlare 20 giorni senza trovare soluzioni ;)
Il vero stupido è colui che fa e rifa la stessa cosa aspettandosi risultati diversi. A.E.

mauroplus

Ciao,allora ti rispondo :
[1] la board è originale,modello Arduino Uno Revisione 3,no cinesate.

[2] L'alimentazione della scheda che ho creato arriva da fonte esterna 12volt tramite alimentatore switching 12V/1A ( vedi ultimo shema allegato ),il modulo usb è sempre alimentato dalla +5 del regolatore di tensione 7805.
Purtroppo,non ho più spazio per bypassare l'alimentazione con un mosfet schema originale
Quando inserisco il connettore usb per dialogare con il terminale mi si resetttano i due micro (perdendo i valori delle variabili in Ram ).
Quando ho inserito il condensatore nello schema CX di 100nF,questo difetto è sparito ( OK ,perfetto ),ma quando voglio "caricare" il codice la procedura non viene eseguita come spiegato precedentemente..
Posso arrivare ad una soluzione con il mio schema..??

miky_police

#10
Aug 13, 2019, 12:10 am Last Edit: Aug 13, 2019, 12:14 am by miky_police
si, modifica il cavo usb. Lo "speli", dei 4 cavi interni (rosso, nero, bianco e verde) tagli solo il rosso (vcc usb, ovvero 5v) e nastri. togli quel condensatore ceramico da 100nf verso massa sul DTR (CX) e provi se funziona. Nella peggiore delle ipotesi devi sostituire solo il cavo usb con uno nuovo.
Il vero stupido è colui che fa e rifa la stessa cosa aspettandosi risultati diversi. A.E.

Standardoil

Ma il problema è sul dtr che provoca il reset o sulle alimentazioni che quando inserite assieme fanno 'scintille'?
Perché nei primi post sembrava un problema di dtr, ora di alimentazioni in parallelo
Se si fosse nel primo caso togliere il 5v non risolverebbe
Se ho capito bene la board  se la è fatta lo OP
Se fosse così non gli sarebbe difficile dissaldare il piedino dal connettore, così non rischierebbe di scambiare i cavi e resettare arduino per sbaglio
Ma non mi convince, prima sembrava certo che fosse un problema di dtr...
Prima legge di Nelson (che sono io): La risposta giusta si può ottenere solo dalla domanda giusta, domande sbagliate danno risposte inutili

Non bado a studenti, che copino altrove

Hai problema-Ti domando-Non rispondi: Non ti serve più

miky_police

#12
Aug 13, 2019, 01:27 am Last Edit: Aug 13, 2019, 01:46 am by miky_police
Ciao Standardoil. Allora il punto è questo. L'op prova il circuito che sta facendo con una uno r3 originale alimentata esternamente a 12v. Succede che nelle sue prove, a quanto pare, inserisce il cavo usb mentre la r3 è alimentata e magicamente non si resetta. Questo è ovvio perché a livello hw la r3 quando alimentato esternamente la 5v usb non arriverà mai ad alimentare la scheda dato il source esterno (opamp e transistor spiegano perché sullo schematico originale della r3).
Lui pensa che sia tutto normale e procede con lo standalone e scopre magicamente che nelle stesse condizioni di test con la r3, lo standalone si resetta a differenza della board originale. Allora nasce il problema di reset che lui non vuole a tutti i costi. pensa che il problema risiede nel dtr del ftdi, ma non è così secondo me. se vedi lo schematico pdf postato lui alimenta l'Ftdi con il 7805, quindi (usb a parte) l'ftdi è sempre acceso finché gli dà 12v... che succede quando colleghi l'usb senza togliere la 12v? semplice, l'out del 7805 chiude con il 5v dell'usb e magicamente il tutto va in crash e resetta. è già tanto che non si è fritto nulla. Pertanto, dato che ha già il suo progetto finale pronto, gli ho consigliato (dato che non vuole modificare lo standalone) di modificare il cavo usb interdicendo la 5v usb sul cavo. Il CX verso massa sul dtr che lui ha messo esordisce alla perfezione lo scopo per il quale è stato suggerito di aggiungerlo, ovvero IMPEDIRE il reset. Ma il reset indesiderato non è dovuto secondo me dal DTR, ma per un "conflitto" di alimentazione che si crea quando usi 5v usb e 5v del regolatore insieme. Pertanto deve togliere anche quel CX su DTR verso massa. Diversamente non riuscirà mai a caricare nulla data l'inibizione del DTR a mezzo di CX. Sbaglio? Questo è il mio punto di vista. io quando sono su breadboard con alimentazione esterna, regolatore ed ftdi collego di quest'ultimo solo massa, tx, rx e dtr. il 5v non mi sfiora nemmeno l'anticamera del cervello.
Il vero stupido è colui che fa e rifa la stessa cosa aspettandosi risultati diversi. A.E.

mauroplus

Ok,grazie per l'aiuto...vorrei fare un riepilogo tra prove e altro :

[1] quando ho tagliato la pista tra pin DTR del modulo e condensatore C9 ogni volta che inserivo il cavo oppure aprivo il terminale ,il micro non si resettava mai mai mai ..per quello ho sempre lavorato in quella parte del circuito e penso che si li..

[2] Adesso provo a tagliare il cavo come mi è stato consigliato oppure il +5 del connettore del modulo usb

cmq grazie


Standardoil

Secondo me, stante il tuo punto 1 non è problema legato alle alimentazioni
Facci sapere
Prima legge di Nelson (che sono io): La risposta giusta si può ottenere solo dalla domanda giusta, domande sbagliate danno risposte inutili

Non bado a studenti, che copino altrove

Hai problema-Ti domando-Non rispondi: Non ti serve più

Go Up