Проблема с UART у ATtiny2313
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Maxxim 09 января 2005 г. 17:00

Проблема USART в ATtiny2313.

Настраиваю USART на 9600 бот, 8 бит, 2 (пробовал и 1) стоп бит, кварц 4 МГц. Для проверки работы написал подпрограмму выдачи последовательности от 0x00 до 0хFF. Для передачи использую 2 повода: ТХ и Земля. На компьютере выставляю: 8 бит, 2 стоп бита (с 1 стоп битом разницы нет), четности нет, аппаратного и программного контроля нет.
Реально передача происходить не на 9600, а на 1200 бот. При этом на компьютере принимается последовательность только от 0х80 до 0хFF, т.е. все, что меньше 0х80 куда-то теряется.
Подскажите, если знаете, в чем тут дело и что не так? Спасибо.

Для инициализации USART использую код, взятый из описания ATtiny2313 (2543A–AVR–08/03)


USART_Init: ldi r17, 0 ;
ldi r16, 25 ; 9600 бот при 4.0МГц, ошибка 0,2%
; Set baud rate
out UBRRH, r17
out UBRRL, r16
; Enable receiver and transmitter
ldi r16, (1< out UCSRB,r16
; Set frame format: 8data, 2stop bit
ldi r16, (1< out UCSRC,r16
ret

подпрограмма выдачи последовательности от 0x00 до 0xFF

incr: clz
ldi r16, 0
incr1: sbis ucsra, udre ;ожидание передачи
rjmp incr1
out udr, r16
inc r16
brbc z ,incr1 ;перекод к incr1, если r16<>0
ret

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru