Simplemente estoy intentando que mi Arduino DUE
alterne un pin basado en un reloj externo.
Tengo un 14.31818 MHz Oscillator
que está conectado a un 74HC4040 Counter
para poder dividir el reloj a la mitad (7.16 MHz). Esto tendrá otro propósito más adelante.
De todos modos, necesitaré el DUE para ejecutar un código durante cada pulso del reloj de 7.16 MHz, así que por ahora solo estoy alternando un pin y midiéndolo con mi alcance.
También, ya que el valor DUE no es tolerante a 5V en los pines de E / S (así que he leído) Estoy ejecutando la salida Q0
del contador a través de un divisor de voltaje simple que usa dos resistencias (1k y 604) ). Cuando mido la salida del contador / divisor, obtengo una señal de 7.149 MHz (lo suficientemente cerca) con un Vpp de 3.28V. Como se puede ver en la imagen.
PerocuandopongoesamismasalidaenunadelasentradasDUE,noobtengonada.
Aquíestámicódigo:
intpin=53;volatileintstate=LOW;voidsetup(){pinMode(pin,OUTPUT);attachInterrupt(A0,blink,CHANGE);}voidblink(){state=!state;}voidloop(){digitalWrite(pin,state);}
ObservequetengolainterrupciónasociadaaA0(tambiénprobéelpin52)ylasalidavinculadaalpin53.
¿Quémeestoyperdiendo?
Gracias
ACTUALIZAR
Bien,tengoestaplacadedesarrolloquetieneungeneradordeimpulsosincorporado.CambiélaentradadeA0
alasalidadeesegeneradordeimpulsos(funcionandoa1KHz)yrecibounaseñallimpiadelDUEamedidaquePuedever:
Por lo tanto, obviamente no le gusta mi señal de voltaje dividido. ¿Cómo puedo limpiar eso y hacerlo más "cuadrado"? ¿O es esta una pregunta separada?
Gracias
** SOLUCIONADO **
@gbulmer lo tuvo en cuenta. Tiene sentido total cuando lo pienso. 7+ millones de entradas por segundo es simplemente demasiado rápido para activar la interrupción externa (especialmente con el código Arduino incorporado). No estoy seguro de cuál podría ser la frecuencia de entrada máxima incluso usando bit banging / asm pero no vale la pena para mi circuito. Voy a rediseñarlo e intentar algo diferente. Pero en una nota al margen, usé el 74HC4040
e iteré a través de cada salida (que corta la señal cada vez) para ver cuándo se rompió. Bajé a 57KHz antes de ver cualquier tipo de señal. Y estaba bastante sucio de nervios, pero funcionó.
Por lo tanto, 57 KHz es WAAAAY apagado desde 7MHz. Jajaja
Así que estoy decepcionado de que mi idea no haya funcionado, pero es IMPRESIONANTE que ahora entiendo por qué. :-) ¡Gracias!