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

 
 
> Проблема с 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
Ответов
Палыч
сообщение Feb 18 2008, 10:41
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 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
Сообщение #3


Гуру
******

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



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


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
QuickWitted
сообщение Feb 19 2008, 04:06
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 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



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 07:33
Рейтинг@Mail.ru


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