Problema del programador UART / ISP AVR Atmega164P

1

Tengo un problema con el USART en un Atmega164P. Cuando el programador ISP está conectado todo funciona bien. Si desconecto el programador, todo lo que obtengo es un número de serie confuso y el chip no responde a los caracteres que envío. Aquí está el código

void USART_Transmit( unsigned char data )
{
/* Wait for empty transmit buffer */
while ( !( UCSR0A & (1<<UDRE0)) )
;
/* Put data into buffer, sends the data */
UDR0 = data;
}

void sendString ( unsigned char str[16] )
{
    int i=0;
    for ( i = 0 ; i < len ( str ) ; i ++ )
    {
        USART_Transmit ( str [ i ] );
    }
}

Las funciones variadas llaman a sendString y todas funcionan bien hasta que se desconecta el programador. Entonces nada funciona.

La conexión a la PC es un adaptador serial USB > TTL.

En el lado eléctrico, he comprobado si existen bucles comunes de tierra / tierra, diferentes voltajes en los pines de programación y otras entradas que podrían estar afectando los pines de programación. No hay nada conectado a los pines de programación, excepto el programador.

También intentamos conectar el programador a un cargador de pared USB. Esto hizo que el chip funcionara como se esperaba, al igual que conectarlo a una computadora portátil que solo funciona con batería.

También conectamos la línea RESET a VCC con y sin una resistencia de extracción, ninguna de esas pruebas arrojó resultados exitosos (aún se recibió un número de serie confuso).

    
pregunta scottinthebooth

1 respuesta

2

El problema se resolvió agregando un condensador de .1uF a la salida del 7805. Esto mantiene la potencia estable y evita la serie confusa que estábamos viendo

    
respondido por el scottinthebooth

Lea otras preguntas en las etiquetas