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

 
 
> Проблема с ATMega32 и RS232, Не могу запустить...
QuickWitted
сообщение Feb 18 2008, 10:11
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Я работал с мегами 8, 16 и 48...
там всё было нормально - определял все ноги RS232 под вход и
записывал в них 1 (этим подключал подтягивающий резистор),
потом инициализировал RS232 и всё было нормально...

теперь решил собрать на меги 32...
всё делаю так же как и на меге 16, а в комп ничего не передаётся...
полез по ногам светодиодом шарить (через сопротивление 1,5к на землю)

и выясняется у мег 8, 16 и 48 при вставании на TX светодиод горит,
а на меге 32 после инициализации нога ведёт себя как вход...

Так приплыли...
ладно думаю может порт издох... хотя проц новый...
пойдём другим путём - настраиваю ТХ как выход, записываю
в него 1 - инициализирую - проверяю - светодиод горит, но передачи как не было так и нету sad.gif

в чём может быть трабла ?


Инициализирую так:
-----------------------------------------------------------------------------
.equ UART_BAUDRATE = 115200
.equ UART_BAUDK = (CLOCK/(16*UART_BAUDRATE))-1

ldi R16_Tmp1,low(UART_BAUDK) ; Загрузка скорости ком порта
sts UBRRL,R16_Tmp1
ldi R16_Tmp1,high(UART_BAUDK)
sts UBRRH,R16_Tmp1

ldi R16_Tmp1, 0b00000000 ; Clear UART flags
sts UCSRA, R16_Tmp1

ldi R16_Tmp1,(1<<TXEN)|(1<<RXEN)|(1<<RXCIE) ; Еnable receiver and transmitter
sts UCSRB,R16_Tmp1 ; RXCIE - разрешение прерывания по приёму в UDR
; TXCIE - разрешение прерывания по передаче из UDR
; TDRIE - разрешение прерывания по пустому UDR

; ldi R16_Tmp1,(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); Set frame format: 8N1

ldi R16_Tmp1,(1<<UCSZ1)|(1<<UCSZ0) ; Set frame format: 8N1
sts UCSRC,R16_Tmp1
-----------------------------------------------------------------------------,


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 9)
_Pasha
сообщение Feb 18 2008, 10:35
Сообщение #2


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Tx должен быть настроен на выход в любом случае.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Feb 18 2008, 10:41
Сообщение #3


Гуру
******

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



Записывать в регистры нужно, imho, командой out. Сбрасывают флаги - занесением единицы
P.S. Впрочем, записывать можно и sts, вот, только адреса прийдется поправить...
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Feb 18 2008, 11:28
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Если не установить как выход, то некоторые экземпляры могут работать, даже у Меги 128. Может, это и ввело в заблуждение.
А чтобы передача началась, может передать что ? smile.gif


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Палыч
сообщение Feb 18 2008, 11:38
Сообщение #5


Гуру
******

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



Цитата(Dog Pawlowa @ Feb 18 2008, 14:28) *
Если не установить как выход, то некоторые экземпляры могут работать, даже у Меги 128.


Читаем ДШ
Цитата


RXD, Receive Data (Data input pin for the USART). When the USART Receiver is

enabled this pin is configured as an input regardless of the value of DDD0. When the

USART forces this pin to be an input, the pull-up can still be controlled by the PORTD0

bit.

TXD, Transmit Data (Data output pin for the USART). When the USART Transmitter is

enabled, this pin is configured as an output regardless of the value of DDD1.

Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Feb 18 2008, 12:23
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Палыч @ Feb 18 2008, 15:38) *
Читаем ДШ

Прижучили smile.gif
Дело было так. После MSP430 делал что-то на Mеге. Не передает. Смотрю осциллографом - Tx какой-то недоделанный, но есть, зараза. Ругнулся на затейливый Атмел, добавил установку на выход, добавил внешнюю подтяжку (чтобы сеть не положить до инициализации). Все заработало. Но зарубка в памяти осталась. Предлагаете забыть?


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
=GM=
сообщение Feb 18 2008, 12:41
Сообщение #7


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(QuickWitted @ Feb 18 2008, 10:11) *
и выясняется у мег 8, 16 и 48 при вставании на TX светодиод горит, а на меге 32 после инициализации нога ведёт себя как вход...

Чудес не бывает, если после инициализации нога не встала на выход - значит вы ее не проинициализировали вот здесь
Цитата(QuickWitted @ Feb 18 2008, 10:11) *
ldi R16_Tmp1,(1<<TXEN)|(1<<RXEN)|(1<<RXCIE) ; Еnable receiver and transmitter
sts UCSRB,R16_Tmp1

Проверьте точно ли тот адрес UCSRB используете. Должен быть 0х2А для команды sts или 0х0А для команды out

Цитата(QuickWitted @ Feb 18 2008, 10:11) *
ldi R16_Tmp1,(1<<UCSZ1)|(1<<UCSZ0) ; Set frame format: 8N1
sts UCSRC,R16_Tmp1

Для доступа к регистру UCSRC надо установить бит URSEL в 1, вы этого не делаете. Ну и опять же проверьте адрес регистра. Лучше пользуйтесь командой out и адресом 0х20


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
QuickWitted
сообщение Feb 19 2008, 04:06
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Цитата(=GM= @ Feb 18 2008, 17:41) *
Чудес не бывает, если после инициализации нога не встала на выход - значит вы ее не проинициализировали вот здесь


Спасибо - сейчас проверю...


Цитата(=GM= @ Feb 18 2008, 17:41) *
Проверьте точно ли тот адрес UCSRB используете. Должен быть 0х2А для команды sts или 0х0А для команды out


Проверил...
По запарке подгрузил не тот файл констант...
Большое спасибо... Запустилось....

Сообщение отредактировал QuickWitted - Feb 19 2008, 04:09


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
defunct
сообщение Feb 19 2008, 15:28
Сообщение #9


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(_Pasha @ Feb 18 2008, 12:35) *
Tx должен быть настроен на выход в любом случае.

не должен.
Сам настроится при включении соотв. периферии.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 19 2008, 17:29
Сообщение #10


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(defunct @ Feb 19 2008, 18:28) *
не должен.
Сам настроится при включении соотв. периферии.

Ой, в сусанины записался. Извините. Пошел курить даташиты.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 21:41
Рейтинг@Mail.ru


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