No se puede escribir en serie desde el microcontrolador

0

Tengo los siguientes artículos:

  • ATMEGA328P-PU

  • POLOLU - PGM03A (Programador) enlace

Hasta ahora, he podido escribir la salida en los pines de datos. Ahora quiero conectar un sensor, pero necesito ver la salida del sensor en mi computadora.

Estoy tratando de hacer que el microcontrolador escriba el carácter 'K' en el pin TX y, por lo que entendí, debería poder conectarme a / dev / ttyACM0 utilizando putty o pantalla desde mi computadora Linux y veo la salida, pero cuando ejecuto los siguientes comandos, no obtengo salida, también probé ttyACM1, ttyACM2 pero todavía nada:

 putty /dev/ttyACM0 -serial 9600

O

 screen /dev/ttyACM0

Código:

#define F_CPU     1600000UL
#define BAUD      9600
#define BRC       ((F_CPU/16/BAUD) - 1)

#include <avr/io.h>
#include <util/delay.h>
#include <stdlib.h>

int main( void ) 
{
    UBRR0H = (BRC >> 8);    
    UBRR0L = BRC;

    UCSR0B = ( 1 << TXEN0 );
    UCSR0C = ( 1 << UCSZ01 ) | ( 1 << UCSZ00 );

    while( 1 )
    {
        UDR0 = 'K';
        _delay_ms(1000);
    }

    return 0;
}

Makefile:

CC=/usr/bin/avr-gcc
MEGA=328p
CFLAGS=-g -Os -Wall -mcall-prologues -mmcu=atmega$(MEGA)
OBJ2HEX=/usr/bin/avr-objcopy 
PROG=/usr/bin/avrdude
TARGET=serial

program : $(TARGET).hex
    $(PROG) -c avrispv2 -p m$(MEGA) -P /dev/ttyACM0 -e
    $(PROG) -c avrispv2 -p m$(MEGA) -P /dev/ttyACM0 -U flash:w:$(TARGET).hex

%.obj : %.o
    $(CC) $(CFLAGS) $< -o $@

%.hex : %.obj
    $(OBJ2HEX) -R .eeprom -O ihex $< $@

clean :
    rm -f *.hex *.obj *.o

Cuando ejecuto el microcontrolador, veo parpadear el LED de TX, así que supongo que el microcontrolador está enviando los datos, pero no lo estoy leyendo correctamente en el lado de la computadora. ¿Alguna sugerencia?

    
pregunta K666

1 respuesta

1

Resulta que, aunque probé este dispositivo antes, ahora de repente veo salida:

cu -l /dev/ttyACM2 -s 9600

pero antes de eso corrí

echo '12' > /dev/ttyACM2

Por lo que entendí, necesitaba enviar dos bytes secuenciales para abrir la conexión.

    
respondido por el K666

Lea otras preguntas en las etiquetas