Attiny84 tiene una subida y una caída lentas

0

Estoy usando un Attiny84 para generar pulsos de 100us para un controlador de compuerta de tótem. Esperaba tiempos de subida y bajada del orden de 10 de nanosegundos, lo que obtuve fue un tiempo de subida de 7.8 (10% a 90%) y una caída de 230us. Para descartar cualquier capacitancia parásita o bucles de tierra impares en mi tablero, coloqué la uC en una placa de pruebas con solo la sonda de alcance conectada al pin que genera los pulsos de 100us con el mismo problema. Hay tapas de desacoplamiento a través de los rieles.

La atenuación de la sonda de alcance es 1X, 1Mohm / 20pF de carga de entrada.

Estoy usando el pin 11 para la generación de pulsos.

Cosas que ya probé:

 - Tried another Attiny84 IC to rule out defective chip
 - Different loads. Placing a 100kΩ pull down decreases fall times
   somewhat, but the signal only plateus to 4V instead of 5V. Placing a 10k
   resistor makes the signal entirely disappear.
 - Tried different pins, same problem.
 - Scoped 50ns rise and fall times on a completely unrelated board to rule
   out the scope as being defective.

Código fuente:

int main(void)
{
    DDRA &= (1<<PA2);//set pin  as output 11

    while(1){
        PORTA |= (1<<PA2); //set pin 11 high
        _delay_us(100);    
        PORTA &= ~(1<<PA2);//set pin 11 low
        _delay_ms(100);
    }

    return 0;
}

Hoja de datos de Attiny84: enlace

¿Estoy esperando demasiado del chip? La hoja de datos proporciona una cantidad mínima de información sobre los pines de E / S en la página 174.

Editar: Vaya, qué vergonzoso error. La respuesta de Bruce Abbott es correcta. Gracias.

    
pregunta Kilovolt

1 respuesta

2

La señal es muy débil porque no está configurando el pin del puerto en el modo de salida.

La línea

DDRA &= (1<<PA2);//set pin  as output 11

debería ser

DDRA |= (1<<PA2);//set pin  as output 11
    
respondido por el Bruce Abbott

Lea otras preguntas en las etiquetas