Страница 1 из 1
atiny2313 UART: не передает
Добавлено: Вт июн 25, 2013 08:46:04
Dessp
Всем привет.
Помогите пожалуйста. Начал изучение UART. зделал инициализацию, пытаюсь передать 8бит в протеусе, а оно не передает, в чем ошибка?
приклепляю протеус и ассемблер код.
Спасибо.
Re: atiny2313 UART: не передает
Добавлено: Вт июн 25, 2013 09:18:45
ChipKiller
Re: atiny2313 UART: не передает
Добавлено: Вт июн 25, 2013 09:20:50
a_skr
всё работает. неправильно COMPIM соединили. TXD надо с TXD соединять, а не с RXD.
Re: atiny2313 UART: не передает
Добавлено: Вт июн 25, 2013 09:49:23
Dessp
a_skr писал(а):всё работает. неправильно COMPIM соединили. TXD надо с TXD соединять, а не с RXD.
я и так и так пробовал, не работает ведь...
warning дает, порты становятьсья желтыми и в терминале ничево не печатает... как же у вас заработало?
Re: atiny2313 UART: не передает
Добавлено: Вт июн 25, 2013 10:04:43
Dessp
спасибо, снял ком порт и подсоеденил монитор как у вас, все заработало. но почему не работает с ком портом? можете писумонить в схему ком порт и показать работу?
и еше вопрос : у вас в коде написано
outi UCSRC,(1<<USBS)|(3<<UCSZ0) ; 8-bit, 1 Stop Bit
USBS если ставитья 1 то ето не означает что стоп битов будет два? я собераю на атини2313 и там в даташите так было написано, или я что то путаю?
Re: atiny2313 UART: не передает
Добавлено: Вт июн 25, 2013 10:11:16
a_skr
модель
Re: atiny2313 UART: не передает
Добавлено: Вт июн 25, 2013 10:22:30
Dessp
a_skr писал(а):модель
спасибо, все работает.
обясните пожалуиста еше вот это
ldi temp,(1<<UCSZ0)|(1<<UCSZ1)
out UCSRC,temp
и так работает и так работает
ldi temp,(1<<USBS)|(1<<UCSZ0)|(1<<UCSZ1)
out UCSRC,temp
как же так?
Re: atiny2313 UART: не передает
Добавлено: Вт июн 25, 2013 11:43:25
a_skr
лишний стоп-бит никому не мешает

Re: atiny2313 UART: не передает
Добавлено: Ср июн 26, 2013 08:52:49
Dessp
У меня еше один вопрос. Скажите пжл. почему виртуальный терминал когда подключаешь то провода инвертировать надо (td -> rd, rd -> td) а когда именно к ком порту подключаешь мк, то не надо? как так в чем разница?
спасибо
Re: atiny2313 UART: не передает
Добавлено: Ср июн 26, 2013 11:39:18
a_skr
tx - передатчик - выход. rx - приемник - вход.
когда подключаете виртуальный терминал - отдельное устройство (хоть и виртуальное) - его вход соединяете с выходом контроллера. все логично.
COMPIM - это просто прослойка-соединитель между контроллером в симуляции и реальным КОМ-портом - выход контроллера транслируется на выход реального КОМ-порта - передатчик МК "протягивается" к передатчику порта.
Re: atiny2313 UART: не передает
Добавлено: Ср июн 26, 2013 12:51:03
Dessp
a_skr писал(а):выход контроллера транслируется на выход реального КОМ-порта
возможно вы имелли ввиду ВХОД реального ком порта?
как я понял из вашего обяснения, ком порт в протеусе не совсем ком порт , так?
тоесть если я уже буду в реальнои схеме мои мк соеденять с ком портом компютера, мне нужно соеденить его как с виртуалным термиламом, тоесть td -> rd, rd -> td, правильно?
и еше вопрос, если я случаино там что то не так соеденю, я могу испотртить порт или нет?
спасибо
Re: atiny2313 UART: не передает
Добавлено: Ср июн 26, 2013 13:09:40
a_skr
Dessp писал(а):a_skr писал(а):выход контроллера транслируется на выход реального КОМ-порта
возможно вы имелли ввиду ВХОД реального ком порта?
нет, я имел в виду выход.
Dessp писал(а):как я понял из вашего обяснения, ком порт в протеусе не совсем ком порт , так?
COMPIM в протеусе позволяет соединить Ваш виртуальный МК с реальным другим устройством по КОМ-порту, поэтому выход с МК транслируется на выход КОМ-порта, который, в свою очередь, можете подключить ко входу другого КОМ-порта или устройства.
Dessp писал(а):тоесть если я уже буду в реальнои схеме мои мк соеденять с ком портом компютера, мне нужно соеденить его как с виртуалным термиламом, тоесть td -> rd, rd -> td, правильно?
да. и про преобразователь уровней не забывать (MAX232 или что-то в этом роде).
Dessp писал(а):и еше вопрос, если я случаино там что то не так соеденю, я могу испотртить порт или нет?
скорее нет, чем да, но все возможно.