roboforum.ru

Технический форум по робототехнике.

НЕ могу запустить UART в ATtiny2313, хотя в AT90S2313 - все

НЕ могу запустить UART в ATtiny2313, хотя в AT90S2313 - все

SSDTU » 08 июл 2006, 23:22

:( НЕ могу запустить UART в ATtiny2313, хотя в AT90S2313 - все

Поможите, кто может.
Конфигурирую УАРТ в AT90s2313
config UART
config UART
ldi tmp,25 ;установка скорости 9600 при 4МГц
out UBRR,tmp
clr tmp
ldi tmp,(1<<RXEN)+(1<<RXCIE) ;без TX
out UCR,tmp

А как сделать в ATtiny2313
Там ведь нету  UBRR,  а есть UBRRL и  UBRRH ?

avr123.nm.ru » 09 июл 2006, 00:41

Можно воспользоваться генератором начального кода CVAVR  - очень удобный инструмент для конфигурации аппаратуры МК.

KiCom » 09 июл 2006, 06:35

ldi tmp,25 ;установка скорости 9600 при 4МГц

Для стабильно работы UART нужно использовать кварцы с определеной частотой, иначе скорость будет немного отличаться и будут ошибки. Вот на этих точно работает сам проверял: 11.059 Мгц 14.7456 Мгц, в ДШ есть полный список.

Johnny Bravo » 09 июл 2006, 09:29

Не сказал бы что частота влияет на общую работоспособность: работало  (тини2313( и от внетренней РС цепочки и от 4М внешнего кварца (без учета набега фазы конечно).
Делал с помощью генератора кода в CVAVR.
Может поможет: UBRR=(UBRRL)|(UBRRH<<8 )

avr123.nm.ru » 09 июл 2006, 12:46

генератор начального кода CVAVR показывает допустимость ошибки бадрейта. Превышающую стандарт показывает красным.

SSDTU » 09 июл 2006, 16:07

avr123.nm.ru писал(а):генератор начального кода CVAVR показывает допустимость ошибки бадрейта. Превышающую стандарт показывает красным.


Спасибо, конечно, но нет у меня ни подходящего кварца ни генератора.
А вобще проверял на AT90S2313-работает отлично,
А на ATtiny2313 ну не хочет ни как.
Проверяю в Гипертерминале- все тоже самое,
работает как часы, стоит подключить сотик
и все - не работает. Может у ТИНЬКИ другой
выходной\входной уровень. Ну очень сильно
неохото ставить MAX232AEPE, ведь на 90S
все работало. :(

KiCom » 09 июл 2006, 16:57

Так ты как подключаешь? напрямую? Без max232 (или аналога микросхемы) у тебя недолжно работать, там же уровни разные, или ты через шнурок от телефона подключаешь?

SSDTU » 09 июл 2006, 17:11

KiCom писал(а):Так ты как подключаешь? напрямую? Без max232 (или аналога микросхемы) у тебя недолжно работать, там же уровни разные, или ты через шнурок от телефона подключаешь?


Да по всякому раньше подключал.
С 90S раротало как часы,
А с ATtiny2313 работает только в
гипертерминале.
А в вобще без шнурка раньше
подключал и согласовал резисторами
1-3 кОм прям от UART  до сотика в RX и TX
соответственно и все работало.

SSDTU » 09 июл 2006, 17:37

А может действительно конфигурация не верна.
И вовсе не 9600 а другая скорость может получится,
если неправилно сконфигурировать USART

Я вот так сделал

;===========================
   ldi   tmp,(0<<U2X)
   out  UCSRA,tmp    
   clr   tmp
   ldi   tmp,(0<<UMSEL)+(0<<USBS)+(1<<UCSZ1)+(1<<UCSZ0)
   out  UCSRC,tmp
   ldi   tmp,(0<<UCSZ2)
   out  UCSRB,tmp
   clr   tmp

   out  UBRRH,tmp
;=========================
              ;установка скорости 9600 при 4МГц
   ldi tmp,25
   out UBRRL,tmp
   clr tmp
           
   ldi tmp,(1<<RXEN)+(1<<RXCIE)
   out UCSRB,tmp

mandigit » 13 июл 2006, 17:29

В тиньках2313 (некоторых) по-умолчанию стоит делитель тактовой частоты на 8.
Перепрограммируйте CLKPR  и будет вам счастье :)


Rambler\'s Top100 Mail.ru counter