Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/14: Рейтинг темы: голосов - 14, средняя оценка - 4.86
jhbuykbu.uhyv
0 / 0 / 0
Регистрация: 10.07.2014
Сообщений: 17
1

Странная проблема uart

14.07.2014, 10:21. Просмотров 2615. Ответов 5
Метки нет (Все метки)

mega8515, от внутреннего генератора 1MHz,

Код
    .include "m8515def.yms"

; Internal Hordware Init  ======================================
.equ    XTAL = 1000000
.equ    baudrate = 9600
.equ    bauddivider = XTAL/(16*baudrate)-1

.def temp =r16

.def    count = r17

uart_init:  LDI     R16, low(bauddivider)
OUT     UBRRL,R16
LDI     R16, high(bauddivider)
OUT     UBRRH,R16

LDI     R16,0
OUT     UCSRA, R16

; Прерывания запрещены, прием-передача разрешен.
LDI     R16, (1<<RXEN)|(1<<TXEN)|(0<<RXCIE)|(0<<TXCIE)|(0<<UDRIE)
OUT     UCSRB, R16

; Формат кадра - 8 бит, пишем в регистр UCSRC, за это отвечает бит селектор
LDI     R16, (1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1)
OUT     UCSRC, R16

ldi     ZH, high(data*2)
ldi     ZL, low(data*2)

ldi     count, 2

uart_snt:
SBIS    UCSRA,UDRE  ; Пропуск если нет флага готовности
RJMP    uart_snt    ; ждем готовности - флага UDRE

lpm temp, Z+
OUT UDR, temp    ; шлем байт
dec count
breq loop
rjmp uart_snt
loop:
rjmp loop

data:
.db "Hello"
На стороне компа pyserial:
Код
>>> ser
Serial<id=0xb7043bac, open=True>(port=/div/ttyUSB0, baudrate=9600, bytesize=8, parity=N, stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
Как видим все настройки совпадают.

Код взял из http://iosyitistromyss.ru/avr-uchebnyj- ... -uart.html

Передаётся правильно только первый байт(иногда):
>>> ser.read()
bH - ну да, первая буква Hello
>>> ser.read()
b\xd9 - тут пошла ересь

Кол-во принятых байт иногда не совпадает.

Преобразователь собран на max232, конденсаторы 1uf, GND с порта соеденена с GND контроллера
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.07.2014, 10:21
Ответы с готовыми решениями:

Проблема с UART
Здраствуйте! Хочу общатся с МК через UART, но возникли проблемы... использую st232bn и МК...

Проблема с UART
День добрый. Продолжаю изучать AVR и наткнулся на проблему при изучении UART(работаю с платой...

Проблема с UART
Здравствуйте. Программирую МК не давно, и поэтому столкнулся с проблемой при работе через UART....

Atmega88 + UART = проблема
Приветствую! Пытаюсь соединить два камня по USORT интерфейсу. Для тактирования в обоих камнях...

Проблема с UART на Atmega128
Всем доброго времение суток, надеюсь поможете разобраться с проблемой. Предистория: устройство на...

5
YTYOUT
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
14.07.2014, 10:53 2
Подключите кварц , лучше с частотами под USORT, и ересь скорее всего пропадет. Про внутренние генераторы AVR в связке с USORT написано не мало.
0
jhbuykbu.uhyv
0 / 0 / 0
Регистрация: 10.07.2014
Сообщений: 17
14.07.2014, 10:57 3
Цитата Сообщение от YTYOUT
Подключите кварц , лучше с частотами под USORT, и ересь скорее всего пропадет. Про внутренние генераторы AVR в связке с USORT написано не мало.
Хорошо, попробую. Но какие еще ногут быть проблемы?
0
YTYOUT
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
14.07.2014, 11:11 4
Да вроде пока нет
0
SOKPOWIHIU
0 / 0 / 0
Регистрация: 11.07.2014
Сообщений: 116
14.07.2014, 15:46 5
Попробуйте вбить значения UBRR ручками и использовать U2X. И формулу вроде как лучше записать (F_CPU/16/BAUDRETE-1), через два деления. Просто именно в данной комбинации погрешность получается большая: UBRR=6.5, в случае же удвоения получится ровно 13.02, гораздо точнее.
0
jhbuykbu.uhyv
0 / 0 / 0
Регистрация: 10.07.2014
Сообщений: 17
16.07.2014, 09:56 6
Проблема была в соединениях на макетке.
0
16.07.2014, 09:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.07.2014, 09:56

проблема с передачей по UART
Добрый день! Сейчас занимаюсь разработкой одного устройства (контроллер ATmega8535). Оно передает...

Проблема с UART (ATmega88)
Добрый день! Уже долгое время пытаюсь разобраться с работой uart. Наваял программу, по которой мк...

AVR GCC проблема с UART
решил вот лампочками помигать - ambilight сделать - и вот на грабли наткнулся -какая то неведомая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru