ATMEGA8535, проблемы с USART

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
yuroy
Родился
Сообщения: 3
Зарегистрирован: Чт янв 20, 2011 20:07:12
Откуда: Томск

ATMEGA8535, проблемы с USART

Сообщение yuroy »

Добрый день програмисты!
Мучаюсь с ATMEGA8535. Хочу передать информацию, а именно в моём случае три буквы "AVR" с мокроконтроллера через USART на СOM порт компьютера в программу hiper terminal.

Программка зашиваемая в контроллер вот:

.include "m8535def.inc" ; Присоединение файла описаний
.list ; Включение листинга
.def temp=R16 ; Определение главного рабочего регистра
.def count=R17 ; Счётчик
.equ start=0 ; 0 вывод порта PD
.def rab=r18
.org 0 ; Установка текущегно адреса в ноль
rjmp init
;---------------Инициализация микроконтроллера------------------
init:
;-----------------Инициализация стёка--------------------------
ldi temp, high(RAMEND) ; Выбор адреса вершины стёка
out SPH, temp ; Запись его в регистр стёка
ldi temp, low(RAMEND)
out SPL, temp
ldi ZL, low(text*2)
ldi ZH, high(text*2)
ldi count, 3 ; Установка счётчика байтов
ldi temp, 0 ; Запись 0 в temp
out DDRC, temp ; Порт D на ввод
ldi temp, 0xFF
out PORTC, temp ; Подключаем внутренние резисторы

;---------------Настройка UART на передачу данных---------------
ldi temp, 0x33 ;Настройка скорости
out UBRRL, temp

ldi temp, 0
out UCSRA, temp

ldi temp, (1<<RXEN)|(1<<TXEN)|(0<<RXCIE)|(0<<TXCIE)|(0<<UDRIE)
out UCSRB, temp

ldi temp, (1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1)
out UCSRC, temp
WAIT_START: sbic PINC, start ; Ожидание нажатия кнопки
rjmp WAIT_START
OUTPUT: lpm ; Загрузка байта из програмной памяти в r0
out UDR, r0 ; Вывод этого байта в регистр данных(пер-ик)
sbi UCSRA, TXC ; Сброс флага ТХС
WAIT: sbic UCSRA, TXC ; Ожидание завершения передачи
rjmp next
rjmp WAIT
next: adiw zl,1 ; Увеличение адреса на 1
dec count ; Уменьшение счётчика на 1
brne OUTPUT ; Продолжение вывода(перейти сли Z не равно 0)
fin: rjmp fin ; Передача завершена
text: .db 'A','V','R' ; Текст сообщения

Пишу а AVR studio. Когда запускаю пошаговое выполнение программы в AVR studio, то нужный код поступает в регистр UDR. Когда прошиваю программу в контроллер , то на выходе TXD нет никакого кода. Симулирую программу в протеусе, тоже на выходе TXD ничего нет.
Вопрос в том куда этот код девается, как его на TXD вывести?
Может в программу ещё што-то надо дописать....?
Много книжек пересмотрел, не могу найти нужный пример.
Может как-нибудь надо ещё и TDX инициализировать???
Выручайте....
Последний раз редактировалось yuroy Пт янв 21, 2011 17:39:13, всего редактировалось 1 раз.
Реклама
Аватара пользователя
Сериг
Это не хвост, это антенна
Сообщения: 1451
Зарегистрирован: Пт фев 19, 2010 19:39:28
Откуда: Москва

Re: ATMEGA8535, проблемы с USART

Сообщение Сериг »

только что через макс 232 пытался с терминалом связатся ,не хочет... напряжение меряю в вольтах...
Реклама
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: ATMEGA8535, проблемы с USART

Сообщение Engineer_Keen »

На какой частоте работает контроллер, и какая скорость задана в терминале? Проверял в том-же протеусе: частота 8МГц, скорость 9600, в UBRL загружено 0x33 - на терминале вылезает ваше "AVR" :)
yuroy
Родился
Сообщения: 3
Зарегистрирован: Чт янв 20, 2011 20:07:12
Откуда: Томск

Re: ATMEGA8535, проблемы с USART

Сообщение yuroy »

Engineer_Keen писал(а):На какой частоте работает контроллер, и какая скорость задана в терминале? Проверял в том-же протеусе: частота 8МГц, скорость 9600, в UBRL загружено 0x33 - на терминале вылезает ваше "AVR" :)
Благодарю за помощь! У меня тоже заработало в протеусе! До этого запускал на частоте 1МГц. Сейчас в протеусе попробовал разные частоты, разные скорости обмена, почему-то только на частоте 8 МГц и со скоростью 9600 работает(в протеусе). Не могу понять почему. На других частотах выдаёт непонятные символы. Ну хорошо, что теперь знаю почему не работало. Я думал, что всё таки дело в программе.
В понедельник проверю на железе - отпишусь. :)
Последний раз редактировалось yuroy Пт янв 21, 2011 17:43:53, всего редактировалось 1 раз.
Реклама
Эиком - электронные компоненты и радиодетали
yuroy
Родился
Сообщения: 3
Зарегистрирован: Чт янв 20, 2011 20:07:12
Откуда: Томск

Re: ATMEGA8535, проблемы с USART

Сообщение yuroy »

Сериг писал(а):только что через макс 232 пытался с терминалом связатся ,не хочет... напряжение меряю в вольтах...
Ну мы вроде бы разобрались. Попробуй прошить мою программку, она работает. Частота контроллера 8 МГц.
Реклама
Аватара пользователя
Сериг
Это не хвост, это антенна
Сообщения: 1451
Зарегистрирован: Пт фев 19, 2010 19:39:28
Откуда: Москва

Re: ATMEGA8535, проблемы с USART

Сообщение Сериг »

не я на асме не шарю....
Реклама
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: ATMEGA8535, проблемы с USART

Сообщение ploop »

Вот тут неплохо разжевано. Главное основные грабли описаны. http://easyelectronics.ru/avr-uchebnyj- ... -uart.html
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»