Lavorando sul registro della porta di uscita C (quella corrispondente agli ingressi analogici), puoi ottenere con un solo comando l'impostazione di 4 canali (A, B, Aneg, Bneg), velocizzando di molto la generazione dei segnali.
Usando una variabile Ritardo di tipo unsigned long in microsecondi corrispondente al periodo del tuo segnale (e quindi la frequenza) imposti il ritardo tra segnali: si può arrivare anche a 1-2MHz.
Comunque, se il tuo obiettivo è quello di arrivare a 20MHz devi usare un circuito esterno, anche se il DDS da te indicato mi sembra eccessivo.
chetto983:
2 Mhz per incominciare possono andare bene
Non ho capito ... prima chiedi aiuto per utilizzare un chip che ti può far arrivare a 20 MHz e poi ti vanno bene 2 MHz ???
Perché, prima di far perdere tempo alla gente, decidi quello che ti serve ... ]
... se ti bastano i 2 MHz ... allora il metodo di cyberhs va bene e lo si può sviluppare, ma se poi invece, comunque a te servono frequenze maggiori, inutile perdere tempo a scrivere codice che sarà totalmente da buttare, visto che con il AD9851 non ha nulla a che vedere !
Ma visto che mi è stato riferito che si può arrivare a 2Mhz con arduino posso moltiplicare la frequenza con una scheda della motrona che ho in casa che mi da un uscita 10X.
Scusate ma sto cercando di studiare bene l'hardware prima di comprare i componenti.
Se moltiplichi la frequenza per 10 secondo me non hai piú li sfasamento voluto tra i 2 segnali.
Secondo me la cosa piú semplice é con un oscillatore generare una frequenza doppia di quella desiderata e una volta dividerla per 2 (fase A) e una volta invertirla e dividerla per 2 (fase B). Poi invertire i 2 segnali ottenuti (ottieni !A e !B).
Alla fine Ti serve solo un oscillatore regolabile e i divisori/ invertitori che reggono la frequenza desiderata ( 40MHz se vuoi ottenere 20MHz) Come oscillatore potresti usare un generatore di forme d'onda che potresti avere giá in ditta.
Se il vostro scopo è ottenere un simulatore di encoder al fine di testare azionamenti motore di posizionamento ad anello chiuso devi aggiungere altre funzioni non ottenibile con la soluzione proposta da uwefed, che resta comunque valida per un un controllo di velocità sottointeso che come rampa userai il generatore variabile
icio:
Se il vostro scopo è ottenere un simulatore di encoder al fine di testare azionamenti motore di posizionamento ad anello chiuso devi aggiungere altre funzioni non ottenibile con la soluzione proposta da uwefed, che resta comunque valida per un un controllo di velocità sottointeso che come rampa userai il generatore variabile
Penso se il simulatore deve sostituire un motore-encoder in un circuito a controllo ad anello chiuso allora sará difficile costruire il simulatore in modo che simuli con buona aprossimazione le proprietá del insieme motore-encoder con macchinario azionato. Un insieme cosí non parte da 100kHz ma da 0 Hz
Adesso devo solo capire come generare il segnale in quadratura sfalsato di 90*.
Quel integrato é sicuramente un valido integrato per esere usato come ocillatore. Comunque mi sembra un po esagerato ordinarlo dal Sudafrica. Visto che il produttore della schedina é Sparkfun (C'é il loro logo) Watterott electronic
Come produrre un segnale simile a quello del Encoder Te lo avevo giá spiegato:
uwefed:
Secondo me la cosa piú semplice é con un oscillatore generare una frequenza doppia di quella desiderata e una volta dividerla per 2 (fase A) e una volta invertirla e dividerla per 2 (fase B). Poi invertire i 2 segnali ottenuti (ottieni !A e !B).
Alla fine Ti serve solo un oscillatore regolabile e i divisori/ invertitori che reggono la frequenza desiderata ( 40MHz se vuoi ottenere 20MHz) Come oscillatore potresti usare un generatore di forme d'onda che potresti avere giá in ditta.
Ciao Uwe
al posto del 4013 basta qualsiasi divisore per 4 a 2 bit, ha un ingresso e 2 uscite, per invertire la direzione basta scambi le uscite , il 4013 non arriva a 64Mhz , si ferma a 2Mhz quindi devi scegliere il corrispondente TTL , tipo il sn74hc74, che arriva a 20Mhz, se non ti basta neppure quello, ne devi cercare uno più veloce