Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: подглючивает мега8. Как выловить?
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
Метценгерштейн
т.е. если на несколько часов оставить программу работать, с разрешенным USARTом и включенной Terraterm, то просмотрев логи, периодически проскакивает русская буква "я". Обычно целые строки из яяяяяяяяяяяяяяяяяяяяяяя. Происходит спонтанно это, программа крутится по циклу, этой я в программе, есс-нно нет.

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

Кто- нибудь сталкивался? Где может быть засада? Может питание грязное?


Я бы обратил внимание на то, как сконфигурирован порт PD,1. Питание тоже может сказываться, но при определенных обстоятельствах, я с этого начал пост.
AHTOXA
Код буквы "я" в кодировке windows-1251 - 0xFF (все биты - единички).
То есть, терминалу достаточно случайно поймать стартовый бит, и получится "я". Смотрите помехи.
Метценгерштейн
Код
    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, 22:31) *
Т.е. полагаете, просто наводки на провода идут, и терминалка ловит наводки и выводит их как"я" ?

Это один из вариантов. Другая возможная причина - происходит сброс, и при инициализации UART проскакивает ложный старт-бит (если порт конфигурируется прежде чем UART, и/или нет подтяжек на входе трансивера).
Метценгерштейн
сначала я конфигурирую УАРТ, затем порт. Но я это делаю в IAR, т.е. в ф-ии
char __low_level_init (void) { }

Возможно, ИАР при выходе из этой ф-ии сам как-то хитро инициализирует контроллер... мысль. Хотя, возможно, просто помехи.
Пока не переделал печать, как от помех избавиться можно? Кондеров навешать сигнальные провода, и заземлить их?
Дмитрий Ветра
Цитата(Метценгерштейн @ 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)|...
Метценгерштейн
хорошо, пока что промыл плату еще раз - сохнет.

у меня в схеме уровень PD1 5 вольт надо было привести к 3,3 уровню для модема. т.е. я его завожу на делитель из двух резисторов 4,3 и 5,6 кОм.

Уверены, что стоит подтянуть PD1? Мог мой делитель повлиять?
Dog Pawlowa
Цитата(Метценгерштейн @ Jan 30 2011, 00:43) *
Уверены, что стоит подтянуть PD1?

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

у меня в схеме уровень PD1 5 вольт надо было привести к 3,3 уровню для модема. т.е. я его завожу на делитель из двух резисторов 4,3 и 5,6 кОм.

Уверены, что стоит подтянуть PD1? Мог мой делитель повлиять?
Дело в том, что согласно Вашему коду, PD,1 проинициализирован как выход и притянут к корпусу. Т.е. внешние подтяжки ему по-барабану. Тогда уж лучше PD,1 определить как вход и притянуть к плюсу.
Метценгерштейн
Все, спасибо.

подтяну PD1 и буду с питанием как- то фильтровать.
demiurg_spb
настройте ногу TX на вывод с логической 1
настройте ногу RX на ввод с пулапом

Потыкайтесь осциллографом к этим линиям и понаблюдайте картинки, сравните то что Вы видите с желаемым - все вопросы отпадут.

Осциллограф - это необходимость для программиста контроллеров...
Удачи!
Метценгерштейн
еще хотел спросить, раз речь зашла про внутреннюю подтяжку- ее без проблем можно использовать для, например, подтяжки кнопочки к +5, чтобы отлавливать замыкание на землю? Или есть какие- то причины, почему все- же лучше использовать внешние подтягивающие резисторы?
Xenia
Цитата(Метценгерштейн @ Jan 29 2011, 21:10) *
Кто- нибудь сталкивался? Где может быть засада? Может питание грязное?

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

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

Случаи бывают разные:-)
defunct
Цитата(Xenia @ Jan 30 2011, 12:09) *
А вы на кварце работаете или на встроенной RC-цепочке? Если второе, то от буквы "я", т.к. кода FF, вам никогда не избавиться.

"Никогда не говори никогда."
У меня все устройства тактируются от кварца и ни одно не фонит буквой "я". Что я делаю не так?
AHTOXA
Цитата(defunct @ Feb 1 2011, 19:10) *
Цитата(Xenia @ Jan 30 2011, 15:09) *

А вы на кварце работаете или на встроенной RC-цепочке? Если второе, то от буквы "я", т.к. кода FF, вам никогда не избавиться.
"Никогда не говори никогда."
У меня все устройства тактируются от кварца и ни одно не фонит буквой "я". Что я делаю не так?

Тактируете от кварца? sm.gif
defunct
Цитата(AHTOXA @ Feb 1 2011, 18:18) *
Тактируете от кварца? sm.gif

Точно sm.gif
из принципа попробую на внутреннем RC, что-но не верится в мистику )
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.