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

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> Проблема с UART в atmega128
slavik.ksu
сообщение Dec 23 2011, 08:30
Сообщение #31


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 15-12-11
Пользователь №: 68 876



Цитата(V_G @ Dec 23 2011, 11:14) *
Фсе ниасилил, НО:
Перед чтением UDR настоятельно рекомендуется считывать регистр статуса для сброса флагов ошибок. Заодно и ошибки приема проанализируйте. Повторяю, чтение статуса ДО чтения UDR

обработчик сделал таким
PriemZavershen:
in r19,UCSRA
in temp,UDR
out PortB,r19
reti
PortB показывает 11100000, то есть ошибок получается нет?
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Dec 23 2011, 10:21
Сообщение #32


Профессионал
*****

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



И уточните ещё , 4 мгц - внешний или внутренний


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
slavik.ksu
сообщение Dec 23 2011, 10:33
Сообщение #33


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 15-12-11
Пользователь №: 68 876



внутренний
Go to the top of the page
 
+Quote Post
V_G
сообщение Dec 23 2011, 11:39
Сообщение #34


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Цитата(slavik.ksu @ Dec 23 2011, 18:30) *
PortB показывает 11100000, то есть ошибок получается нет?

Если функции пинов порта B все на вывод и не переопределены для другой периферии, и если такая комбинация возникает сразу после отсылки байта из компьютера в атмегу, то ошибок приема получается нет. Вы до того светодиодики сбрасываете как-то?
И данные-то из UDR куда выводите?
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Dec 23 2011, 12:39
Сообщение #35


Профессионал
*****

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



Цитата(slavik.ksu @ Dec 23 2011, 14:33) *
внутренний


Возможно в этом все и проблемы, ни есть какое хорошее решение для USART, поиграйтесь подстроечным регистром Oscillator Calibration Register – OSCCAL



--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
slavik.ksu
сообщение Dec 23 2011, 12:48
Сообщение #36


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 15-12-11
Пользователь №: 68 876



Цитата(V_G @ Dec 23 2011, 15:39) *
Если функции пинов порта B все на вывод и не переопределены для другой периферии, и если такая комбинация возникает сразу после отсылки байта из компьютера в атмегу, то ошибок приема получается нет. Вы до того светодиодики сбрасываете как-то?
И данные-то из UDR куда выводите?

данные из UDR вывожу так же на портВ, только уж вы не подумайте что совсем дурак sm.gif Когда проверял состояние регистра UCSRA, данные из UDR не куда не скидывал, так как не имею технической возможности одновременно посмотреть и данные и состояние регистра.
Go to the top of the page
 
+Quote Post
V_G
сообщение Dec 23 2011, 14:21
Сообщение #37


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Возможно, я неправильно сформулировал вопрос, перефразирую и разделю на 2:
1. Если предварительно сбросить все единицы в порту В, то при приеме ОДНОГО байта выставляется ли сразу единица, отвечающая за RXC?
2. В программе с предварительным чтением статуса данные все равно принимаются с ошибками?

Go to the top of the page
 
+Quote Post
slavik.ksu
сообщение Dec 24 2011, 11:24
Сообщение #38


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 15-12-11
Пользователь №: 68 876



Цитата(V_G @ Dec 23 2011, 18:21) *
Возможно, я неправильно сформулировал вопрос, перефразирую и разделю на 2:
1. Если предварительно сбросить все единицы в порту В, то при приеме ОДНОГО байта выставляется ли сразу единица, отвечающая за RXC?

Сбросил в порту В все единицы
clr temp
out PortB, temp
При приеме одного байта содержимое UCSRA = 10100000, то есть RXC = 1
Цитата(V_G @ Dec 23 2011, 18:21) *
2. В программе с предварительным чтением статуса данные все равно принимаются с ошибками?

Да, все равно байт приходит не верно:
програмкой терминал 1.9 посылаю:
$01 приходит 10000001
$02 приходит 10000010
.....
$82 приходит 11000010 вместо 10000010
$41 приходит 10100001 вместо 01000001
Go to the top of the page
 
