¿Cuál es el tiempo más rápido que se puede configurar y borrar un microcontrolador (PIC16 en este caso)? Se define por la frecuencia, pero no conozco la fórmula para calcular el tiempo más rápido en que se puede configurar y borrar un solo pin.
Suponiendo que la frecuencia (XTAL) es de 20 MHz y que no hay retrasos en el medio, ¿cuál es el tiempo necesario para que se establezca y borre el pin?
Por ejemplo:
RB2=0;
RB2=1;
RB2=0;
¿Cuál es el tiempo que RB2 está alto?
Depende del PIC en particular, ya que algunos PIC pueden ejecutar una instrucción por ciclo, y otros, por ejemplo, ejecutan una instrucción por cada cuatro ciclos del reloj del sistema.
Aunque el OP solicitó información sobre un PIC16 de 20 MHz, dado que eso ya se ha abordado, muestro información para la versión más rápida en todas las diferentes familias de PIC. Donde hay diferencias significativas entre las piezas de varias subfamilias, como PIC24F/PIC24EP y PIC32MX/PIC32MZ, muestro ambas por separado.
Obtuve los números ingresando al sitio web de Digi-Key , buscando piezas para cada familia y luego seleccionando la velocidad más alta. Luego saqué una hoja de datos en una parte de ejemplo, que también verificó el valor de MIPS.
Family Clock Speed I/O toggle time
PIC10F 16 MHz 4 MIPS 250 ns
PIC12F 20 MHz 5 MIPS 200 ns
PIC16F 20 MHz 5 MIPS 200 ns <--- example in the original question
PIC16F 48 MHz 12 MIPS 83 ns
PIC18F 64 MHz 16 MIPS 62 ns
PIC24F 32 MHz 16 MIPS 62 ns
PIC24EP 70 MHz 70 MIPS 28 ns
dsPIC30 40 MHZ 30 MIPS 33 ns
dsPIC33EP 70 MHz 70 MIPS 28 ns
PIC32MX 100 MHz 100 MIPS 10 ns
PIC32MZ 200 MHz 200 MIPS 5 ns
Si alguien tiene alguna corrección que hacer en esta tabla, no dude en editarla.
MIPS es millón de instrucciones por segundo. El tiempo de alternancia de E/S es la cantidad de tiempo que el pin de E/S estaría encendido o apagado en nanosegundos (ns), y se calcula como un millón dividido por el número de MIPS.
Todos estos procesadores tienen la capacidad de activar o desactivar un pin de E/S en una sola instrucción. Las instrucciones en sí varían según el procesador.
Si está utilizando un cristal de 20 MHz, eso significa que tiene 5 MIPS (5 millones de instrucciones por segundo), porque internamente los 20 MHz se dividen por 4.
Eso significa que una instrucción toma .
Puede lograr lo que quiere en el ensamblaje, así:
bcf PORTB, 2 // Sets the pin state to 0
bsf PORTB, 2 // Sets the pin state to 1
bcf PORTB, 2 // Sets the pin state to 0
Esto muestra que cambiar el estado del pin requiere una instrucción, por lo tanto, el tiempo mínimo que el pin estaría encendido es de 200 ns (si lo borra directamente de nuevo).
Solo tengo experiencia con PIC16 y PIC18, no estoy seguro acerca de dsPIC, PIC32 y todas las demás variedades. Pero, en general, si conoce el número de instrucciones por segundo (puede calcularlo a partir de la configuración del oscilador), puede calcular el tiempo mínimo, como lo dice.
usuario17592
crosley
olin lathrop
crosley