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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Господа, помогите, Мистика
Ol_17
сообщение Feb 12 2007, 14:01
Сообщение #1





Группа: Новичок
Сообщений: 8
Регистрация: 12-02-07
Пользователь №: 25 272



Может кто-то сталкивался с чем-нибудь подобным. Я ничем, кроме вмешательства
мистических сил, объяснить ситуацию не могу.
У меня в программке (для Mega48) есть подпрограмма генерации звуковых сигналов, служащих
для подтверждения включения различных режимов работы устройства. Она подает
на ножку порта импульсы частотой 1 кГц продолжительность подачи одного
сигнала 50 мсек, с паузами между ними 300 мсек. Вызов подпрограммы
осуществяется с передачей в нее переменной, определяющей сколько импульсов
нужно подать (сколько "пиков" издаст пьез).
Так вот, пока в плату вставлен разъем кабеля программирования (подключенного
к компьютеру) все работает нормально. Но стоит этот разъем вынуть,
количество "пиков" сокращается на единицу. Если в программе стоит один "пик"
его вообще не будет, если 3, будет 2 и т. д.
Ничего не понимаю. Программа или работает или не работает, разве не так? Как
может влиять кабель программирования (ножки порта, к которым подключается
программатор, в программе специально не задействованы и к ним на плате не
подключено ничего кроме разъема программирования).
Вот такая вот непонятка. Три дня бьюсь, сообразить ничего не могу.
Go to the top of the page
 
+Quote Post
Злой Евген
сообщение Feb 12 2007, 14:23
Сообщение #2





Группа: Участник
Сообщений: 14
Регистрация: 29-07-06
Пользователь №: 19 180



Цитата(Ol_17 @ Feb 12 2007, 14:01) *
У меня в программке (для Mega48) есть подпрограмма генерации звуковых сигналов, служащих

Приведи plz исходник подпрограммы...
Go to the top of the page
 
+Quote Post
Dopler
сообщение Feb 12 2007, 14:23
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 437
Регистрация: 23-04-05
Из: Таганрог
Пользователь №: 4 425



А ресет на плате подтянут (конденсатор 0.1 на землю)?
Go to the top of the page
 
+Quote Post
Ol_17
сообщение Feb 12 2007, 15:19
Сообщение #4





Группа: Новичок
Сообщений: 8
Регистрация: 12-02-07
Пользователь №: 25 272



Цитата(Dopler @ Feb 12 2007, 14:23) *
А ресет на плате подтянут (конденсатор 0.1 на землю)?

Да подтянут, 10 кОм на + питния 0.1 мкФ на землю (я тоже в этом направлении думал, сначала емкость 0.47 стояла, заменил на 0.1 - не помогает).
Текст подпрограммы выложу завтра (на работе с собой нет). Да там все просто: используем Таймер 0, записываем в OCR0B константу, обеспечивающую появление флага совпадения через 1 мсек, в OCR0A константу, равную половине константы в OCR0B (для обеспечения скважности 0.5), запускаем таймер, инвертируем линию порта, ждем появления флага совпадения таймера по регистру OCR0A, инвертируем линию порта, жем появления флага совпадения по регистру OCR0B, очищаем флаги совпадений, обнуляем таймер, таким же образом формируем паузу 300 мсек, наращиваем переменную цикла (переменная цикла передается в подпрограмму при ее вызове), сбрасываем флаги совпадения таймера.
Разве дело в подпрограмме? Непонятно как могут сигналы на неиспользуемых ногах контроллера влиять на ход выполнения программы?
Go to the top of the page
 
+Quote Post
Злой Евген
сообщение Feb 12 2007, 16:09
Сообщение #5





Группа: Участник
Сообщений: 14
Регистрация: 29-07-06
Пользователь №: 19 180



Без исходного текста(причем желательно всей проги) все равно судить тяжело, но в порядке предположения - ноги, используемые для программирования также еще предназначены для внешних прерываний, надо проверить, не включены ли они? Также неполохо бы обратить внимание на режим использования таймера №2
Go to the top of the page
 
+Quote Post
GDI
сообщение Feb 12 2007, 16:19
Сообщение #6


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

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



На симуляторе было бы неплохо проверить программу.
Пьез как подключен? на прямую к порту, через транзистор, к питанию как подключен? Пьезы помехи могут на питание давать.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
Ol_17
сообщение Feb 12 2007, 18:59
Сообщение #7





Группа: Новичок
Сообщений: 8
Регистрация: 12-02-07
Пользователь №: 25 272



Цитата(GDI @ Feb 12 2007, 16:19) *
На симуляторе было бы неплохо проверить программу.
Пьез как подключен? на прямую к порту, через транзистор, к питанию как подключен? Пьезы помехи могут на питание давать.