+Quote Post
V_G
сообщение Dec 24 2011, 11:35
Сообщение #39


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



1. А старший разряд в нуле когда-нибудь бывает? Может, снаружи где замыкание? Выведите напрямую 0 в проблемные разряды, посмотрите.
2. С блокировками все в порядке?
Go to the top of the page
 
+Quote Post
zombi
сообщение Dec 24 2011, 14:50
Сообщение #40


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(slavik.ksu @ Dec 24 2011, 14:24) *
$01 приходит 10000001
$02 приходит 10000010
.....
$82 приходит 11000010 вместо 10000010
$41 приходит 10100001 вместо 01000001


В работоспособности "терминал 1.9" и COM портa PC уверены?
Go to the top of the page
 
+Quote Post
slavik.ksu
сообщение Dec 26 2011, 04:31
Сообщение #41


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 15-12-11
Пользователь №: 68 876



Цитата(V_G @ Dec 24 2011, 15:35) *
1. А старший разряд в нуле когда-нибудь бывает? Может, снаружи где замыкание? Выведите напрямую 0 в проблемные разряды, посмотрите.

Да конечно,
когда пишешь
clr temp
out PortB,temp
показываются все нули!
Цитата(V_G @ Dec 24 2011, 15:35) *
2. С блокировками все в порядке?

не совсем понял про какие блокировки идет речь?

Цитата(zombi @ Dec 24 2011, 18:50) *
В работоспособности "терминал 1.9" и COM портa PC уверены?

Саму терминалку менял , другие програмки ставил, так же с этой ошибкой принимает! так что думаю проблема не в ней!
COM порт тоже работает так как посылаешь:
clr temp
out PortB,temp, показываются все нули

ldi temp, 0b11111111
out PortB,temp // показываются все еденички!
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Dec 26 2011, 10:11
Сообщение #42


Профессионал
*****

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



Поставьте кварц из перечисленных в таблице , "заточенных" под USART и проверьте


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
V_G
сообщение Dec 26 2011, 12:17
Сообщение #43


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Цитата(slavik.ksu @ Dec 26 2011, 14:31) *
не совсем понял про какие блокировки идет речь?

Блокировочные конденсаторы по питанию, номинал и расположение в соответствии с рекомендациями изготовителя

Ну, и верно, с кварцем неплохо бы для начала проверить. Внутренний генератор у этих процев не сильно точный
Go to the top of the page
 
+Quote Post
zombi
сообщение Dec 27 2011, 19:07
Сообщение #44


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(slavik.ksu @ Dec 26 2011, 07:31) *
Цитата(zombi @ Dec 24 2011, 17:50) *

В работоспособности "терминал 1.9" и COM портa PC уверены?

Саму терминалку менял , другие програмки ставил, так же с этой ошибкой принимает! так что думаю проблема не в ней!
COM порт тоже работает так как посылаешь:
clr temp
out PortB,temp, показываются все нули

ldi temp, 0b11111111
out PortB,temp // показываются все еденички!


Я про работоспособность ком порта не AVRa a Вашей PC (Personal Computer) спращивал.
Go to the top of the page
 
+Quote Post
slavik.ksu
сообщение Dec 28 2011, 07:51
Сообщение #45


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 15-12-11
Пользователь №: 68 876



Цитата(zombi @ Dec 27 2011, 23:07) *
Я про работоспособность ком порта не AVRa a Вашей PC (Personal Computer) спращивал.


Да работает исправно.

Цитата(V_G @ Dec 26 2011, 16:17) *
Блокировочные конденсаторы по питанию, номинал и расположение в соответствии с рекомендациями изготовителя

Ну, и верно, с кварцем неплохо бы для начала проверить. Внутренний генератор у этих процев не сильно точный

я пользуюсь отладочной платой STK500, думаю там все по госту разведено.
То есть мне надо внешний кварц поставить? я даже не наю где его взять? у нас в городе есть только одна точка по таким элементам, напишите пожалуйста точное название кварца, я спрошу имеется ли у него в продаже.
Go to the top of the page
 
+Quote Post

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

 


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


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