реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> USART
MaUrJIu
сообщение Jul 25 2011, 08:31
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 2-04-11
Пользователь №: 64 078



Нужно организовать передачу данных от микросхемы к мк atmega8. Интерфейс передачи синхронный полудуплексный. Т.е. для того чтобы использовать USART я соединил ноги rx и tx. Мк ведомое устройство. Значит инициализирую usart:
Код
USART_Init:    ldi R16,(1<<RXEN)|(1<<TXEN)
            out UCSRB,R16
            ldi R16,(1<<URSEL)|(1<<UMSEL)|(3<<UPM0)|(3<<UCSZ0)
            out UCSRC,R16
            cbi PORTD,4
            ret

И принимаю данные:
Код
USART_Receive:    sbis UCSRA,RXC
            rjmp USART_Receive
            in RXbyte,UDR
            ret

Но это дело не работает. Не могу понять почему. Дайте пожалуйста мне идеи или подскажите, что я делаю не так.
P.S. Или подскажите какую-нибудь микросхемку с данным интерфейсом в протеусе

Сообщение отредактировал MaUrJIu - Jul 25 2011, 08:34
Go to the top of the page
 
+Quote Post
Палыч
сообщение Jul 25 2011, 08:39
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(MaUrJIu @ Jul 25 2011, 12:31) *
Интерфейс передачи синхронный полудуплексный. Т.е. для того чтобы использовать USART я соединил ноги rx и tx.
Ну, раз - синхронный, то ещё - синхроимпульсы (нога ХСК).
Go to the top of the page
 
+Quote Post
MaUrJIu
сообщение Jul 25 2011, 08:50
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 2-04-11
Пользователь №: 64 078



Да, кончено, нога ХСК подсоединена к источнику синхроимпульсов. Но приема почему то не происходит.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Jul 25 2011, 09:24
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(MaUrJIu @ Jul 25 2011, 12:50) *
Но приема почему то не происходит.
Возможно, неправильно установлен UCPOL

P.S. Надеюсь, что PD4 установлена на ввод.
Go to the top of the page
 
+Quote Post
MaUrJIu
сообщение Jul 25 2011, 09:42
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 2-04-11
Пользователь №: 64 078



Действительно перепутал значения. В дш на микросхему написано, что считывать по нарастающему фронту. Установил бит UCPOL в 1.
Код
USART_Init:    ldi R16,(1<<RXEN)|(1<<TXEN)
            out UCSRB,R16
            ldi R16,(1<<URSEL)|(1<<UMSEL)|(3<<UPM0)|(3<<UCSZ0)|(1<<UCPOL)
            out UCSRC,R16
            cbi PORTD,4
            ret

Но все равно не работает пока.
Цитата
P.S. Надеюсь, что PD4 установлена на ввод.

Я сделал так: cbi PORTD,4. Это правильно?


Сообщение отредактировал MaUrJIu - Jul 25 2011, 09:55
Go to the top of the page
 
+Quote Post
Палыч
сообщение Jul 25 2011, 10:09
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(MaUrJIu @ Jul 25 2011, 13:42) *
Код
            cbi PORTD,4

Установлен ли PD4 на ввод?

Управляет направлением в Вашем случае регистр DDRD

Цитата(MaUrJIu @ Jul 25 2011, 13:42) *
Но все равно не работает пока.
Огласите Fosc и Baud Rate
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Jul 25 2011, 10:22
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(Палыч @ Jul 25 2011, 14:09) *
Установлен ли PD4 на ввод?

А в 8-ке по сбросу порты не устанвливаются как входы ? Не работал с ней

Цитата(MaUrJIu @ Jul 25 2011, 13:42) *
Действительно перепутал значения. В дш на микросхему написано, что считывать по нарастающему фронту. Установил бит UCPOL в 1.

Для приема - это спадающий фронт. Нет, sorry,не туда посмотрел


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Палыч
сообщение Jul 25 2011, 11:57
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(ILYAUL @ Jul 25 2011, 14:22) *
А в 8-ке по сбросу порты не устанвливаются как входы ? Не работал с ней
Да, по сбросу - на ввод. Но, поскольку, автор привёл только часть программы, не исключено, что где-то нечаенно перевел его на вывод...

Ещё может не работать, если Baud Rate - высокий, а тактовая (Fosc) - низкая для данного Baud Rate ...
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Jul 25 2011, 12:42
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(Палыч @ Jul 25 2011, 15:57) *
Ещё может не работать, если Baud Rate - высокий, а тактовая (Fosc) - низкая для данного Baud Rate ...

Ну с этим я полностью согласен. beer.gif Там Baud Rate <Fosc/4 должон быть, как минимум.

Но по-моему этим
Цитата
Огласите Fosc и Baud Rate
Вы топикстартера поставили в тупик biggrin.gif Помягче может быть? Частота процессора , скорость обмена sm.gif

Цитата
В дш на микросхему написано, что считывать по нарастающему фронту

Не согласен.
Можно считывать и так и так , но необходимо знать , по какому фронту мастер считает , что выставленный им бит - true и под этот фронт настроить приёмник т.е UCPOL


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Палыч
сообщение Jul 25 2011, 13:05
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(ILYAUL @ Jul 25 2011, 16:42) *
Там Baud Rate < Fosc/4 должон быть, как минимум.

Да, согласно DS (Rev.M стр.133) : Fxck < Fosc/4
Go to the top of the page
 
+Quote Post
MaUrJIu
сообщение Jul 25 2011, 15:21
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 2-04-11
Пользователь №: 64 078



Цитата
Огласите Fosc и Baud Rate

Fosc = 1 МГц
Baud Rate (задает микросхема) = 10-16,7 кГц
Цитата
А в 8-ке по сбросу порты не устанвливаются как входы ?

По умолчанию все биты DDRD установлены в ноль, т.е. наверное настроены как вход.
Я изменил строку:
Код
cbi PORTD,4

на
Код
cbi DDRD,4

но пока не работает...

Сообщение отредактировал MaUrJIu - Jul 25 2011, 15:22
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Jul 25 2011, 15:39
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(MaUrJIu @ Jul 25 2011, 19:21) *
Fosc = 1 МГц
Baud Rate (задает микросхема) = 10-16,7 кГц

По умолчанию все биты DDRD установлены в ноль, т.е. наверное настроены как вход.
Я изменил строку:
Код
cbi PORTD,4

на
Код
cbi DDRD,4

но пока не работает...

Отличненько , а теперь
добавьте
Код
SBI PORTD,4
и проверьте есть единица на шине RX


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
MaUrJIu
сообщение Jul 26 2011, 08:14
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 2-04-11
Пользователь №: 64 078



Цитата(ILYAUL @ Jul 25 2011, 19:39) *
Отличненько , а теперь
добавьте
Код
SBI PORTD,4
и проверьте есть единица на шине RX

Добавил. Единица есть. Но она есть и без этой строчки. У меня же rx и tx соединены.
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Jul 26 2011, 08:19
Сообщение #14


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



У Вас осцил есть , что бы сигналы посмотреть?


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
MaUrJIu
сообщение Jul 26 2011, 08:26
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 2-04-11
Пользователь №: 64 078



Нет к сожалению. Могу посмотреть, но это все нужно делать в универе. А что нужно посмотреть?

Сообщение отредактировал MaUrJIu - Jul 26 2011, 08:27
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th April 2024 - 23:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.02047 секунд с 7
ELECTRONIX ©2004-2016