|
Проблема с UART в atmega128 |
|
|
|
Dec 6 2011, 07:04
|
Группа: Новичок
Сообщений: 8
Регистрация: 6-12-11
Пользователь №: 68 700

|
Добрый день. Возникла проблема с приемом по UART от компа на микроконтроллер ATMEGA128. Код программы такой: Код .cseg in r15,UDR0 ldi r17, 47; устанавливаем скорость 9600 out UBRR0L,r17 ldi r16, 18; устанавливаем режим приема out UCSR0B, r16; данных в 8битном пакете Receive: sbis UCSR0A, RXC0; ожидаем приема полного пакета данных rjmp receive in r15, UDR0; загружаем данные в R15 rjmp receive Микроконтроллер тактируется от кварцевого генератора с частотой 7,3728 МГц. Программирую в AVRStudio5. Суть самой проблемы: Сигнал на вход микроконтроллера приходит такой, как надо (проверено осциллографом). Но! Посылая что-то, отличное от 0000 0000, я получаю в регистре R15 0хFF. Скорость передачи и там, и там выставлена 9600. Стоп-бит использую один. Буду благодарен за любые идеи. Заранее спасибо.
|
|
|
|
|
 |
Ответов
|
Dec 22 2011, 12:15
|

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

|
Здесь , где жолжна быть cliCODE Init:
cli
;++++++++++++++ Сдержимое файла INITCORE.INC +++++++++++++++++++++++++ ;==== Инициализация ядра: Память; Регистры; Стек ============= .include "INITCORE.inc" ;++++++++++++++ Конец Содержимого файла INITCORE.INC +++++++++++++++++
;======= Инициализация внутренних периферийных устройств:====== ldi temp , 0b11111111 ; определяем входы\выходы порта В, out DDRB , temp ; 1 делает вывод выходом, 0 - входом! ldi temp , 0b00000000 ; определяем в\в порта D out DDRD , temp
ldi temp , 0b11111111 ; включаем подтяжку (1) для входов порта В out portB , temp ; и задаем начальние состояния выходов ldi temp , 0b00000000 ; то же самое для D out portD , temp
ldi temp, 1<<RXEN|1<<RXCIE|1<<TXen ; разрешаем прием и прерывание по приему по UART out UCSRB, temp
;ldi temp, 1<<TXEN|1<<TXCIE ; разрешаем передачу и прерывание по передачи по UART ;out UCSRB, temp
ldi temp,25 ; задаем скорость UART = 9600 out UBRRL, temp ldi temp, 0 out UBRRH,temp
ldi r16, 1<<URSEL|1<<UCSZ0|1<<UCSZ1 ; 8-мибитный формат посылки out UCSRC,r16
in temp , UCSRC ;UBRRH; out POrtB,temp
sei
дальше там простто цикл: Start: nop rjmp Start
2. Прочтите регистры UBRRH и UCSRC после записи в них вот здесь не пойму как правильно прочитать: ведь эти два регистра с одним адресом памяти, и поэтому читаются странно, показываю все варианты как пробовал считывать: Код ldi r16, 1<<URSEL|1<<UCSZ0|1<<UCSZ1 out UCSRC,r16 in temp , UCSRC out PortB,temp ldi temp,25 ; UART = 9600 out UBRRL, temp ldi temp, 0 out UBRRH,temp in temp , UBRRH out PortB,temp Цитата in temp , UCSRC out POrtB,temp на светодиодах показывает 00000110 (добились что надо, НО! если последние две строки заменяем на in temp , UBRRH out POrtB,temp получаем 00000110,то есть то же самое) Вывод: то что мы записываем в UCSRC, то же самое записывается в UBRRH ? получается бит URSELникак е влияет на запись регистров что ли? Вы не изменили направление чтения , поэтому прочитался снова UCSRC
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
Сообщений в этой теме
Whosthere Проблема с UART в atmega128 Dec 6 2011, 07:04 Whosthere Микроконтроллер установлен на плате savvy128
Прин... Dec 6 2011, 08:11 Палыч Цитата(Whosthere @ Dec 6 2011, 11:04) Буд... Dec 6 2011, 09:40 kolobok0 Цитата(Палыч @ Dec 6 2011, 13:40) ...C за... Dec 6 2011, 11:05  Палыч Цитата(kolobok0 @ Dec 6 2011, 15:05) точн... Dec 6 2011, 11:14 ILYAUL Кодldi r16, 18; устанавливаем режим приема
Когда р... Dec 6 2011, 16:12 Whosthere Насколько я понимаю, fuse 103C у меня отключен (в ... Dec 7 2011, 17:46 Палыч Флаг RXC кто сбрасывать будет ? Dec 7 2011, 18:33 ILYAUL Код , плиз , приведите конечный Dec 7 2011, 19:26 kolobok0 Цитата(Whosthere @ Dec 6 2011, 11:04) ..A... Dec 7 2011, 19:48 Whosthere Спасибо за советы. Пока проверить возможности нет.... Dec 8 2011, 13:54 Whosthere Увы,проблема не решилась, но я заметил очень стран... Dec 13 2011, 07:17 kolobok0 Цитата(Whosthere @ Dec 13 2011, 11:17) Ув... Dec 13 2011, 07:50 Палыч Цитата(Whosthere @ Dec 13 2011, 11:17) Пр... Dec 13 2011, 08:13 Whosthere Вероятно такая запись будет больше понятна.
Код.c... Dec 13 2011, 10:39 kolobok0 Цитата(Whosthere @ Dec 13 2011, 14:39) Ве... Dec 14 2011, 11:04 slavik.ksu у меня вопрос очень похожий:
что то прием идет не ... Dec 15 2011, 12:22 kolobok0 Цитата(slavik.ksu @ Dec 15 2011, 16:22) .... Dec 16 2011, 07:57 slavik.ksu Цитата(kolobok0 @ Dec 16 2011, 11:57) оче... Dec 19 2011, 06:53 kolobok0 Цитата(slavik.ksu @ Dec 19 2011, 10:53) п... Dec 19 2011, 11:17 slavik.ksu ; выполняемые функции: через модуль UART от компью... Dec 19 2011, 18:00 kolobok0 Цитата(slavik.ksu @ Dec 19 2011, 22:00) l... Dec 19 2011, 18:43 ILYAUL Частота проца , что 4 мгц? Dec 19 2011, 18:21 slavik.ksu Да, МК работает на 4МГц.
Добавил инициализацию вер... Dec 20 2011, 14:12 ILYAUL Цитата(slavik.ksu @ Dec 20 2011, 18:12) Д... Dec 20 2011, 18:51 kolobok0 Цитата(slavik.ksu @ Dec 20 2011, 18:12) .... Dec 21 2011, 11:11 slavik.ksu Цитата(ILYAUL @ Dec 20 2011, 22:51) 1. По... Dec 22 2011, 05:57 slavik.ksu Цитата(ILYAUL @ Dec 22 2011, 16:15) 2. Пр... Dec 23 2011, 07:06 V_G Фсе ниасилил, НО:
Перед чтением UDR настоятельно р... Dec 23 2011, 07:14 slavik.ksu Цитата(V_G @ Dec 23 2011, 11:14) Фсе ниас... Dec 23 2011, 08:30 V_G Цитата(slavik.ksu @ Dec 23 2011, 18:30) P... Dec 23 2011, 11:39 ILYAUL И уточните ещё , 4 мгц - внешний или внутренний Dec 23 2011, 10:21 slavik.ksu внутренний Dec 23 2011, 10:33 ILYAUL Цитата(slavik.ksu @ Dec 23 2011, 14:33) в... Dec 23 2011, 12:39 slavik.ksu Цитата(V_G @ Dec 23 2011, 15:39) Если фун... Dec 23 2011, 12:48 V_G Возможно, я неправильно сформулировал вопрос, пере... Dec 23 2011, 14:21 slavik.ksu Цитата(V_G @ Dec 23 2011, 18:21) Возможно... Dec 24 2011, 11:24 zombi Цитата(slavik.ksu @ Dec 24 2011, 14:24) ... Dec 24 2011, 14:50 V_G 1. А старший разряд в нуле когда-нибудь бывает? Мо... Dec 24 2011, 11:35 slavik.ksu Цитата(V_G @ Dec 24 2011, 15:35) 1. А ста... Dec 26 2011, 04:31 V_G Цитата(slavik.ksu @ Dec 26 2011, 14:31) н... Dec 26 2011, 12:17 zombi Цитата(slavik.ksu @ Dec 26 2011, 07:31) Ц... Dec 27 2011, 19:07 ILYAUL Поставьте кварц из перечисленных в таблице , ... Dec 26 2011, 10:11 slavik.ksu Цитата(zombi @ Dec 27 2011, 23:07) Я про ... Dec 28 2011, 07:51 V_G Так и называется, кварц (или кварцевый резонатор, ... Dec 28 2011, 10:30
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|