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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Непонятка с USART в Tiny2313, В протеусе работает, в контроллере нет
defunct
сообщение Feb 27 2008, 12:03
Сообщение #16


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата
Как я понял в терминале, в виде HEX'a протеуса цифре 1 - соответствует код 31.
Но после замены в коже на этот код, результат, что даже протуес не симулирует, а в первоначальном варианте все работает, а вот в железе ни в какую.....

Неправильно понял. Не 31, а 0x31.

if (rxbuff == 0x31)
Go to the top of the page
 
+Quote Post
vsk
сообщение Feb 27 2008, 12:23
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 11-01-08
Пользователь №: 33 988



Цитата(defunct @ Feb 27 2008, 15:03) *
Неправильно понял. Не 31, а 0x31.

if (rxbuff == 0x31)

И так тоже уже пробовал, результат такой же, в протеусе все живет.... а вот на макетке нет...
Go to the top of the page
 
+Quote Post
bodja74
сообщение Feb 27 2008, 12:27
Сообщение #18


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



vsk

Если даже в протеусе работает ,то на компе должно по любому пахать.

1 Проверте еще раз правильное ли тактирование.
2 Осцилл + прозвонка схемы ,на своем веку я одних только глюкавых МАХ наколлекционировал пол дюжины.Или один канал не работал или минус не выдавал .Естественно не помешает проверить питание,шнуры,пайку ,дорожки и т.д.
Все это решается за 15 минут smile.gif
Go to the top of the page
 
+Quote Post
defunct
сообщение Feb 27 2008, 12:30
Сообщение #19


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(vsk @ Feb 27 2008, 14:23) *
И так тоже уже пробовал, результат такой же, в протеусе все живет.... а вот на макетке нет...

sendString("Welcome to Remote Reset\0");
В реальном железе эта строка выводится правильно или криво?
если она выводится криво, то приведите, что именно вы получаете в терминале (для наглядности в hex).

Цитата
Если даже в протеусе работает ,то на компе должно по любому пахать.

Протеус это не показатель.
но должен согласиться с Вами, что если в симуляторе что-то работает, а в железе нет, может означать проблему тактирования.
надо проверить тактируется ли чип реально 4Mhz (а не от 4Mhz / 8), и соответвует ли делитеть для UART'a.
Go to the top of the page
 
+Quote Post
vsk
сообщение Feb 27 2008, 12:37
Сообщение #20


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 11-01-08
Пользователь №: 33 988



Цитата(bodja74 @ Feb 27 2008, 15:27) *
vsk

Если даже в протеусе работает ,то на компе должно по любому пахать.

1 Проверте еще раз правильное ли тактирование.
2 Осцилл + прозвонка схемы ,на своем веку я одних только глюкавых МАХ наколлекционировал пол дюжины.Или один канал не работал или минус не выдавал .Естественно не помешает проверить питание,шнуры,пайку ,дорожки и т.д.
Все это решается за 15 минут smile.gif

Max232 работает, я ему заворачивал сигнал, контроллер тоже пашет, на своей частоте должно быть,
в комп хоть мусор но вижу(вернее текст, но с потерями букв, если убрать полностью прерывание,
и сразу в цикле писать в порт, то ни символа не теряется).
Если поставить в прерывании подергать ножкой, то тоже работает, значит что то получает.
Go to the top of the page
 
+Quote Post
vsk
сообщение Feb 27 2008, 15:28
Сообщение #21


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 11-01-08
Пользователь №: 33 988



Цитата(defunct @ Feb 27 2008, 15:30) *
sendString("Welcome to Remote Reset\0");
В реальном железе эта строка выводится правильно или криво?
если она выводится криво, то приведите, что именно вы получаете в терминале (для наглядности в hex).
Протеус это не показатель.
но должен согласиться с Вами, что если в симуляторе что-то работает, а в железе нет, может означать проблему тактирования.
надо проверить тактируется ли чип реально 4Mhz (а не от 4Mhz / 8), и соответвует ли делитеть для UART'a.


В терминале получаем строку Welcoe to emote Rese - приблизительно этого вида.
А делитель uart вроде корректно расчитывается по формуле.
Go to the top of the page
 
+Quote Post
defunct
сообщение Feb 27 2008, 15:33
Сообщение #22


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(vsk @ Feb 27 2008, 17:28) *
В терминале получаем строку Welcoe to emote Rese - приблизительно этого вида.
А делитель uart вроде корректно расчитывается по формуле.

1. Попробуйте проверять вместо UDRE, !TXC флаг.
2. Раз символов меньше чем ожидалось можно предположить, что скорость UART'a получилась выше ожидаемых 9600 - попробуйте понизить частоту МК или увеличить значение UBRR.
Go to the top of the page
 
+Quote Post
vsk
сообщение Mar 25 2008, 06:36
Сообщение #23


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 11-01-08
Пользователь №: 33 988



Цитата(defunct @ Feb 27 2008, 18:33) *
1. Попробуйте проверять вместо UDRE, !TXC флаг.
2. Раз символов меньше чем ожидалось можно предположить, что скорость UART'a получилась выше ожидаемых 9600 - попробуйте понизить частоту МК или увеличить значение UBRR.

В результате замены еще меньше символов принимаю.
Все варианты вроде перепробовал, но на tiny2313 не катят, хотя на atmega всегда работает и работало.
Еще такой маленький вопрос, если кварц стоит керамический, может быть большой уход частоты, что работает не корректно?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 09:54
Рейтинг@Mail.ru


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