Технический форум по робототехнике.
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 и будет вам счастье