Господа, спасибо всем окликнувшимся. Но по-моему мы не там ищем. Я понимаю если бы программа сбоила с подключенным кабелем, а так наоборот, нормально работает только с подключенным кабелем. Причем проблемы только с малюсеньким фрагментом программы. Вся остальная прога работает отлично хоть с разъемом, хоть без. Хотя прога достаточно сложная и критичная ко временным параметрам - чать проги занимается дешифрацией команд, приходящим по радиоканалу (при этом максимально возможное время на обработку прерывания по приходу импульса от приемника 0.088 мсек). И тут все прекрасно. Плюс есть еще очень похожая подпрограмма, формирующая звуковые сигналы "Сбой" (тоже короткие сигналы с падающей частотой). И тут все прекрасно.
Если бы на ножках программирования были разрешены внешние прерывания, вставленный разъем мог бы мешать, но уж никак не помагать. Пьез, как бы он ни был подключен, (подключен через p-n-p транзистор к ножке порта, другим концом на + питания) остается подключенным одинаковым образом и при вставленном и при вытащенном разъеме. Текст программы также не меняется от того вставлен разъем или вытащен.
Объясните за счет чего разъем программирования может в принципе помагать выполнению программы?
Я вижу только одну разницу - по питанию добавляется емкость, установленная в фильтре питания микросхемы программатора. Пробовал увеличить емкость на плате - не помагает.
Go to the top of the page
 
+Quote Post
GDI
сообщение Feb 12 2007, 19:08
Сообщение #8


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

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Стек не переполняется? может ноги , куда программатор вставляется на вход поставлены без подтяжки.. и ловят помехи когда программатора нет... а в программаторе подтяжки есть - вот и отличие..


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
Screw
сообщение Feb 12 2007, 20:04
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 149
Регистрация: 29-11-06
Из: Барнаул
Пользователь №: 22 916



А другую мегу не пробовали? Может кристалл бракованный попался?
Go to the top of the page
 
+Quote Post
Pyku_He_oTTyda
сообщение Feb 12 2007, 20:13
Сообщение #10


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

Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360



Склоняюсь в отсуствии подтяжки к питанию. Кстати, нога на которой висит пьезик не относится к ногам программирования?


--------------------
Андрей Смирнов
Go to the top of the page
 
+Quote Post
defunct
сообщение Feb 12 2007, 20:47
Сообщение #11


кекс
******

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



Вначале нужно выяснить нет ли самопроизвольного сброса MK.
Если обнаружится что есть, то смотрите в сторону всех возможных источников сброса.
наличие стабильных +5 на ресете, глюки BOD'а если включен, WDT если включен.

Если самопроизвольного сброса нет, тогда надо искать ошибку в программе.
Go to the top of the page
 
+Quote Post
Ol_17
сообщение Feb 13 2007, 11:06
Сообщение #12





Группа: Новичок
Сообщений: 8
Регистрация: 12-02-07
Пользователь №: 25 272



Мужики, еще раз спасибо всем откликнувшимся. Я может и чайник, но не совсем: неиспользуемые ножки подтянуты, BOD не включен, пьез не сидит на ножке для программирования, WDT оключен, самопроизвольного сброса нет, глюков в программе вроде тоже нет.
Я лично склонялся к тому, что проблемы со сбросом (на плате все по классике 10 кОм на + питания, 0.1 мкФ на землю).
Вчера повозился еще, выяснилось, если включить питание затем пинцетом закоротить емкость, которая на ножке сброса, подержать секунд 5 и отпустить, загрузка проходит нормально и все работает четко.
Пытался подобрать резистор и емкость на ножке сброса - нифига. После этого психанул и поменял Мегу.
Все сразу заработало как надо.
Что это со старой мегой? Глюк кристалла или все же нужно как-то иначе цепь сброса строить?
Go to the top of the page
 
+Quote Post
GDI
сообщение Feb 13 2007, 11:23
Сообщение #13


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

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Цитата
Что это со старой мегой? Глюк кристалла или все же нужно как-то иначе цепь сброса строить?

Возможно, причиной выхода из строя меги является разность потенциалов земель схемы и компа, я не знаю кокой автор применяет программатор, но у меня выход из строя буферной микросхемы НС244 в параллельном программаторе STK-200(самодельном) являлся стандартным случаем, сейчас перешел на AVR910USB от prottossa, проблем подобных не стало..


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
Andreas1
сообщение Feb 13 2007, 11:26
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 446
Регистрация: 12-03-06
Из: Москва
Пользователь №: 15 142



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

Обязательно надо включать BOD, или использовать внешний. Я обычно ставлю 5к на + и 1000пф на землю, и покороче SR до разъема. Например без внешнего BOD at90s2313 ингода вообще не запускался.
Цитата
Возможно, причиной выхода из строя меги является разность потенциалов земель схемы и компа, я не знаю кокой автор применяет программатор, но у меня выход из строя буферной микросхемы НС244 в параллельном программаторе STK-200(самодельном) являлся стандартным случаем,

100 Ом на каждый вход/выход буфера и никаких проблем на многие годы. До этого буфера периодически летели, но процы не повреждались.
Go to the top of the page
 
+Quote Post
GDI
сообщение Feb 13 2007, 11:40
Сообщение #15


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

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Цитата
100 Ом на каждый вход/выход буфера и никаких проблем на многие годы. До этого буфера периодически летели, но процы не повреждались.

Согласен со всем, процы тоже никогда не летели.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
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 - 14:53
Рейтинг@Mail.ru


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