Ciao a tutti,
a causa di frequenti disturbi apparentemente ineliminabili vorrei provare a settare i fuse su un atmega vergine per il full swing crystal oscillator che da datasheet lo dato come più immune ai disturbi.
Non ho mai settato i fuse prima d'ora ne scritto il bootloader ma ho letto guide al riguardo di quest'ultimo e qualcosa sui fuse.
Mi sapete guidare su cosa e come modificare un bootloader standard per abilitare l'opzione suddetta?
In rete c'è molta confusione riguardo il full swing, vorrei quindi capire se poi devo utilizzare il solito quarzo con i c da 22p oppure un oscillatore differente.
There is a difference in quality of crystals, but that is mostly for the temperature range and mechanical strength. Bad quality crystals stop working below 0 degrees.
Il full swing crystal non è altro che un bel quarzo. L'external crystal oscillator è un circuito oscillante.
Per aiutarsi con il calcolo dei valori per i fuse, usa questo tool: http://www.engbedded.com/fusecalc/
Inserisci i fuse usati dall'Arduino e poi seleziona la voce appropriata in alto. A quel punto, copiati la voce dell'Arduino UNO nel file boards.txt dandogli un nuovo nome (es.: uno_mod.xxxxxx) e lascia tutte le voci inalterate tranne il fuse Low. Per comodità, ho calcolato il suo valore: $F7
Grazie mille
Non ho capito bene di che voce parli quando dici di copiarla in boards.txt
Dici di creare una nuova board all'interno di boards.txt in cui tutte le voci le copio da quelle della Uno e la voce del fuse low la modifico scrivendogli 0xf7?
Sì, esatto.
Come vedi, nel file boards.txt tutte le voci sono composte da questo schema:
nome.proprietà
La parte "nome" deve essere univoca e serve all'IDE a caricare tutti i parametri "proprietà" relativi a quella voce. Siccome c'è già la voce "uno" non puoi crearne una identica, perciò usa un nome alternativo. Cambia solo il valore del lowfuse.
ekjk:
a causa di frequenti disturbi apparentemente ineliminabili vorrei provare a settare i fuse su un atmega vergine per il full swing crystal oscillator che da datasheet lo dato come più immune ai disturbi.
Che tipo di disturbi hai ?
Il full swing serve solo per gli ambiente con alti livelli EMI in quanto il quarzo viene pilotato in modo rail to rail invece di utilizzare solo 1V, per contro questa modalità aumenta sensibilmente il consumo del 328 e le sue emissioni EMI.
Se i tuoi problemi, come penso, sono da disturbi sulla alimentazione non serve a nulla mandare il quarzo in full swing.
Grazie Leo, molto chiaro!
Ciao astrobeed; dunque di disturbi condotti sull'alimentazione non ne ho o almeno credo di non averne e come solito ho preso tutte le precauzioni per filtrare al top.
Ho provato a schermare e la situazione è migliorata molto ma secondo me ho EMI ancora forti perché capita che si blocca proprio e credo che il disturbo agisca su i pin xtal. 1v di swing per il clock mi pare basso e altamente suscettibile ad EMI irradiata ma anche condotta.
ekjk:
Ho provato a schermare e la situazione è migliorata molto ma secondo me ho EMI ancora forti perché capita che si blocca proprio e credo che il disturbo agisca su i pin xtal.
Quanto è distante il quarzo dal ATmega ?
Stai provando su breadboard, causa primaria di molti problemi, oppure su millefori o pcb reale ?
Sei sicuro che le capacità di carico del quarzo sono quelle giuste ? Il primo sintomo sono proprio arresti casuali del clock.
Che si tratta realmente di problemi EMI è una possibilità molto remota, servono livelli ben oltre quelli ammessi per legge per mandare il blocco l'oscillatore, se è realmente così allora hai grossi problemi di contorno ad Arduino.
Sia su PCB reale sia su millefiori
Ovvio che su PCB è un po meglio ma mi sarei aspettato più miglioramenti.
Il quarzo è il più vicino possibile al micro e i c sono giusti.
Il PCB è fatto direi quasi a regola d'arte.
Le EMI sicuramente sono elevate. Si parla di generazione di una scintilla da bobina at.
Si forse è quello..devo provare ad inserire un induttore di modo comune da 1mH per ogni percorso sia sul più che sulla massa in modo da lasciar passare solo la continua. Non ho modo di isolare galvanicamente a meno che non esista un dcdc o AC DC che riesca a lavorare con tensioni minime di 3v ingresso per produrre 5v in uscita.
Che dici?