Обсуждаем контроллеры компании Atmel.
Ответить

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

Вт июн 25, 2013 08:46:04

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

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

Спасибо.
Вложения
first_run.asm
asm
(1.03 KiB) Скачиваний: 165
proteus.rar
prot
(31.29 KiB) Скачиваний: 139

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

Вт июн 25, 2013 09:18:45

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

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

Вт июн 25, 2013 09:20:50

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

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

Вт июн 25, 2013 09:49:23

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


я и так и так пробовал, не работает ведь...

warning дает, порты становятьсья желтыми и в терминале ничево не печатает... как же у вас заработало?

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

Вт июн 25, 2013 10:04:43

ChipKiller писал(а):приклепляю протеус и ассемблер код


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

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

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

USBS если ставитья 1 то ето не означает что стоп битов будет два? я собераю на атини2313 и там в даташите так было написано, или я что то путаю?

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

Вт июн 25, 2013 10:11:16

модель
Вложения
proteus.zip
(17.37 KiB) Скачиваний: 112

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

Вт июн 25, 2013 10:22:30

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

лишний стоп-бит никому не мешает ;)

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

Ср июн 26, 2013 08:52:49

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

спасибо

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

Ср июн 26, 2013 11:39:18

tx - передатчик - выход. rx - приемник - вход.
когда подключаете виртуальный терминал - отдельное устройство (хоть и виртуальное) - его вход соединяете с выходом контроллера. все логично.
COMPIM - это просто прослойка-соединитель между контроллером в симуляции и реальным КОМ-портом - выход контроллера транслируется на выход реального КОМ-порта - передатчик МК "протягивается" к передатчику порта.

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

Ср июн 26, 2013 12:51:03

a_skr писал(а):выход контроллера транслируется на выход реального КОМ-порта


возможно вы имелли ввиду ВХОД реального ком порта?

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

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

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

спасибо

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

Ср июн 26, 2013 13:09:40

Dessp писал(а):
a_skr писал(а):выход контроллера транслируется на выход реального КОМ-порта

возможно вы имелли ввиду ВХОД реального ком порта?

нет, я имел в виду выход.

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

COMPIM в протеусе позволяет соединить Ваш виртуальный МК с реальным другим устройством по КОМ-порту, поэтому выход с МК транслируется на выход КОМ-порта, который, в свою очередь, можете подключить ко входу другого КОМ-порта или устройства.

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

да. и про преобразователь уровней не забывать (MAX232 или что-то в этом роде).

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

скорее нет, чем да, но все возможно.
Ответить