|
|
  |
Проблема с UART в atmega128 |
|
|
|
Dec 23 2011, 08:30
|
Участник

Группа: Участник
Сообщений: 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, то есть ошибок получается нет?
|
|
|
|
|
Dec 23 2011, 10:33
|
Участник

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

|
внутренний
|
|
|
|
|
Dec 23 2011, 12:48
|
Участник

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

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

Группа: Участник
Сообщений: 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
|
|
|
|
|
Dec 26 2011, 04:31
|
Участник

Группа: Участник
Сообщений: 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 // показываются все еденички!
|
|
|
|
|
Dec 27 2011, 19:07
|

Гуру
     
Группа: Свой
Сообщений: 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) спращивал.
|
|
|
|
|
Dec 28 2011, 07:51
|
Участник

Группа: Участник
Сообщений: 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, думаю там все по госту разведено. То есть мне надо внешний кварц поставить? я даже не наю где его взять? у нас в городе есть только одна точка по таким элементам, напишите пожалуйста точное название кварца, я спрошу имеется ли у него в продаже.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|