11-05-2024, 08:52 PM
(Questo messaggio è stato modificato l'ultima volta il: 11-05-2024, 08:56 PM da billielliot.
Motivo modifica: Corretta formattazione
)
Ciao,
sto cercando di mettere insieme il tutto, gestendolo da Arduino e aggiungendo qualche miglioria (secondo me).
Come sempre io faccio calcoli ma voi controllate e correggete le mie eventuali castronerie.
Nel kit LX750 di Nuova Elettronica viene impiegato un unico contatore CD4040 come DA converter per generare i gradini della corrente di base e la rampa applicata al collettore:
i primi 8 bit per la rampa di tensione da applicare al collettore (256 livelli);
gli ultimi 4 bit per generare i gradini della corrente di base (conteggio arrestato a 7).
Io vorrei spezzare questo contatore in due moduli indipendenti, cosi' da gestire in autonomia sia la corrente di base che la rampa.
Nel Tektronix 370B si possono generare da 1 a 10 gradini di corrente di base.
La rampa applicata al collettore parte da zero e puo' essere fatta salire dolcemente con comando sul pannello di controllo.
Due conti veloci:
30 immagini al secondo;
(fino a) 10 gradini di valori di corrente in base;
singola rampa definita da 256 punti (come nel Kit di Nuova Elettronica).
Volendo usare l'Arduino come generatore di clock per i contatori avremmo un totale di: 30 * 10 * 256 = 76800 impulsi al secondo da generare.
Da quanto ho potuto appurare in rete Arduino impiega circa 50 impulsi di clock per ogni digital-write.
Per generare un impulso utile per i contatori servono due digital-write: segnale alto e segnale basso.
Servono quindi 50x2x76800 = 7680000 impulsi di clock dell'Arduino per generare un quadro stabile su oscilloscopio con le caratteristiche massime descritte sopra.
In pratica meta' del tempo disponibile in un secondo viene usata solo per generare l'immagine.
O se preferite: meta' della potenza di calcolo dell'Arduino.
Rimarrebbero da gestire:
gli encoder e i pulsanti per le scelte da pannello;
i contatti sullo stampato per attuare le scelte dei parametri (rele' o integrati);
la comunicazione seriale con il PC;
altro...
Per l'acquisizione: concordo con Imer che 10bit bastano per un uso amatoriale.
Resta preoccupante il problema tempistiche.
Sempre per quanto ho trovato in rete, servono 13 cicli di clock per una conversione ADC a 10bit.
Se volessimo acquisire ogni singolo punto mostrato a schermo servirebbero:
256 x 10 x 30 = 76800 punti da acquisire
76800 x 13 = 998400 cicli di clock equivalenti
Circa 1 milione di cicli di clock per ogni canale acquisito. Per generare una immagine XY ne servono almeno due.
Senza contare le tempistiche per immagazzinare i dati in una memoria esterna.
76800 acquisizioni al secondo per 10bit per due canali equivalgono a 1536000bit da immagazzinare (192kbyte).
Mi fermo in attesa dei vostri pareri. Anche per capire se valga la pena mantenere tutto all'interno di Arduino o se sia preferibile trovare soluzioni hardware che alleggeriscano i calcoli richiesti al processore.
Ciao :-)
Mauro
P.S. sempre che non mi sia clamorosamente sbagliato!
sto cercando di mettere insieme il tutto, gestendolo da Arduino e aggiungendo qualche miglioria (secondo me).
Come sempre io faccio calcoli ma voi controllate e correggete le mie eventuali castronerie.
Nel kit LX750 di Nuova Elettronica viene impiegato un unico contatore CD4040 come DA converter per generare i gradini della corrente di base e la rampa applicata al collettore:
i primi 8 bit per la rampa di tensione da applicare al collettore (256 livelli);
gli ultimi 4 bit per generare i gradini della corrente di base (conteggio arrestato a 7).
Io vorrei spezzare questo contatore in due moduli indipendenti, cosi' da gestire in autonomia sia la corrente di base che la rampa.
Nel Tektronix 370B si possono generare da 1 a 10 gradini di corrente di base.
La rampa applicata al collettore parte da zero e puo' essere fatta salire dolcemente con comando sul pannello di controllo.
Due conti veloci:
30 immagini al secondo;
(fino a) 10 gradini di valori di corrente in base;
singola rampa definita da 256 punti (come nel Kit di Nuova Elettronica).
Volendo usare l'Arduino come generatore di clock per i contatori avremmo un totale di: 30 * 10 * 256 = 76800 impulsi al secondo da generare.
Da quanto ho potuto appurare in rete Arduino impiega circa 50 impulsi di clock per ogni digital-write.
Per generare un impulso utile per i contatori servono due digital-write: segnale alto e segnale basso.
Servono quindi 50x2x76800 = 7680000 impulsi di clock dell'Arduino per generare un quadro stabile su oscilloscopio con le caratteristiche massime descritte sopra.
In pratica meta' del tempo disponibile in un secondo viene usata solo per generare l'immagine.
O se preferite: meta' della potenza di calcolo dell'Arduino.
Rimarrebbero da gestire:
gli encoder e i pulsanti per le scelte da pannello;
i contatti sullo stampato per attuare le scelte dei parametri (rele' o integrati);
la comunicazione seriale con il PC;
altro...
Per l'acquisizione: concordo con Imer che 10bit bastano per un uso amatoriale.
Resta preoccupante il problema tempistiche.
Sempre per quanto ho trovato in rete, servono 13 cicli di clock per una conversione ADC a 10bit.
Se volessimo acquisire ogni singolo punto mostrato a schermo servirebbero:
256 x 10 x 30 = 76800 punti da acquisire
76800 x 13 = 998400 cicli di clock equivalenti
Circa 1 milione di cicli di clock per ogni canale acquisito. Per generare una immagine XY ne servono almeno due.
Senza contare le tempistiche per immagazzinare i dati in una memoria esterna.
76800 acquisizioni al secondo per 10bit per due canali equivalgono a 1536000bit da immagazzinare (192kbyte).
Mi fermo in attesa dei vostri pareri. Anche per capire se valga la pena mantenere tutto all'interno di Arduino o se sia preferibile trovare soluzioni hardware che alleggeriscano i calcoli richiesti al processore.
Ciao :-)
Mauro
P.S. sempre che non mi sia clamorosamente sbagliato!