atiny2313 UART: не передает

Обсуждаем контроллеры компании Atmel.
Ответить
Встал на лапы
Сообщения: 136
Зарегистрирован: Ср янв 23, 2013 10:58:31

Сообщение Dessp »

Всем привет.
Помогите пожалуйста. Начал изучение UART. зделал инициализацию, пытаюсь передать 8бит в протеусе, а оно не передает, в чем ошибка?

приклепляю протеус и ассемблер код.

Спасибо.
Вложения
first_run.asm
asm
(1.03 КБ) 181 скачивание
proteus.rar
prot
(31.29 КБ) 156 скачиваний
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Сообщение ChipKiller »

Реклама
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Сообщение a_skr »

всё работает. неправильно COMPIM соединили. TXD надо с TXD соединять, а не с RXD.
Встал на лапы
Сообщения: 136
Зарегистрирован: Ср янв 23, 2013 10:58:31

Сообщение Dessp »

a_skr писал(а):всё работает. неправильно COMPIM соединили. TXD надо с TXD соединять, а не с RXD.
я и так и так пробовал, не работает ведь...

warning дает, порты становятьсья желтыми и в терминале ничево не печатает... как же у вас заработало?
Реклама
Эиком - электронные компоненты и радиодетали
Встал на лапы
Сообщения: 136
Зарегистрирован: Ср янв 23, 2013 10:58:31

Сообщение Dessp »

ChipKiller писал(а):приклепляю протеус и ассемблер код
спасибо, снял ком порт и подсоеденил монитор как у вас, все заработало. но почему не работает с ком портом? можете писумонить в схему ком порт и показать работу?

и еше вопрос : у вас в коде написано

outi UCSRC,(1<<USBS)|(3<<UCSZ0) ; 8-bit, 1 Stop Bit

USBS если ставитья 1 то ето не означает что стоп битов будет два? я собераю на атини2313 и там в даташите так было написано, или я что то путаю?
Реклама
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Сообщение a_skr »

модель
Вложения
proteus.zip
(17.37 КБ) 123 скачивания
Реклама
Встал на лапы
Сообщения: 136
Зарегистрирован: Ср янв 23, 2013 10:58:31

Сообщение Dessp »

a_skr писал(а):модель

спасибо, все работает.

обясните пожалуиста еше вот это

ldi temp,(1<<UCSZ0)|(1<<UCSZ1)
out UCSRC,temp

и так работает и так работает

ldi temp,(1<<USBS)|(1<<UCSZ0)|(1<<UCSZ1)
out UCSRC,temp

как же так?
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Сообщение a_skr »

лишний стоп-бит никому не мешает ;)
Встал на лапы
Сообщения: 136
Зарегистрирован: Ср янв 23, 2013 10:58:31

Сообщение Dessp »

У меня еше один вопрос. Скажите пжл. почему виртуальный терминал когда подключаешь то провода инвертировать надо (td -> rd, rd -> td) а когда именно к ком порту подключаешь мк, то не надо? как так в чем разница?

спасибо
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Сообщение a_skr »

tx - передатчик - выход. rx - приемник - вход.
когда подключаете виртуальный терминал - отдельное устройство (хоть и виртуальное) - его вход соединяете с выходом контроллера. все логично.
COMPIM - это просто прослойка-соединитель между контроллером в симуляции и реальным КОМ-портом - выход контроллера транслируется на выход реального КОМ-порта - передатчик МК "протягивается" к передатчику порта.
Встал на лапы
Сообщения: 136
Зарегистрирован: Ср янв 23, 2013 10:58:31

Сообщение Dessp »

a_skr писал(а):выход контроллера транслируется на выход реального КОМ-порта
возможно вы имелли ввиду ВХОД реального ком порта?

как я понял из вашего обяснения, ком порт в протеусе не совсем ком порт , так?

тоесть если я уже буду в реальнои схеме мои мк соеденять с ком портом компютера, мне нужно соеденить его как с виртуалным термиламом, тоесть td -> rd, rd -> td, правильно?

и еше вопрос, если я случаино там что то не так соеденю, я могу испотртить порт или нет?

спасибо
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Сообщение a_skr »

Dessp писал(а):
a_skr писал(а):выход контроллера транслируется на выход реального КОМ-порта
возможно вы имелли ввиду ВХОД реального ком порта?
нет, я имел в виду выход.
Dessp писал(а):как я понял из вашего обяснения, ком порт в протеусе не совсем ком порт , так?
COMPIM в протеусе позволяет соединить Ваш виртуальный МК с реальным другим устройством по КОМ-порту, поэтому выход с МК транслируется на выход КОМ-порта, который, в свою очередь, можете подключить ко входу другого КОМ-порта или устройства.
Dessp писал(а):тоесть если я уже буду в реальнои схеме мои мк соеденять с ком портом компютера, мне нужно соеденить его как с виртуалным термиламом, тоесть td -> rd, rd -> td, правильно?
да. и про преобразователь уровней не забывать (MAX232 или что-то в этом роде).
Dessp писал(а):и еше вопрос, если я случаино там что то не так соеденю, я могу испотртить порт или нет?
скорее нет, чем да, но все возможно.
Ответить

Вернуться в «AVR»