Метценгерштейн
Jan 29 2011, 18:10
т.е. если на несколько часов оставить программу работать, с разрешенным USARTом и включенной Terraterm, то просмотрев логи, периодически проскакивает русская буква "я". Обычно целые строки из яяяяяяяяяяяяяяяяяяяяяяя. Происходит спонтанно это, программа крутится по циклу, этой я в программе, есс-нно нет.
Кто- нибудь сталкивался? Где может быть засада? Может питание грязное?
Дмитрий Ветра
Jan 29 2011, 18:39
Цитата(Метценгерштейн @ Jan 29 2011, 20:10)

т.е. если на несколько часов оставить программу работать, с разрешенным USARTом и включенной Terraterm, то просмотрев логи, периодически проскакивает русская буква "я". Обычно целые строки из яяяяяяяяяяяяяяяяяяяяяяя. Происходит спонтанно это, программа крутится по циклу, этой я в программе, есс-нно нет.
Кто- нибудь сталкивался? Где может быть засада? Может питание грязное?
Я бы обратил внимание на то, как сконфигурирован порт PD,1. Питание тоже может сказываться, но при определенных обстоятельствах, я с этого начал пост.
AHTOXA
Jan 29 2011, 19:15
Код буквы "я" в кодировке windows-1251 - 0xFF (все биты - единички).
То есть, терминалу достаточно случайно поймать стартовый бит, и получится "я". Смотрите помехи.
Метценгерштейн
Jan 29 2011, 19:31
Код
PORTD = (0<<7)|(0<<6)|(0<<5)|(0<<4)|(0<<3)|(0<<2)|(0<<1)|(0<<0);
DDRD =(1<<7)|(0<<6)|(0<<5)|(1<<4)|(1<<3)|(1<<2)|(1<<1)|(1<<0);
Т.е. полагаете, просто наводки на провода идут, и терминалка ловит наводки и выводит их как"я" ?
rx3apf
Jan 29 2011, 19:40
Цитата(Метценгерштейн @ Jan 29 2011, 22:31)

Т.е. полагаете, просто наводки на провода идут, и терминалка ловит наводки и выводит их как"я" ?
Это один из вариантов. Другая возможная причина - происходит сброс, и при инициализации UART проскакивает ложный старт-бит (если порт конфигурируется прежде чем UART, и/или нет подтяжек на входе трансивера).
Метценгерштейн
Jan 29 2011, 19:50
сначала я конфигурирую УАРТ, затем порт. Но я это делаю в IAR, т.е. в ф-ии
char __low_level_init (void) { }
Возможно, ИАР при выходе из этой ф-ии сам как-то хитро инициализирует контроллер... мысль. Хотя, возможно, просто помехи.
Пока не переделал печать, как от помех избавиться можно? Кондеров навешать сигнальные провода, и заземлить их?
Дмитрий Ветра
Jan 29 2011, 20:34
Цитата(Метценгерштейн @ Jan 29 2011, 21:31)

Код
PORTD = (0<<7)|(0<<6)|(0<<5)|(0<<4)|(0<<3)|(0<<2)|(0<<1)|(0<<0);
DDRD =(1<<7)|(0<<6)|(0<<5)|(1<<4)|(1<<3)|(1<<2)|(1<<1)|(1<<0);
Т.е. полагаете, просто наводки на провода идут, и терминалка ловит наводки и выводит их как"я" ?
Я бы, все же, держал PD,1 подтянутым к плюсу - PORTD = ...|(1<<1)|...
Метценгерштейн
Jan 29 2011, 20:43
хорошо, пока что промыл плату еще раз - сохнет.
у меня в схеме уровень PD1 5 вольт надо было привести к 3,3 уровню для модема. т.е. я его завожу на делитель из двух резисторов 4,3 и 5,6 кОм.
Уверены, что стоит подтянуть PD1? Мог мой делитель повлиять?
Dog Pawlowa
Jan 29 2011, 20:50
Цитата(Метценгерштейн @ Jan 30 2011, 00:43)

Уверены, что стоит подтянуть PD1?
Конечно.
Но если контроллер сбрасывается, то это нужно отловить обязательно, даже если подтяните вывод и эффект пропадет.
Нужно бороться со сбросом в первую очередь.
А подтяжка очевидна сама по себе.
Дмитрий Ветра
Jan 29 2011, 20:51
Цитата(Метценгерштейн @ Jan 29 2011, 22:43)

хорошо, пока что промыл плату еще раз - сохнет.
у меня в схеме уровень PD1 5 вольт надо было привести к 3,3 уровню для модема. т.е. я его завожу на делитель из двух резисторов 4,3 и 5,6 кОм.
Уверены, что стоит подтянуть PD1? Мог мой делитель повлиять?
Дело в том, что согласно Вашему коду, PD,1 проинициализирован как выход и притянут к корпусу. Т.е. внешние подтяжки ему по-барабану. Тогда уж лучше PD,1 определить как вход и притянуть к плюсу.
Метценгерштейн
Jan 29 2011, 21:05
Все, спасибо.
подтяну PD1 и буду с питанием как- то фильтровать.
demiurg_spb
Jan 29 2011, 21:07
настройте ногу TX на вывод с логической 1
настройте ногу RX на ввод с пулапом
Потыкайтесь осциллографом к этим линиям и понаблюдайте картинки, сравните то что Вы видите с желаемым - все вопросы отпадут.
Осциллограф - это необходимость для программиста контроллеров...
Удачи!
Метценгерштейн
Jan 30 2011, 08:58
еще хотел спросить, раз речь зашла про внутреннюю подтяжку- ее без проблем можно использовать для, например, подтяжки кнопочки к +5, чтобы отлавливать замыкание на землю? Или есть какие- то причины, почему все- же лучше использовать внешние подтягивающие резисторы?
Цитата(Метценгерштейн @ Jan 29 2011, 21:10)

Кто- нибудь сталкивался? Где может быть засада? Может питание грязное?
А вы на кварце работаете или на встроенной RC-цепочке? Если второе, то от буквы "я", т.к. кода FF, вам никогда не избавиться.
Метценгерштейн
Jan 30 2011, 10:16
на кварце
rx3apf
Jan 30 2011, 10:19
Цитата(Метценгерштейн @ Jan 30 2011, 11:58)

еще хотел спросить, раз речь зашла про внутреннюю подтяжку- ее без проблем можно использовать для, например, подтяжки кнопочки к +5, чтобы отлавливать замыкание на землю?
Вполне можно использовать и внутреннюю подтяжку.
demiurg_spb
Jan 30 2011, 11:53
Цитата(Метценгерштейн @ Jan 30 2011, 11:58)

еще хотел спросить, раз речь зашла про внутреннюю подтяжку- ее без проблем можно использовать для, например, подтяжки кнопочки к +5, чтобы отлавливать замыкание на землю?
Да, без проблем можно использовать.
Цитата
Или есть какие- то причины, почему все- же лучше использовать внешние подтягивающие резисторы?
Случаи бывают разные:-)
defunct
Feb 1 2011, 14:10
Цитата(Xenia @ Jan 30 2011, 12:09)

А вы на кварце работаете или на встроенной RC-цепочке? Если второе, то от буквы "я", т.к. кода FF, вам никогда не избавиться.
"Никогда не говори никогда."
У меня все устройства тактируются от кварца и ни одно не фонит буквой "я". Что я делаю не так?
Цитата(defunct @ Feb 1 2011, 19:10)

Цитата(Xenia @ Jan 30 2011, 15:09)

А вы на кварце работаете или на встроенной RC-цепочке? Если второе, то от буквы "я", т.к. кода FF, вам никогда не избавиться.
"Никогда не говори никогда."
У меня все устройства тактируются от кварца и ни одно не фонит буквой "я". Что я делаю не так?
Тактируете от кварца?
defunct
Feb 3 2011, 15:57
Цитата(AHTOXA @ Feb 1 2011, 18:18)

Тактируете от кварца?

Точно

из принципа попробую на внутреннем RC, что-но не верится в мистику )
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.