Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы
Непрочитано 01.03.2016, 15:56  
udlcvn
Прохожий
 
Регистрация: 24.02.2016
Сообщений: 9
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
udlcvn на пути к лучшему
По умолчанию Usart В Mega48Pa Принимает И Передает даже не мусор. Смотреть внутри.

В место любых данных передает только 0 или 128.
Программа просто передает известные значения но получаем в место отправленных только 0 или 128.
Код можно пропустить и прочитать до конца сообщение для понимания проблемы.

Настраеваю вот так
;================================================= ================================================== =======================
;===================== Константы UART ================================================== ===================================
.equ ON_UCSR0A = (0‹‹RXC0 | 0‹‹TXC0 | 0‹‹UDRE0 | 0‹‹FE0 | 0‹‹DOR0 | 0‹‹UPE0 | 0‹‹U2X0 | 0‹‹MPCM0)

.equ ON_UCSR0B = (1‹‹RXCIE0 | 0‹‹TXCIE0 | 0‹‹UDRIE0 | 1‹‹RXEN0 | 1‹‹TXEN0 | 0‹‹UCSZ02 | 0‹‹RXB80 | 0‹‹TXB80)

.equ ON_UCSR0C = (0‹‹UMSEL01 | 0‹‹UMSEL00 | 0‹‹UPM01 | 0‹‹UPM00 | 1‹‹USBS0 | 1‹‹UCSZ01 | 1‹‹UCSZ00 | 0‹‹UCPOL0)

; Настройка скорости
.equ ON_UBRR0H = 0
.equ ON_UBRR0L = 25
;===================== константы UART ================================================== ===================================
;================================================= ================================================== =======================

макрос выкладую чтобы видно было че за команда "uout"
.macro uout
.if @0‹0x40
out @0,@1
.else
sts @0,@1
.endif
.endm


потом записую так

//************************************************** ***********************************
;===================== Настройка UART =================================================
ldi temp, ON_UCSR0A
uout UCSR0A, temp

ldi temp, ON_UCSR0B
uout UCSR0B, temp

ldi temp, ON_UCSR0C
uout UCSR0C, temp

; Настройка скорости
ldi temp, ON_UBRR0H
uout UBRR0H, temp

ldi temp, ON_UBRR0L
uout UBRR0L, temp
;===================== настройка UART =================================================
//************************************************** ***********************************


специально для проверки организовал такой цикл.

main:

ldi temp, 255
inc time1
cp time1, temp
brne main


ldi temp, 255
inc time2
cp time2, temp
brne main

inc temp2
uout udr0, temp2

rjmp main

он отправляет раза два за секунду байты каждый раз больше на единицу но приходит в место данных только 128 и 0

вот копи паст 128 0 128 128 0 128 128 128 128 128 128 128 0 128 128 128 128 128 128 0 128 128 128 128 128 0 128 128 0 128 0 0 128 128 0 128 0 128 128 128 128 128 128 0 128 128 128 128 128 0 128 128 0 128 0 128 128 128 128 128 0 128 128 128 128
а должно быть
1 2 3 4 5 6 и так далее по кругу.

До этого организовывал передачю на контроллер который в прерывании приема отправлял байт назад.
И было замечено что при отправке байта примерно 190 и больше по светодиоду было видно что контроллер вообще ниче не отправляет да и принятых в компе байт не добавлялось.

Предположение что не принимает старт бит а прием байтов с маленьким значением из за большого числа нулей воспринимается как старт бит.
скорости вроде правильные.
кварц 8МГц
ошибка 0.2%

скорость порта
serialPort1.BaudRate = 19200;

Хочю отметить что прием передачю на мега8 я уже организовывал таких проблем небыло.
Реклама:
udlcvn вне форума  
Непрочитано 01.03.2016, 16:46  
ForcePoint
Почётный гражданин KAZUS.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,923
Сказал спасибо: 2,985
Сказали Спасибо 3,163 раз(а) в 2,147 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: Usart В Mega48Pa Принимает И Передает даже не мусор. Смотреть внутри.

Проверьте FUSE-бит CKDIV8. С завода он установлен так ("0"), что частота кварца делится на 8.
ForcePoint на форуме  
Непрочитано 02.03.2016, 01:47  
udlcvn
Прохожий
 
Регистрация: 24.02.2016
Сообщений: 9
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
udlcvn на пути к лучшему
По умолчанию Re: Usart В Mega48Pa Принимает И Передает даже не мусор. Смотреть внутри.

Точно FUSE-бит CKDIV8 исправил все заработало.
udlcvn вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Алкоголь, алкоголизм... (отделено) Глaвврач Отвлекитесь, эмбеддеры! 289 22.04.2012 12:26


Часовой пояс GMT +4, время: 13:24.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot