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

 
 
7 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Зависание микроконтроллера, ATMega 128
smalcom
сообщение Apr 14 2008, 13:27
Сообщение #1


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

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



Наблюдается следующая картина: казалось бы без всяких причин виснет контроллер, если дотронуться металическим предметом до ножек кварца, то или пускается дальше или уходит в перезагрузку, или сделает еще пару шагов и опять виснет. Выводит его из такого состояния только кнопка резет или сброс питания.
контроллер - ATMega128-16AU. Программа раньше работала, проблеиы появились только в текущем месяце на новых устройствах. Не знаю на кого грешить((

PS. менял кварц - непомогло
PPS. частота - 14.7456МГц

Сообщение отредактировал smalcom - Apr 14 2008, 13:30
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Apr 14 2008, 14:03
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(smalcom @ Apr 14 2008, 16:27) *
Не знаю на кого грешить((

На себя.

Цитата(smalcom @ Apr 14 2008, 16:27) *
если дотронуться металическим предметом до ножек кварца, то или пускается дальше или уходит в перезагрузку

Хочется спросить - а отверткой в ухе не пробовали?

Если серьезно, совершенно нормальный процесс. Не нужно лазить на ножки кварца точно так же как в ухо.
P.S. Да, еще watchdog не мешало бы включить, если не включен.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
IDE
сообщение Apr 14 2008, 14:20
Сообщение #3


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

Группа: Свой
Сообщений: 119
Регистрация: 5-11-07
Из: Москва
Пользователь №: 32 073



Цитата(smalcom @ Apr 14 2008, 17:27) *
Наблюдается следующая картина: казалось бы без всяких причин виснет контроллер, если дотронуться металическим предметом до ножек кварца, то или пускается дальше или уходит в перезагрузку
PS. менял кварц - непомогло
PPS. частота - 14.7456МГц


Попробуйте заземлить корпус кварца...


--------------------
У кого что сбоит, тот о том и говорит.
Go to the top of the page
 
+Quote Post
smalcom
сообщение Apr 14 2008, 14:46
Сообщение #4


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

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



PPS. кварц заземлен.
PPPS. wathcdog включен - все зависает намертво, какбудто просто останавливается тактовый генератор, правда у ватчдога свой... я в непонятках.

Цитата
Если серьезно, совершенно нормальный процесс. Не нужно лазить на ножки кварца точно так же как в ухо.

нормальная операция проверки неисправности тактовых цепей.


ЗЫx. плата мелкосерийная, количество копий около 150ти, а ведет себя так только последняя партия из 10штук

Сообщение отредактировал smalcom - Apr 14 2008, 14:48
Go to the top of the page
 
+Quote Post
defunct
сообщение Apr 14 2008, 14:56
Сообщение #5


кекс
******

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



Цитата(smalcom @ Apr 14 2008, 16:46) *
PPS. кварц заземлен.
PPPS. wathcdog включен - все зависает намертво, какбудто просто останавливается тактовый генератор, правда у ватчдога свой... я в непонятках.

BOD включен?
Керамика по питанию в непосредственной близости от МК есть?

IMHO нахомутали с разводкой..
Go to the top of the page
 
+Quote Post
smalcom
сообщение Apr 14 2008, 15:11
Сообщение #6


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

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



ммм... меня могли неправильно понять - криво написал. вобщем виснет он не от того что я до него дотрагиваюсь))), а сам по себе. признаю - пунктуация не мой конек.

Цитата
BOD включен?
Керамика по питанию в непосредственной близости от МК есть?


BOD выключен. керамика по питанию стоит - 0.1uF(3шт, возле нескольких подводов питания к контроллеру). каждая ножка кварца соединена с конденсатором 22pF - вторая ножка конденсатороа на земле.

ммм. напряжение питания - 4.75В. Рядом лежит такойже девайс из старой партии: работает без проблем
Go to the top of the page
 
+Quote Post
defunct
сообщение Apr 14 2008, 15:17
Сообщение #7


кекс
******

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



Цитата(smalcom @ Apr 14 2008, 17:04) *
керамика по питанию стоит - 0.1uF(3шт, возле нескольких подводов питания к контроллеру). каждая ножка кварца соединена с конденсатором 22pF - вторая ножка конденсатороа на земле.

Если BOD выключен, тогда какая используется схема сброса (что подключено к Reset).

Не получается ли так что через МК косвенным путем питается что-то еще e.g.:

Код
линия Vcc ------ [MK ]-------[ Rн ]

Какой источник питания?
Go to the top of the page
 
+Quote Post
smalcom
сообщение Apr 14 2008, 15:23
Сообщение #8


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

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



в схеме сброса включен супервизор MCP100-315 и кнопка для ручного сброса.
источник питания(в данный момент) - компьютерный БП 400Вт.

по поводу неправильных цепочек питания - сейчас пройдусь тестером

upd. проверил - вроде утечек нет

Сообщение отредактировал smalcom - Apr 14 2008, 15:29
Go to the top of the page
 
+Quote Post
defunct
сообщение Apr 14 2008, 15:25
Сообщение #9


кекс
******

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



Цитата
Рядом лежит такойже девайс из старой партии: работает без проблем

что поменялось между партиями?
Замеряйте потребляемый ток старого и нового устройства.
Go to the top of the page
 
+Quote Post
galjoen
сообщение Apr 14 2008, 15:26
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(smalcom @ Apr 14 2008, 18:46) *
PPPS. wathcdog включен - все зависает намертво, какбудто просто останавливается тактовый генератор, правда у ватчдога свой... я в непонятках.

А если в фьюзах ватчдог невыключаемым сделать. А вообще как с фьюзами? Размах напряжения на кварце в частности какой? А лучше выложите все фьюзы - так проще разобраться.
Go to the top of the page
 
+Quote Post
injen-d
сообщение Apr 14 2008, 15:29
Сообщение #11


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

Группа: Свой
Сообщений: 91
Регистрация: 10-10-07
Из: Воронежа
Пользователь №: 31 250



Возможно виноват не запрограммированный бит CKOPT - очень сильно влияет на амплитуду тактовых импульсов от кварца (на осцилографе очень хорошо видно, да и во всевозможной литературе написано)


--------------------
- Бендер, ты же робот, зачем тебе пить пиво?
- Незачем! Я могу бросить в любой момент!
Go to the top of the page
 
+Quote Post
smalcom
сообщение Apr 14 2008, 15:37
Сообщение #12


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

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



фьюзы
BLEV=1
BODEN=1
SUT=2
CKSEL=D
BLB1=3
BLB0=3
OCDEN=1
JTAGEN=1
CKOPT=0
EESV=1
BSIZ=0
BRST=1
M103C=1
WDTON=0
но после прошивки почемуто WDTON читается опять как 1.


Цитата
что поменялось между партиями?

сами атмеги. ммм глуповато звучит кнеша, но на старых внизу написано 0727, а на новых - 0740
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Apr 14 2008, 15:37
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(smalcom @ Apr 14 2008, 17:46) *
нормальная операция проверки неисправности тактовых цепей.

У меня для таких целей помехогенерирующая "тарахтелка есть".

Присоединяюсь к CKOPT, сам всегда устанавливаю.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
smalcom
сообщение Apr 14 2008, 15:41
Сообщение #14


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

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



Цитата
Замеряйте потребляемый ток старого и нового устройства

одинаковый(около 62мА)
Go to the top of the page
 
+Quote Post
galjoen
сообщение Apr 14 2008, 15:55
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(smalcom @ Apr 14 2008, 19:37) *
CKSEL=D

Если я правильно понял, ваш случай - CKSEL3..1=110? Если так, то вэтом режиме д.б. керамический резонатор 0.9..3.0 МГц. Я для таких частот (>8 МГц) ставлю CKSEL3..0=1111 (не запрограммированные).
Go to the top of the page
 
+Quote Post
smalcom
сообщение Apr 14 2008, 16:34
Сообщение #16


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

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



Цитата
керамический резонатор 0.9..3.0 МГц

не, при CKOPT=0 это как раз f>1МГц

кварц менял, про емкости у него не думал. прикол в том, что даже ватчдог не выводит его из этого зависшего состояния.

грешу на самый маловероятный исход - проблемная партия контроллеров

вот что я только что пронаблюдал - контроллер не завис а начал жестко тупить, те мигание светодиода "я жив" вместо периода 1с превратилось в 30с.

ЗЫ. опять же почему ватчдог имея свой собственный генератор невыводит его из этого состояния
ЗЗЫ. при этом потрбляемый ток падает в два раза

Сообщение отредактировал smalcom - Apr 14 2008, 16:37
Go to the top of the page
 
+Quote Post
galjoen
сообщение Apr 14 2008, 16:55
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(smalcom @ Apr 14 2008, 20:34) *
не, при CKOPT=0 это как раз f>1МГц

Да верно - я напутал. Но смутно помню, что кода-то экспериментировал с CKSEL, и понял 1111 - лучше. Попробуйте.
Цитата(smalcom @ Apr 14 2008, 20:34) *
кварц менял, про емкости у него не думал. прикол в том, что даже ватчдог не выводит его из этого зависшего состояния.

А может он всё таки не включен? "но после прошивки почемуто WDTON читается опять как 1."
Цитата(smalcom @ Apr 14 2008, 20:34) *
вот что я только что пронаблюдал - контроллер не завис а начал жестко тупить, те мигание светодиода "я жив" вместо периода 1с превратилось в 30с.
ЗЫ. опять же почему ватчдог имея свой собственный генератор невыводит его из этого состояния
ЗЗЫ. при этом потрбляемый ток падает в два раза

Ну это похоже на эффект от деление тактовой частоты в регистре XDIV. Кстати XDIV и на пробуждение из sleep влияет. Sleep у вас есть?

А если тестовую программку написать? Только лампочкой мигает и ватчдог сбрасывает.
Go to the top of the page
 
+Quote Post
smalcom
сообщение Apr 15 2008, 03:56
Сообщение #18


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

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



Цитата
"но после прошивки почемуто WDTON читается опять как 1."

прошил дргим программатором, стало верно записываться.

про слип я думал, но его я не использую. плюс если верить даташиту, то ватчдог работает в любом из слип режимов.
Go to the top of the page
 
+Quote Post
Igor26
сообщение Apr 15 2008, 04:00
Сообщение #19


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544



Цитата
в регистре XDIV

Его нет в Меге128.
Цитата
плюс если верить даташиту, то ватчдог работает в любом из слип режимов.

Да.Работает.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Apr 15 2008, 04:47
Сообщение #20


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Его нет в Меге128.


Как это нет? А по адресу 0x3C(0x5C) что находится?

Цитата
ЗЫ. опять же почему ватчдог имея свой собственный генератор невыводит его из этого состояния


Если у вас не работает основной тактовый генератор, то WDT никак не осилит перезапуск.

Проблема скорее кроется именно в неустойчивой работе генератора меги с Вашим типом кварца. Ставьте CKSEL=F и CKOPT=0. SUT я бы поставил 3, если, конечно, не нужен быстрый старт.

И хорошо промойте плату возле генератора, бывает - помогает.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Igor26
сообщение Apr 15 2008, 06:57
Сообщение #21


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544



Цитата
А по адресу 0x3C(0x5C) что находится?

Чёй-то не нашел в ДШ. Ткните носом.
Go to the top of the page
 
+Quote Post
vmp
сообщение Apr 15 2008, 07:11
Сообщение #22


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 20-01-05
Из: Зеленоград
Пользователь №: 2 070



Вы уверены, что конденсаторы на кварце стоят правильного номинала? Может быть на сборке ошиблись?
Go to the top of the page
 
+Quote Post
Serj78
сообщение Apr 15 2008, 07:51
Сообщение #23


Знающий
****

Группа: Свой
Сообщений: 966
Регистрация: 27-05-06
Из: СПб
Пользователь №: 17 499



Цитата(vmp @ Apr 15 2008, 11:11) *
Вы уверены, что конденсаторы на кварце стоят правильного номинала? Может быть на сборке ошиблись?


поставьте ckopt галочку и посмотрите осциллографом с делителем 1/10 размах напряжения на ноге xtal2.
если там меньше 2/3 от напряжения питания- меняйте кварц илии его обвеску.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Apr 15 2008, 07:57
Сообщение #24


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Чёй-то не нашел в ДШ. Ткните носом.


Вот дерево разделов:

System Clock and Clock Options -> Timer/Counter Oscillator -> XTAL Divide Control Register - XDIV

Сразу за External Clock.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Igor26
сообщение Apr 15 2008, 09:23
Сообщение #25


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544



Цитата
System Clock and Clock Options -> Timer/Counter Oscillator -> XTAL Divide Control Register - XDIV

Сразу за External Clock.

Спасибо. Теперь увидел.
Go to the top of the page
 
+Quote Post
GDI
сообщение Apr 15 2008, 09:31
Сообщение #26


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

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



Можно попробовать поменять контроллеры у старой и новой плат, т.е. определить дело в контроллере или все же в плате(утечки, плохо промыта и т.п.). А не может у вас какая то периферия глючить, еепром по I2C или еще что?


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
smalcom
сообщение Apr 15 2008, 10:41
Сообщение #27


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

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



вопщем пропаял еще раз мегу, промыл спиртом, заменил кондеры у кварца - 1 из 10 завис через 5минут. проверить осцилом немогу - нету такого, тот что в наличии садит линию кварца, но тестером видно 2.6В. замечено что быстрей всего мегу убить можно обменом по 232му порту.
пробовал в старую плату впаять новую мегу - работает.
грешил бы на прошивку, но уже более 3.5 лет работает на полуторасотнях устройствах при серьезных нагрузках и сбоев небыло.
Go to the top of the page
 
+Quote Post
defunct
сообщение Apr 15 2008, 10:45
Сообщение #28


кекс
******

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



Иногда может повлиять толщина и материал дорожек.
Замечал что платы изготовленные разными подрядчиками по одному и тому же рисунку могут вести себя по разному.
некоторые (целые партии PCB) глючили - приходилось резать дорожку питания в непосредственной близости от МК и вставлять LC фильтр.

Насчет фузов. Для частот выше 8Mhz фузы (CKSEL) ставить в 1111 (0xF).
Go to the top of the page
 
+Quote Post
smalcom
сообщение Apr 15 2008, 14:34
Сообщение #29


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

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



сдается мне, что полтергейст зажат в узкий круг. вернусь из командировки и(надеюсь, что звонков от заказчика не будет) ) покопаю глубже. всем огромное спасибо за участие(подчерпнул дополнительные знания). приеду - с меня плюсики.
Go to the top of the page
 
+Quote Post
smalcom
сообщение Apr 15 2008, 20:08
Сообщение #30


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

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



чота с плюсами лажа какаето
Go to the top of the page
 
+Quote Post
ReAl
сообщение Apr 16 2008, 06:29
Сообщение #31


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(smalcom @ Apr 15 2008, 23:08) *
чота с плюсами лажа какаето

А это не исходники.ру wink.gif тут этого баловства не особенно.
Судя по тому, что там написано было - надо попробовать ещё прошить старые платы прошивками, скомпилированными новым компилятором и наоборот.
Если где-то шалит какое-то прерывание (обработчик есть, но прерывание не сбрасывается и лупит дальше), то оно может очень сильно тормозить ход основной программы - грубо, в число тактов выполнения обработчика раз (в то время, когда глобально прерывания разрешены, между прерываниями будет проскакивать по одной команде основной программы).
Хотя... "1 из 10 штук завис" - это как-то не очень похоже на прошивку.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
Mozart
сообщение Apr 17 2008, 19:06
Сообщение #32


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

Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829



вообще может быть из-за ресета по снижению напряжения питания (BODEN). надо его сбросить


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Apr 17 2008, 19:54
Сообщение #33


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Mozart @ Apr 17 2008, 22:06) *
вообще может быть из-за ресета по снижению напряжения питания (BODEN). надо его сбросить

Не нужно давать вредные советы - можно доиграться вплоть до потери программы во флэши.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Mozart
сообщение Apr 17 2008, 20:33
Сообщение #34


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

Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829



Цитата(Dog Pawlowa @ Apr 17 2008, 23:54) *
Не нужно давать вредные советы - можно доиграться вплоть до потери программы во флэши.

это как?... я тогда просто не понимаю что происходит при отключении питания... мне казалось, что просто прекращается работа генератора и сё... а как может потеряться программа во флэши??


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Apr 18 2008, 06:40
Сообщение #35


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Mozart @ Apr 17 2008, 23:33) *
это как?... я тогда просто не понимаю что происходит при отключении питания... мне казалось, что просто прекращается работа генератора и сё... а как может потеряться программа во флэши??

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


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Mozart
сообщение Apr 18 2008, 16:00
Сообщение #36


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

Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829



Цитата(Dog Pawlowa @ Apr 18 2008, 10:40) *
Не просто.
При снижении питания может произойти все что угодно - например может неправильно декодироваться команда. Например вместо безобидной пересылки из регистра в регистр начнется стирание страницы флэш-памяти. И это неоднократно подтверждено жизнью.
Поэтому контроллер должен быть обязательно сброшен при напряжении питания ниже критического.

у мну такого ещё не разу не было... учту... сенкс


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post
Laserr
сообщение Apr 18 2008, 16:22
Сообщение #37





Группа: Новичок
Сообщений: 6
Регистрация: 9-01-07
Пользователь №: 24 231



Цитата(Dog Pawlowa @ Apr 18 2008, 10:40) *
При снижении питания может произойти все что угодно...


ППКС. У меня дома лежит tiny со стертым ID laughing.gif
Go to the top of the page
 
+Quote Post
Yura_K
сообщение Apr 18 2008, 17:06
Сообщение #38


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

Группа: Свой
Сообщений: 185
Регистрация: 5-05-06
Из: Ekaterinburg, Russia
Пользователь №: 16 821



Было такое же на ATmega8535. Правда стоял на плате в одной сборке с усилителями ШИМ (2 канала по 5 ампер) smile.gif. Решилось все экранированием платы (под ней силовые провода на нагрузку лежали).


--------------------
Чудес не бывает - бывает мало знаний и опыта!
Go to the top of the page
 
+Quote Post
VladimirYU
сообщение Apr 19 2008, 08:29
Сообщение #39


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 5-04-07
Из: Санкт-Петербург
Пользователь №: 26 782



Цитата(Dog Pawlowa @ Apr 18 2008, 10:40) *
Не просто.

Поэтому контроллер должен быть обязательно сброшен при напряжении питания ниже критического.

Полностью согласен. При этом, из собственного опыта, не доверяю ни каким BODам, а ставлю внешний супервизор. +20 рублей, но про такие проблемы забываешь раз и навсегда.
Go to the top of the page
 
+Quote Post
smalcom
сообщение Apr 24 2008, 17:15
Сообщение #40


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

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



да, кстати, проблема была в том, что прогу скомпилил новым набором утилит - gcc-4.3.0, binutils-2.18, glibc-1.6; раньше были gcc-3.4.0, binutils-2.17, glibc-1.4
Go to the top of the page
 
+Quote Post
Flasher
сообщение Apr 25 2008, 21:08
Сообщение #41


Местный
***

Группа: Свой
Сообщений: 374
Регистрация: 6-09-05
Из: Тирасполь, Приднестровье
Пользователь №: 8 294



Могу рассказать в чем секрет зависания устройства. Будете долго удивляться. - Это компьютерный блок питания. В большинстве случаев товарищи даже и не знают, что пытаются запитать свою технику от драндулета, на корпусе которого в незаземленном варианте присутствует 110 Вольт, и касание отверткой заставляет стекать заряд с конденсаторов через корпус на отвертку и через внутренние цепи контроллера. Этот драндулет имеет ужасающе большой спектр помех. Плюс пульсации в ВЧ области вполне достаточные, чтобы процессор рестартанул (в лучшем случае) или начал выполнять вообще неизвестно что, пока напряжение просело ниже допустимого... Так что дерзайте- можно запитать девайс еще от велогенератора или пьезоподжигалки- и искать глюки в программе можно до посинения.
Go to the top of the page
 
+Quote Post
ReAl
сообщение Apr 26 2008, 14:55
Сообщение #42


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(smalcom @ Apr 24 2008, 20:15) *
да, кстати, проблема была в том, что прогу скомпилил новым набором утилит - gcc-4.3.0, binutils-2.18, glibc-1.6; раньше были gcc-3.4.0, binutils-2.17, glibc-1.4
И всё-таки, как это может влиять не на "тотальное" зависание, а на "1 из 10".
Что касается разницы между 3.х и 4.х, то 4.х гораздо агрессивнее оптимизирует работу с не-volatile-переменными, скажем,
Цитата
#include <avr/io.h>
#include <avr/interrupt.h>

unsigned cnt;

unsigned foo(void)
{
int tmp;
uint8_t sr = SREG;
cli();
tmp = cnt;
SREG = sr;
return tmp;
}


Успешно компилируется в
Цитата
foo:
/* prologue: frame size=0 */
/* prologue end (size=0) */
in r24,95-0x20
/* #APP */
cli
/* #NOAPP */
out 95-0x20,r24
lds r24,cnt
lds r25,(cnt)+1
/* epilogue: frame size=0 */
ret

Т.е. по сути в
Цитата
uint8_t sr = SREG;
cli();
SREG = sr;
return cnt;
Что вполне соответствует стандарту smile.gif, cnt тоже надо объявить volatile, чтобы сохранился интересующий порядок операций.



Цитата(Flasher @ Apr 26 2008, 00:08) *
Могу рассказать в чем секрет зависания устройства. Будете долго удивляться. - Это компьютерный блок питания.
lol.gif
Удивляюсь smile.gif Вот чего не знал, того не знал... smile.gif
И как дурак уже 15 лет на столе держу в качестве источника для отлаживаемых плат компьютерные блоки питания smile.gif Если место позволяет - часто даже на плате кроме штатного разъёма ещё штыри заложены под флопарный разъёмчик, чтобы переходник не был нужен.
И ничего не "рестартует в лучшем случае", включая сам комп, внутри которого стоит такой же блок питания. И изделия серийные выпускаются в компьютерном корпусе и с компьютерным блоком питангия - там и микроконтроллеры, и ПЛИС, и АЦП горстями (ну да, по питанию АЦП фильтры дополнительные).
Может это? Прокладочку поменять?


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
Samsony
сообщение Apr 26 2008, 19:30
Сообщение #43





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



Цитата(smalcom @ Apr 14 2008, 17:27) *
Наблюдается следующая картина: казалось бы без всяких причин виснет контроллер, если дотронуться металическим предметом до ножек кварца, то или пускается дальше или уходит в перезагрузку, или сделает еще пару шагов и опять виснет. Выводит его из такого состояния только кнопка резет или сброс питания.
контроллер - ATMega128-16AU. Программа раньше работала, проблеиы появились только в текущем месяце на новых устройствах. Не знаю на кого грешить((

PS. менял кварц - непомогло
PPS. частота - 14.7456МГц


Попробуйте выяснить кто виноват. Для это:
- Запитайте устройство не от БП (господин Flasher правильно высказал свое мнение по поводу компьтерного БП - помойка там конкретная);
- Если не полегчает, то отключите от источника питания платы все, что может приводить к "просадкам" питания (в идеале - оставить только проц и светодиод какой нибудь)
- Правильно выставьте бит CKSEL. Посмотрите осцилом на амплитуду на кварце - должна быть не менее 1,5В...
- Отключите супервизор, RESET повесьте прям на ногу питания МК

Кстати, как схема питания реализована?

Было у нас такое дело - производили устройство, все было ОК....
Затем пошел серийный брак - устройство вроде работает, но после установки на транспорт - сбойт... Виснет, перестает работать, перезапускается....
Думал долго, перепахал всю плату - не помогло. А дело было вот в чем. Использовали программатор ChipProg который стоял на компьютере с которого прошивались изделия. В один прекрасный или ужасный день наши герои - радиомеханики переставили винду, поставили какую то "тюнингувую модель ручной сборки WinXP. С этого дня брак и пошел. Хотя все отлично прошивалось и тестировалось...
Go to the top of the page
 
+Quote Post
smalcom
сообщение Apr 26 2008, 22:03
Сообщение #44


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

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



старый набор avrtools и новый генерят разный код, предположительно изменена схема работы с переменными и прологи/эпилоги(в новом) засим вполне вероятно предсказанная ReAl ситуация с постоянной обработкой прерывания(честно еще досконально листинги ассемблера неразбирал). Программы скомпиленные новым набором(замечено пока только в коде для m128) зависают.
Go to the top of the page
 
+Quote Post
Igor26
сообщение Apr 28 2008, 06:41
Сообщение #45


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544



Цитата
Это компьютерный блок питания.

Интересно знать, уважаемый, а как у тебя компьютер то работает от компьютерного блока питания? Он ведь сложней твоего девайса в десятки раз.
Go to the top of the page
 
+Quote Post
dx40
сообщение Apr 28 2008, 06:52
Сообщение #46


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

Группа: Свой
Сообщений: 147
Регистрация: 4-05-06
Пользователь №: 16 779



Цитата(Flasher @ Apr 26 2008, 01:08) *
Могу рассказать в чем секрет зависания устройства. Будете долго удивляться. - Это компьютерный блок питания.

Что-то тут не так - компьютер ведь не виснет? Да и есть блоки питания meanwell - те же яйца - но никто не жаловался. Может к ресету проводник длинной сантиметров 10 висит в воздухе?
Go to the top of the page
 
+Quote Post
Nanobyte
сообщение Apr 28 2008, 07:12
Сообщение #47


За битами по регистрам гоняюсь
***

Группа: Свой
Сообщений: 457
Регистрация: 24-04-06
Из: Таганрог
Пользователь №: 16 446



Блоки питания от ПК разные бывают. Есть у меня один, на котором я испытываю устойчивость устройств к поганому питанию. Осциллографом на шины питания лучше не смотреть без валидола. Если работает с таким питанием, тогда будет работать с любым другим.
А есть ещё и замечательные БП, на выходе которых помех практически нет.
Кроме того, все эти БП требуют какой-то минимальной нагрузки по линии 5 вольт (обычно 0,2-0,5 амп), а без неё напряжение на выходе прыгает с частотой от нескольких Hz до десятков Hz. Если запитать от БП только микроконтроллер и пару светодиодов, на правильную работу БП лучше сильно не рассчитывать.


--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 28 2008, 07:58
Сообщение #48


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Flasher @ Apr 26 2008, 00:08) *
на корпусе которого в незаземленном варианте присутствует 110 Вольт
...Засунули лом...
"Грррр шмяк" - сказала японская лесопилка.
"Ну дык, еб тыть!" - сказали суровые русские мужики и пошли валить лес двуручными пилами.

Сказано в инструкции "без заземления НЕ ВКЛЮЧАТЬ". Нет, блин, мы умнее: "в незаземленном варианте..."


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Igor26
сообщение Apr 28 2008, 11:42
Сообщение #49


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544



Прикола ради, замерил прям щас напряжение между корпусом компа и "землей". 110 вольт. Не сбоит, представьте себе. Лет пять не замечаю.
Go to the top of the page
 
+Quote Post
Flasher
сообщение Apr 28 2008, 11:59
Сообщение #50


Местный
***

Группа: Свой
Сообщений: 374
Регистрация: 6-09-05
Из: Тирасполь, Приднестровье
Пользователь №: 8 294



Цитата(Igor26 @ Apr 28 2008, 09:41) *
Интересно знать, уважаемый, а как у тебя компьютер то работает от компьютерного блока питания? Он ведь сложней твоего девайса в десятки раз.


А ты попробуй, коснись отверткой ножки кварца smile.gif - потом доложишь как стабильно он будет работать. Только заземление не забудь отключить. А если серъезно-законы грамотной разводки и схемотехники еще никто не отменял. Поэтому еще раз внимательно перечитайте корневой пост автора и мой ответ. У меня в практике попадались криво разведенные устройства подключенные к БП.- после пары включений слетала флэшь и фьюзы. А если БП не заземлен- то после касания к элементам схемы пукой- процессор не отвечал даже в параллельгом режиме

Цитата(Сергей Борщ @ Apr 28 2008, 10:58) *
...Засунули лом...
"Грррр шмяк" - сказала японская лесопилка.
"Ну дык, еб тыть!" - сказали суровые русские мужики и пошли валить лес двуручными пилами.

Сказано в инструкции "без заземления НЕ ВКЛЮЧАТЬ". Нет, блин, мы умнее: "в незаземленном варианте..."

Ну хорошо- Вы грамотный. А видели домашние лаборатории радиолюбителей- розетка не евро- переходник без заземления от шнура....? Думаете, эти люди об этом задумываются?

Цитата(Igor26 @ Apr 28 2008, 14:42) *
Прикола ради, замерил прям щас напряжение между корпусом компа и "землей". 110 вольт. Не сбоит, представьте себе. Лет пять не замечаю.

Детский сад...Проздравляю- Вы уникальный пользователь! Вы, наверное, не трогаете ножки кварца на материнке в рабочем состоянии. Или к нему девайсы не подключаете?. Мп3 плееры не слетали при подключении к компу? а Флэшки? Нет?- так Вы- везунчик!!! Теперь просто представьте куда пойдут заряды если внешнее устройство имеет нулевой потенциал до касания корпуса? А самое главное через какие контакты?
Go to the top of the page
 
+Quote Post
ReAl
сообщение Apr 29 2008, 17:18
Сообщение #51


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(Сергей Борщ @ Apr 28 2008, 10:58) *
...Засунули лом...
"Грррр шмяк" - сказала японская лесопилка.
"Ну дык, еб тыть!" - сказали суровые русские мужики и пошли валить лес двуручными пилами.
У Аверченко в рассказе начала прошлого века была немецкая пилорама и костыль с железной дороги, забитый в бревно. Но в целом характер мужика не поменялся smile.gif

Цитата(Flasher @ Apr 28 2008, 14:59) *
А ты попробуй, коснись отверткой ножки кварца smile.gif
А этот "лом" или "костыль" в современном помещении, насыщенном наводками от 50Гц до я не знаю куда (неплохо выглядят 30-50кГц от электронных балластов, разных ионизаторов воздуха и т.п.) может сбить и прибор, запитанный от батарейки.

Цитата(Flasher @ Apr 28 2008, 14:59) *
то после касания к элементам схемы пукой- процессор не отвечал
...
Ну хорошо- Вы грамотный. А видели домашние лаборатории радиолюбителей- розетка не евро- переходник без заземления от шнура....? Думаете, эти люди об этом задумываются?
Опечаточка прямо в тему smile.gif
Это проблемы пук "радиолюбителей" (не зря это слово кроме смысла, обозначающего хобби человека, имеет и смысл, близкий к матерному), а не "блоков питания PC" вообще.
Радиолюбители разные бывают, некоторые не ленятся арматурку спустить и хоррошую железяку метра на полтора в землю закопать smile.gif

Хоть я и верю в особо убойные блоки, к которым "без валидола нельзя" - мне они просто не попадались.
При том, что на столе обычно стоит "первый попавшийся" блок питания.
Раньше - какой-нибудь 286-ой или "поиск" уже окончательно отжил своё и из него просто вымародёрен блок, так как никто не претендует на замену в нём мамки и получение в наследство его монитора.
Сейчас - взятый у того, кто на фирме за это дело отвечает ("если сейчас под рукой запасного нет, то как будешь заказывать компы - закажи для меня блок питания" - т.е. _я_ специально блоки не отбирал, брались из общего потока).


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
smalcom
сообщение Apr 30 2008, 09:19
Сообщение #52


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

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



на БП пульсациии я мерял - 50мВ при частое 50Гц+многоКГц
Go to the top of the page
 
+Quote Post
smalcom
сообщение Apr 30 2008, 11:07
Сообщение #53


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

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



Если комуто вдруг интересно будет(тк как в асме я не силен) ложу три сгенеренных компиляторами файла
linavr_new - gcc-4.3.0 + binutils-2.18 + libc-1.6
linavr_old - gcc-3.4.6 + binutils-2.15.92.0.2 + libc-1.4.6
winavr - gcc-4.1.2 + binutils-2.17 + libc-1.4.6
Прикрепленные файлы
Прикрепленный файл  firmware.tar.gz ( 54.47 килобайт ) Кол-во скачиваний: 33
 
Go to the top of the page
 
+Quote Post
Flasher
сообщение Apr 30 2008, 15:41
Сообщение #54


Местный
***

Группа: Свой
Сообщений: 374
Регистрация: 6-09-05
Из: Тирасполь, Приднестровье
Пользователь №: 8 294



Цитата(smalcom @ Apr 30 2008, 12:19) *
на БП пульсациии я мерял - 50мВ при частое 50Гц+многоКГц

Измерял-правильное слово. И какое средство измерения Вы применяли? Выбросы на частоте нескольких мегагерц зафиксировали? Или школьный вольтметр не позволяет этого сделать?
Go to the top of the page
 
+Quote Post
aesok
сообщение Apr 30 2008, 16:28
Сообщение #55


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(smalcom @ Apr 30 2008, 15:07) *
Если комуто вдруг интересно будет(тк как в асме я не силен) ложу три сгенеренных компиляторами файла
linavr_new - gcc-4.3.0 + binutils-2.18 + libc-1.6
linavr_old - gcc-3.4.6 + binutils-2.15.92.0.2 + libc-1.4.6
winavr - gcc-4.1.2 + binutils-2.17 + libc-1.4.6


Это что, игра найдите десять отличий? Я нашел одно в коде откомпилированном gcc-4.3.0 есть работа с ватшдогом в gcc-4.1.2 нет. Если код разный, то я не могу сказать что дело только в компиляторе. В следующий раз посылайте исходники.

Да еще. Компилируют проект с отключенной оптимизацией только те, кто не знает слова volatile.

Анатолий.
Go to the top of the page
 
+Quote Post
Igor26
сообщение Apr 30 2008, 16:31
Сообщение #56


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544



Цитата
Вы, наверное, не трогаете ножки кварца на материнке в рабочем состоянии.

Нет конечно. А зачем?
Цитата
Мп3 плееры не слетали при подключении к компу? а Флэшки?
Ни разу. Ни дома, ни работе.
Цитата
Теперь просто представьте куда пойдут заряды если внешнее устройство имеет нулевой потенциал до касания корпуса? А самое главное через какие контакты?

Тот же самый USB-разъём взгляните как выглядит. Сначала идут контакты питания, а затем сигнальные. Та же песня и с PCMCI. Как Вы думаете, почему? А потому, что сначала уравниваются потенциалы внешнего устройства с компьютером, на периферию подается питание, сразу же выходы внешнего устройства переводятся в Z-состояние и только потом начинается "болтовня" периферейной платы с ПК.
Чуток OFF. С незаземленным компьютером проблема была один раз. Когда системный блок стоял рядом с батареей центрального отопления. На него запрыгнула кошка, которую только что "постирали". Какое же было её удивление, когда одна лапка была на системнике, а вторую она поставила на батарею.
Go to the top of the page
 
+Quote Post
Flasher
сообщение Apr 30 2008, 16:42
Сообщение #57


Местный
***

Группа: Свой
Сообщений: 374
Регистрация: 6-09-05
Из: Тирасполь, Приднестровье
Пользователь №: 8 294



Цитата(Igor26 @ Apr 30 2008, 19:31) *
Нет конечно. А зачем?
Ни разу. Ни дома, ни работе.

Счастливец...Зайдите как-нибудь в любой сервисный центр компьютерной фирмы...
Цитата(Igor26 @ Apr 30 2008, 19:31) *
Тот же самый USB-разъём взгляните как выглядит. Сначала идут контакты питания, а затем сигнальные. Та же песня и с PCMCI. Как Вы думаете, почему? А потому, что сначала уравниваются потенциалы внешнего устройства с компьютером, на периферию подается питание, сразу же выходы внешнего устройства переводятся в Z-состояние и только потом начинается "болтовня" периферейной платы с ПК.

Блаженны верующие...
Go to the top of the page
 
+Quote Post
smalcom
сообщение May 1 2008, 05:08
Сообщение #58


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

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



2Flasher
Цитата
Измерял-правильное слово
Или школьный вольтметр не позволяет этого сделать?

у вас плохой день? наехать охота?
Школьный вольтметр называется С1-76

2aesok
Цитата
В следующий раз посылайте исходники.

с начала значит тему не читал... исходники одни и теже
ммм, да в одной прошивке было там про ватчдог. уже после того как начал разбираться.
ЗЫ. исходник в качестве коментариев помещен в ассемблерный листинг
Цитата
Компилируют проект с отключенной оптимизацией только те, кто не знает слова volatile.

"Пгемного благодаген"... Спасибо за совет

а отличия есть. пример функции полученной новым
Цитата
void Usart0_SetAddress(byte ad)
{
ce: df 93 push r29
d0: cf 93 push r28
d2: 0f 92 push r0
d4: cd b7 in r28, 0x3d ; 61
d6: de b7 in r29, 0x3e ; 62
d8: 89 83 std Y+1, r24 ; 0x01
addr = ad;
da: 89 81 ldd r24, Y+1 ; 0x01
dc: 80 93 13 03 sts 0x0313, r24
}
e0: 0f 90 pop r0
e2: cf 91 pop r28
e4: df 91 pop r29
e6: 08 95 ret

и старым
Цитата
void Usart0_SetAddress(byte ad)
{
ce: cf 93 push r28
d0: df 93 push r29
d2: cd b7 in r28, 0x3d ; 61
d4: de b7 in r29, 0x3e ; 62
d6: 21 97 sbiw r28, 0x01 ; 1
d8: 0f b6 in r0, 0x3f ; 63
da: f8 94 cli
dc: de bf out 0x3e, r29 ; 62
de: 0f be out 0x3f, r0 ; 63
e0: cd bf out 0x3d, r28 ; 61
e2: 89 83 std Y+1, r24 ; 0x01
addr = ad;
e4: 89 81 ldd r24, Y+1 ; 0x01
e6: 80 93 17 03 sts 0x0317, r24
ea: 21 96 adiw r28, 0x01 ; 1
ec: 0f b6 in r0, 0x3f ; 63
ee: f8 94 cli
f0: de bf out 0x3e, r29 ; 62
f2: 0f be out 0x3f, r0 ; 63
f4: cd bf out 0x3d, r28 ; 61
f6: df 91 pop r29
f8: cf 91 pop r28
fa: 08 95 ret

компиляторами
Go to the top of the page
 
+Quote Post
Flasher
сообщение May 1 2008, 14:38
Сообщение #59


Местный
***

Группа: Свой
Сообщений: 374
Регистрация: 6-09-05
Из: Тирасполь, Приднестровье
Пользователь №: 8 294



Приношу свои извинения автору- благодаря "правильной" пунктуации в первом предложении первого поста("Наблюдается следующая картина: казалось бы без всяких причин виснет контроллер, если дотронуться металическим предметом до ножек кварца, то или пускается дальше или уходит в перезагрузку, или сделает еще пару шагов и опять виснет.")- понял его проблему как зависание вследствии касания отверткой кварца. Ну учили меня так не правильно русскому языку...
В свете открывшихся обстоятельств, могу предположить, что причина- корявый софт, хотя правильность схемотехники тоже под вопросом. И по поводу школьного вольтметра- ну не покажет он одиночные микросекундные выбросы.
Go to the top of the page
 
+Quote Post
svl
сообщение May 1 2008, 15:01
Сообщение #60


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 20-12-07
Пользователь №: 33 465



Автору темы, для решения вопроса, следует выложить принципиальную схему(если он конечно не против), хотя бы цепи питания от входного разъема до МК. С этого и начнём, дальше будет видно...

Сообщение отредактировал svl - May 1 2008, 15:12
Go to the top of the page
 
+Quote Post
smalcom
сообщение May 1 2008, 22:05
Сообщение #61


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

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



2Flasher, я действительно неправ с пунктуацией в первом посте -приношу извинения.

схема, софт?невопрос


чета в одном посте не добавило
Прикрепленное изображение


Сообщение отредактировал smalcom - May 1 2008, 22:06
Go to the top of the page
 
+Quote Post
svl
сообщение May 2 2008, 07:56
Сообщение #62


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 20-12-07
Пользователь №: 33 465



Попробуй подключить к схеме аккумулятор или крону, решает вопрос о помехе в питании и погоняй девайс. А вообще в качестве стабилизатора, я бы использовал ШИМ + танталы по цепи питания.
Go to the top of the page
 
+Quote Post
Flasher
сообщение May 2 2008, 11:18
Сообщение #63


Местный
***

Группа: Свой
Сообщений: 374
Регистрация: 6-09-05
Из: Тирасполь, Приднестровье
Пользователь №: 8 294



Цитата(smalcom @ May 2 2008, 01:05) *
схема, софт?невопрос

Критика схемы:
Зачем нужно- пояснять не буду- хто знает- сам поймет.
1) МАХ232 - со стороны PC последовательно резисторы 100 Ом и кондеры 100пик между выходом и входом максимки.
2)С15 убрать, С13 уменьшить до 4,7мкф
3)Вход 12 вольт на кренку пустить через резистор пару ом. Параллельно входу кренки поставить что-то типа 1,5КЕ18А
4) вместо 6N137 можете еще глянуть в сторону H11L1
5) внешний супервизор- ну просто нах не нужен.
6) Набуя там hc245 - науке неизвестно...
Про все остальное- автор может в асю стукнуть при желании- поможем.
Go to the top of the page
 
+Quote Post
=AK=
сообщение May 2 2008, 13:02
Сообщение #64


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(Flasher @ Apr 26 2008, 06:38) *
Это компьютерный блок питания. В большинстве случаев товарищи даже и не знают, что пытаются запитать свою технику от драндулета, на корпусе которого в незаземленном варианте присутствует 110 Вольт

Хм... А сколько там, по-вашему, ДОЛЖНО БЫТЬ, в незаземленном варианте-то? И какое сопротивление было у мультиметра, котрым вы намеряли эти 110 В?


Цитата(Flasher @ May 2 2008, 20:48) *
Критика схемы:

Некоторые моменты в схеме позволяют уверенно утверждать, что автор схемы не читал статью "Помехоустойчивые устройства"
Go to the top of the page
 
+Quote Post
Flasher
сообщение May 2 2008, 13:23
Сообщение #65


Местный
***

Группа: Свой
Сообщений: 374
Регистрация: 6-09-05
Из: Тирасполь, Приднестровье
Пользователь №: 8 294



Цитата(=AK= @ May 2 2008, 16:02) *
Хм... А сколько там, по-вашему, ДОЛЖНО БЫТЬ, в незаземленном варианте-то? И какое сопротивление было у мультиметра, котрым вы намеряли эти 110 В?
Некоторые моменты в схеме позволяют уверенно утверждать, что автор схемы не читал статью "Помехоустойчивые устройства"

Открываем схему любого компового блока питания. На входе между фазовым и нулевым проводом стоят на корпус(который должен подключаться к заземлению) конденсаторы 4700 *2kV. Для переменного тока частотой 50Гц эти конденсаторы имеют реактивное сопротивление = 1 / (2 * Pi * F * C) 670кОм.
Образуется делитель напряжения , со средней точкой на корпусе, если его не заземлить. Китайский мультиметр имеет входное сопротивление несколько Мом...дальше объяснять?


Насчет второго замечания- когда сможете изготовлять устройства с 4 группой жесткости по электромагнитной совместимости- обсудим тонкости за баночкой пива вместе smile.gif
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение May 2 2008, 13:28
Сообщение #66


извечный пессимист
*****

Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125



Цитата(smalcom @ May 2 2008, 03:05) *
2Flasher, я действительно неправ с пунктуацией в первом посте -приношу извинения.

схема, софт?невопрос
чета в одном посте не добавило
Прикрепленное изображение

По схеме можно сказать одно, половину деталей можно смело выкинуть в результате хватит и 88меги, а вот то что необходимо на схеме не наблюдается. Особенно умиляют подтяжки на 485 - 47К, а так же транзистор. который и нафиг там не нужен, да и резисторы по SPI - 4,7К внушают уважение smile.gif


--------------------
Slaves are those of this world
Given freedom to lay chains upon The Master
The wolf is no longer free
Release the chains and come for me
Go to the top of the page
 
+Quote Post
=AK=
сообщение May 2 2008, 13:35
Сообщение #67


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(Flasher @ May 2 2008, 22:53) *
дальше объяснять?

Да. Пожалуйста, не останавливайтесь на полдороги. Недоговоренности могут привести к ошибкам.

Цитата(Flasher @ May 2 2008, 22:53) *
Насчет второго замечания- когда сможете изготовлять устройства с 4 группой жесткости по электромагнитной совместимости- обсудим тонкости за баночкой пива вместе smile.gif

Я дал ссылку на статью, которую, насколько я могу судить, автор схемы не читал, но которую ему, как мне кажется, полезно было бы прочесть. Объясните, каким таинственным образом моя рекомендация почитать статью связана с тем, прошли ли мои изделия испытания на 4 группу или нет? Пока что речь идет о том, что устройство и на 1 группу не тянет, поскольку зависает даже при очевидном отсутствии внешних помех.
Go to the top of the page
 
+Quote Post
Flasher
сообщение May 2 2008, 14:10
Сообщение #68


Местный
***

Группа: Свой
Сообщений: 374
Регистрация: 6-09-05
Из: Тирасполь, Приднестровье
Пользователь №: 8 294



Цитата(=AK= @ May 2 2008, 16:35) *
Да. Пожалуйста, не останавливайтесь на полдороги. Недоговоренности могут привести к ошибкам.
Я дал ссылку на статью, которую, насколько я могу судить, автор схемы не читал, но которую ему, как мне кажется, полезно было бы прочесть. Объясните, каким таинственным образом моя рекомендация почитать статью связана с тем, прошли ли мои изделия испытания на 4 группу или нет? Пока что речь идет о том, что устройство и на 1 группу не тянет, поскольку зависает даже при очевидном отсутствии внешних помех.

Рекомендацию принял на свой счет smile.gif Так что ссори, если что не так. Статья довольно жиденькая и многие ошибки она никак не поможет найти. Поэтому максимум- пару выводов автор может взять на будущее. здесь больше вопрос целесообразности схемотехнических решений.
Продолжу про БП. Корпус его во многих реализациях соединен с общим проводом выходных цепей, а уж если он находится в компьютере- то тем более соединен. Таким образом на устройстве присутствует потенциал половины сетевого напряжения относительно заземления и всего что не имеет этого потенциала. Ток КЗ между землей и корпусом 110В/680 Ком. -десятые доли миллиампера. Так что при касании устройства чем-то еще пойдет ток через схему либо до уравнивания потенциалов либо постоянно. Отчего схема, конечно , может обидется...
Go to the top of the page
 
+Quote Post
GrayCat
сообщение May 2 2008, 21:33
Сообщение #69


Местный
***

Группа: Свой
Сообщений: 263
Регистрация: 7-10-05
Из: UA
Пользователь №: 9 342



Цитата(Stanislav_S @ May 2 2008, 16:28) *
Особенно умиляют подтяжки на 485 - 47К, а так же транзистор. который и нафиг там не нужен,

Подтяжки как подтяжки... Вы зато посмотрите на супернавороченный "терминатор"! lol.gif При таком терминаторе (с высоким импедансом на постоянке) хватит и 47К.

Теперь насчет транзистора. Как я вижу, изолированное питание для RS-485-ой части ("+5Viso") схема получает отдельно, по одному кабелю с самой линией? Мы с таким сталкивались. Получается, при отрубании питания процессорной части с сохранением питания линии выход оптрона включения драйвера (в данной схеме "ISO2") в "неактивном" состоянии, т.е. транзистор оптрона закрыт, и если он напрямую подключен к DE драйвера RS-485, то подтяжка к "+5Viso" заставляет драйвер включаться на постоянную передачу.... maniac.gif Весь обмен на линии останавливается, объект стоит, электрики бегают, операторы матерятся, мастера смены пинают программистов... 1111493779.gif ...И все это из-за отсутствия инвертора между выходом оптрона и входом DE драйвера RS-485. Разработчики этой схемы, судя по наличию инвертора (в виде Q1) тоже с такой проблемой сталкивались beer.gif . Другое дело, что "забыли" КРЕНку сделать на "+5Viso", а по линии подавать вольт 12, но это уже другие проблемы...

У нас, например, сделан в каждом модуле на питание RS-485 персональный DC/DC от основного питания всей схемы.


--------------------
Gray©at
Go to the top of the page
 
+Quote Post
=AK=
сообщение May 3 2008, 03:38
Сообщение #70


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(Flasher @ May 2 2008, 23:40) *
Продолжу про БП. Корпус его во многих реализациях соединен с общим проводом выходных цепей, а уж если он находится в компьютере- то тем более соединен. Таким образом на устройстве присутствует потенциал половины сетевого напряжения относительно заземления и всего что не имеет этого потенциала.

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

Следующий шаг. В своем исходном посте вы особо выделяете и все время подчеркиваете, что речь идет о БП компьютера. Создается впечатление, что БП компьютера в этом смысле является чем-то особым, выдающимся. Так ли это?

Какое напряжение вы ожидаете увидеть между землей и вторичной если возьмете обычный трансформатор 220В 50Гц? А если возьмете маломощный импульсный блок питания, тапример, так наз. "plug pack" (т.е. маломощный БП, совмещенный с сетевой вилкой)?

Цитата(Flasher @ May 2 2008, 23:40) *
Отчего схема, конечно , может обидется...

Как вы думаете, может ли "обидеться" схема, если вместо БП компьютера используется любой другой БП (конечно, при прочих равных, т.е. при отсутствии заземления)?

Цитата(Flasher @ May 2 2008, 20:48) *
6) Набуя там hc245 - науке неизвестно...

Судя по тому, что проц может управлять их направлением, они используются и как входные буферы, и как выходные драйверы типа "с открытым эмиттером". Особой науки в этом нет, просто надо схемы научиться читать.
Go to the top of the page
 
+Quote Post
smalcom
сообщение May 3 2008, 05:11
Сообщение #71


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

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



По поводу транзистора в 485 тута уже объяснили)) таки были проблемы с переходом в состояние передачи.
HC245 нужны для того чтобы они выгорали - их легче менять чем атмегу, плюс вместо них можно ставить улн2803.
Подтяжки на 485ом на 47к нужны чтобы при переходе всех модулей в режим приема линии не принимала нестабильных состояний.

Почему не пущено по линии 12В, почему нет защиты от переполюсовки питания? Провтыкал, када управляющие звенья начинают вмешиваться и когда "быстрей, быстрей,быстрей".

По поводу оптрона - посмотрю, сенк.
Резисторы в цепи 232, угу я в курсе про них, но данные железяки используются в нестандартных местах... К примеру кабель с 232-м до следующего устройства может быть 5,7,15 метров.

Супервизор зачем? Я - параноик)

Цитата
У нас, например, сделан в каждом модуле на питание RS-485 персональный DC/DC от основного питания всей схемы.

тоже так хотел, уже и накидал схемку, как вдруг:
Я: шеф пали какая железяка у нас терь будет!
Шеф: должно быть маленькое и дешевое!
Я: Ммм, ладно.
Go to the top of the page
 
+Quote Post
aesok
сообщение May 3 2008, 07:18
Сообщение #72


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(smalcom @ Apr 30 2008, 15:07) *
Если комуто вдруг интересно будет(тк как в асме я не силен) ложу три сгенеренных компиляторами файла
linavr_new - gcc-4.3.0 + binutils-2.18 + libc-1.6
linavr_old - gcc-3.4.6 + binutils-2.15.92.0.2 + libc-1.4.6
winavr - gcc-4.1.2 + binutils-2.17 + libc-1.4.6


Прблема вот здесь (castet_switch_rs1.7ucom.linavr_new.lss):
Код
SIGNAL(_VECTOR(10)) //4.4ms
{
     97a:    1f 92           push    r1
     97c:    0f 92           push    r0
     97e:    0f b6           in    r0, 0x3f; 63
     980:    0f 92           push    r0
     982:    11 24           eor    r1, r1
     984:    8f 93           push    r24
     986:    df 93           push    r29
     988:    cf 93           push    r28
     98a:    cd b7           in    r28, 0x3d; 61
     98c:    de b7           in    r29, 0x3e; 62
    TickVal1s++;
     98e:    80 91 56 03     lds    r24, 0x0356
     992:    8f 5f           subi    r24, 0xFF; 255
     994:    80 93 56 03     sts    0x0356, r24
    TickVal50ms++;
     998:    80 91 55 03     lds    r24, 0x0355
     99c:    8f 5f           subi    r24, 0xFF; 255
     99e:    80 93 55 03     sts    0x0355, r24
    //input devices
    Inputs_Test();
     9a2:    0e 94 52 08     call    0x10a4; 0x10a4 <Inputs_Test>
    Usart0_FF();


При в ходе в обработчик прерывания сохраняються регистры r1, r0, SREG, r24, r29, r28. Дальше по коду идет вызов функции Inputs_Test, которая:
Код
void Inputs_Test(void)
{
    10a4:    df 93           push    r29
    10a6:    cf 93           push    r28
    10a8:    cd b7           in    r28, 0x3d; 61
    10aa:    de b7           in    r29, 0x3e; 62
    if((IN_PORT & (0x01 << COIN_IN)) == 0) //if high level on input1 pin
    10ac:    e9 e3           ldi    r30, 0x39; 57
    10ae:    f0 e0           ldi    r31, 0x00; 0
    10b0:    80 81           ld    r24, Z
    10b2:    88 2f           mov    r24, r24
    10b4:    90 e0           ldi    r25, 0x00; 0
    10b6:    81 70           andi    r24, 0x01; 1
    10b8:    90 70           andi    r25, 0x00; 0
    10ba:    00 97           sbiw    r24, 0x00; 0

Изменяет регистры r31, r30, r24, r25.

Тоесть, обработчик прерываня сохраняет не все регистры которые в нем изменяються.

gcc-4.1.2 генерирует правильный код:
Код
SIGNAL(_VECTOR(10)) //4.4ms
{
     9ee:    1f 92           push    r1
     9f0:    0f 92           push    r0
     9f2:    0f b6           in    r0, 0x3f; 63
     9f4:    0f 92           push    r0
     9f6:    11 24           eor    r1, r1
     9f8:    2f 93           push    r18
     9fa:    3f 93           push    r19
     9fc:    4f 93           push    r20
     9fe:    5f 93           push    r21
     a00:    6f 93           push    r22
     a02:    7f 93           push    r23
     a04:    8f 93           push    r24
     a06:    9f 93           push    r25
     a08:    af 93           push    r26
     a0a:    bf 93           push    r27
     a0c:    ef 93           push    r30
     a0e:    ff 93           push    r31
     a10:    cf 93           push    r28
     a12:    df 93           push    r29
     a14:    cd b7           in    r28, 0x3d; 61
     a16:    de b7           in    r29, 0x3e; 62


Прада зачем было нужно лесть с отверткой в кварц я не понял.

Анатолий.

Сообщение отредактировал aesok - May 3 2008, 07:19
Go to the top of the page
 
+Quote Post
=AK=
сообщение May 3 2008, 08:03
Сообщение #73


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(smalcom @ May 3 2008, 14:41) *
HC245 нужны для того чтобы они выгорали - их легче менять чем атмегу, плюс вместо них можно ставить улн2803.

Хм... Вы в курсе, что ULN2803 имеют выходы с открытым коллектором, т.е. ток нагрузки втекает в выходы, а то, что у вас нарисовано на выходе 245-х дает вытекающий ток? Странные у вас "замены".

Цитата(smalcom @ May 3 2008, 14:41) *
Подтяжки на 485ом на 47к нужны чтобы при переходе всех модулей в режим приема линии не принимала нестабильных состояний.

Приемники RS485 всегда имеют петлю гистерезиса (т.е. являются триггерами Шмитта). Поэтому для них принципиально не существует "нестабильных состояний", их выход стабильно находится или в 0, или в 1.

Я догадываюсь, что говоря о "нестабильных состояниях" вы на самом деле имели ввиду "неопределенные состояния". Действительно, когда все приемопередатчики RS485 находятся в режиме приема, и разность напряжений между сигнальными линиями мала, на выходе любого приемника может быть как 0, так и 1, заранее сказать нельзя, что именно. При этом даже малая помеха, наведенная на линию связи, способна вызвать переключение и инициировать начало прииема ложного пакета данных. Для определенности и уменьшения влияния помех предпочтительно использовать приемопередатчики с так наз. failsafe фичей. Читайте аппноту TI Interface Circuits for TIA/EIA-485 (RS-485), там это подробно разобрано начиная со стр. 2-5. Обратите внимание на рекомендуемые номиналы резисторов подтяжки.

Навешивая подтягивающие резисторы или используя failsafe приемники, вы не избавляетесь от неопределенности сигнала на входе UARTа в паузах между пакетами. Эта неопределенность уменьшается, но не исчезает. При мало-мальски мощной наведенной помехе вы опять получите на входе UART-а то, что вам не хотелось бы видеть.

Вообще же требование на наличие failsafe (самопального или встроенного) является верным признаком того, что или используется дурной самопальный протокол обмена, или же нормальный протокол реализован программистом с грубыми ошибками. В любом случае помехоустойчивость обмена будет примерно в сотню раз хуже, чем могла бы быть, если бы, например, был использован грамотно реализованный Modbus RTU. Хорошему протоколу совершенно по барабану, каково состояние приемников, когда на линии нет драйвера.
Go to the top of the page
 
+Quote Post
forever failure
сообщение May 3 2008, 08:13
Сообщение #74


Местный
***

Группа: Участник
Сообщений: 256
Регистрация: 6-03-05
Из: Екатеринбург
Пользователь №: 3 112



Подтяжки драйвера RS-485, кстати тоже неправильно сделаны. Линия A должна подтягиваться к "+", B - к общему ("-"), а не наоборот.
Go to the top of the page
 
+Quote Post
=AK=
сообщение May 3 2008, 08:43
Сообщение #75


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(forever failure @ May 3 2008, 17:43) *
Подтяжки драйвера RS-485, кстати тоже неправильно сделаны. Линия A должна подтягиваться к "+", B - к общему ("-"), а не наоборот.

Имейте ввиду, что оптрон инвертирует сигнал.

Однако, даже если бы он не инвертировал. Объясните, почему, собственно, на входе UARTа вам хочется в паузах между пакетами видеть высокий уровень, а не низкий. Зачем?
Go to the top of the page
 
+Quote Post
gte
сообщение May 3 2008, 09:56
Сообщение #76


Гуру
******

Группа: Свой
Сообщений: 2 318
Регистрация: 13-02-05
Из: Липецкая область
Пользователь №: 2 613



Цитата(smalcom @ May 3 2008, 09:11) *
Я: шеф пали какая железяка у нас терь будет!
Шеф: должно быть маленькое и дешевое!
Я: Ммм, ладно.

L78M05 имеет небольшой выходной ток. Стоит подумать над необходимостью предохранителей F1, F2.
Они сработают при выходе из строя L78M05, но тогда достаточно одного на входе, да еще необходимо чем то ограничить напряжение на выходе стабилизатора, иначе в предохранителях уже не будет смысла. Зачем так поставлен F3? Защиту по входному питанию стоит поставить.
По зависаниям, если не менялась разводка, вряд ли кто поможет. Ищите отличия в платах, деталях.
Go to the top of the page
 
+Quote Post
aesok
сообщение May 3 2008, 10:55
Сообщение #77


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(aesok @ May 3 2008, 11:18) *
Тоесть, обработчик прерываня сохраняет не все регистры которые в нем изменяються.


Попробуйте все функции которые вызываються из прерываний объявить с атрибутом "always_inline"

Анатолий.
Go to the top of the page
 
+Quote Post
smalcom
сообщение May 3 2008, 19:34
Сообщение #78


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

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



2aesok, МЕГАСЕНК. как думаете в мейллист команде гцц стоит написать об этом, или это ключами компилятора решается? Попробую совет.

Цитата
Хм... Вы в курсе, что ULN2803 имеют выходы с открытым коллектором, т.е. ток нагрузки втекает в выходы, а то, что у вас нарисовано на выходе 245-х дает вытекающий ток? Странные у вас "замены".


управлять же можно разными железками. бывают такие которым нужен ТТЛ, есть такие которым нужен мощный выход ОК. в зависимости от этого используется та или иная ревизия. также ревизию с 245ми проще(почти только программно) перевести на 16входов(ЗЫ. встречалась правка ТЗ прямо на объекте).

Цитата
Вообще же требование на наличие failsafe (самопального или встроенного) является верным признаком того, что или используется дурной самопальный протокол обмена, или же нормальный протокол реализован программистом с грубыми ошибками.

протокол работает хорошо и ошибки отсеиваются без проблем. я просто перестраховываюсь(этим блокам 3года от роду)

Цитата
L78M05 имеет небольшой выходной ток

есть на 1 ампер. Вылетает эта штука не сразу при достижении одного ампера.

Цитата
Зачем так поставлен F3?

при работе с улн он ограничивает ток нагрузки.

Цитата
иначе в предохранителях уже не будет смысла

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

Цитата
Ищите отличия в платах, деталях.

проблема найдена - разный код, сгенерированный разными компиляторами
Go to the top of the page
 
+Quote Post
aesok
сообщение May 3 2008, 21:15
Сообщение #79


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(smalcom @ May 3 2008, 23:34) *
2aesok, МЕГАСЕНК. как думаете в мейллист команде гцц стоит написать об этом


нет не нужно, поздно уже писать.

Анатолий.
Go to the top of the page
 
+Quote Post
defunct
сообщение May 3 2008, 21:17
Сообщение #80


кекс
******

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



Цитата(aesok @ May 4 2008, 00:15) *
нет не нужно, поздно уже писать.

Анатолий,

А этот баг присутсвует в версии 4.2.2?
Go to the top of the page
 
+Quote Post
aesok
сообщение May 3 2008, 21:31
Сообщение #81


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(defunct @ May 4 2008, 01:17) *
А этот баг присутсвует в версии 4.2.2?


Нет, только в 4.3.0

Анатолий.
Go to the top of the page
 
+Quote Post
sensor_ua
сообщение May 3 2008, 22:03
Сообщение #82


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

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Цитата
Объясните, почему, собственно, на входе UARTа вам хочется в паузах между пакетами видеть высокий уровень, а не низкий. Зачем?

Чтобы при неактивном канале было НЕАКТИВНОЕ логическое состояние - чтобы не только активность в канале определялась без лишних вопросов, но и чтобы неактивный канал не вызывал разнотолков. Тем более если у Вас аппаратный УАРТ с определением состояния линии BREAK, то Вы на коне, а если программный - придётся натрудить не только мозолей на пальцах, но и места в памяти программ, которой не завсегда много, ну а если какой-нить простенький аппаратный УАРТ, то научиться обходить его типа "убогость" может оказаться сложнее, чем реализовать весь программно. Итого - использование определения сигнала линии BREAK избыточно и нецелесообразно в относительно простых программно-аппаратных решениях. Ну и далее - переход из BREAK в режим передачи должен сопровождаться выдерживанием передающим хостом некоего таймаута не менее 1-го байта или вариантов с заполнением канала некими символами (0xFF) перед непосредственно передачей, а последнее налагает некоторые ограничения на реализации протоколов.
IMNHO, при неактивном состоянии линии её удержание в состоянии логического нуля не просто нецелесообразно, но и неоправданно усложняет само использование канала.
IMHO линию нужно держать при неактивном состоянии в логической единице, что избавит всех от ненужных хлопот.
ЗЫ. Программы, у которых "срывает крышу" от всяких несуразиц в канале - на помойку, независимо от того, какой уровень в канале при неактивном состоянии.


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
defunct
сообщение May 3 2008, 22:18
Сообщение #83


кекс
******

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



Цитата(aesok @ May 4 2008, 00:31) *
Нет, только в 4.3.0

Спасибо, успокоили. beer.gif
Go to the top of the page
 
+Quote Post
=AK=
сообщение May 4 2008, 00:41
Сообщение #84


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(sensor_ua @ May 4 2008, 07:33) *
Чтобы при неактивном канале было НЕАКТИВНОЕ логическое состояние - чтобы не только активность в канале определялась без лишних вопросов, но и чтобы неактивный канал не вызывал разнотолков.

В неактивном канале нужное вам состояние на входе UART-а обеспечивается подтягивающими резисторами. Предположим, вы поставили резисторы по 1к, т.е. один резистор тянет на +5, другой - на землю. Какой мощности должна быть наведенная помеха для того, чтобы на входе UART-а появился ложный "старт"? В первом приближении, помеха должна иметь можность 5В^2/2k=12.5 мВт (у автора топика с его 47к подтяжками будет еще меньше, но это не суть важно). После этого ваша софтинка примет помеховый сигнал за истинный, поскольку вы надеетесь на резисторы и на то, что такой помехи не будет. Начнется ложный прием, а пришедший вслед за этим настоящий пакет данных будет испорчен.

Теперь оценим, какой мощности должна быть помеха, которая "испортит жизнь" правильному протоколу, такому, как Modbus RTU и т.п. Правильный протокол не делает никаких предположений о состоянии линии связи в паузах. Зато он требует, чтобы в начале каждого пакета включенный передатчик держал пасивное высокое состояние на линии в течении определенного времени, которое должно быть существенно больше, чем байт-интервал. Еще такой протокол требует, чтобы во время передачи пауза между соседними байтими в пакете была определенной и достаточно маленькой.

Предположим, наведенная помеха в паузах запускает ложный прием. Однако ложный пакет будет отвергнут, поскольку очень маловероятно, что она выдает помеховые импульсы в нужном темпе (чтобы выполнялось требование о малой паузе между байтами) и что CRC помехового пакета будет правильным.

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

Теперь оценим, какой мощности должна быть помеха, чтобы испортить настоящий пакет данных в таком протоколе. Работающий передатчик RS485 обязан уметь выдавать на линию не менее 60 мА тока (реально выдает раза в два больше). Мощность помехи, необходимая для того, чтобы пересилить выход передатчика, должна быть 5В*60мА=300мВт. Почти в 20 раз больше, чем с резисторами.

Вот настолько и будет лучше помехоустойчивость правильного протокола по сравнению с дешевыми самопалами, которым нужно, "чтобы при неактивном канале было НЕАКТИВНОЕ логическое состояние" (с). Разница в десятки-сотни раз. smile.gif

Цитата(sensor_ua @ May 4 2008, 07:33) *
ЗЫ. Программы, у которых "срывает крышу" от всяких несуразиц в канале - на помойку, независимо от того, какой уровень в канале при неактивном состоянии.

lol.gif lol.gif lol.gif

Добавьте к программам протоколы, у которых "срывает крышу" от всяких несуразиц в канале.
Go to the top of the page
 
+Quote Post
smalcom
сообщение May 4 2008, 06:49
Сообщение #85


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

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



47k недают покоя)) вы же учитывайте что на линии не одно устройство, а до 32. в даташите на st485 указаны 22k. а увеличил я их чтобы немного снизить потребление тока. для линий я использую экранированую витую пару пятой категории.
Go to the top of the page
 
+Quote Post
=AK=
сообщение May 4 2008, 07:14
Сообщение #86


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(smalcom @ May 4 2008, 16:19) *
чтобы немного снизить потребление тока.

У вас каждый оптрон жрет по 10 мА ни за понюх табаку, а вы на спичках пытаетесь экономить. Замените хотя бы ISO2 на обычный транзисторный оптрон (заодно Q1 можно будет выбросить, если грамотно включить), потребление уменьшится на 10 мА при прочих равных. Вы же, надеюсь, не дергаете сигнал прием/передача с частотой 1 МГц? sad.gif
Цитата(smalcom @ May 4 2008, 16:19) *
для линий я использую экранированую витую пару пятой категории.

С двойным экраном? Один из фольги, второй из медной плетенки? Тогда ладно... smile.gif

А то мы как-то проверяли кабели пятой категории на излучаемые помехи. И практически никакой разницы между неэкранированным и дешевым экранированным (экран из фольги) не обнаружили.
Go to the top of the page
 
+Quote Post
GrayCat
сообщение May 4 2008, 14:41
Сообщение #87


Местный
***

Группа: Свой
Сообщений: 263
Регистрация: 7-10-05
Из: UA
Пользователь №: 9 342



Насчет "устойчивости" протокола...

Вот вы когда дорогу переходите на светофоре. Тоже, в принципе, придерживаетесь определенного протокола: "Красный - стоять, зеленый - идти". Вполне нормальный, достаточно помехоустойчивый протокол. НО. Когда загорается зеленый и вы собираетесь пойти - вы смотрите на дорогу? Вы убеждаетесь в отсутствии "лихачей", стареньких подслеповатых дедушек на "Москвичах", блондинок?

Во-от, так что как бы ни был хорош "протокол" - но если есть возможность улучшить его работу элементарными средствами (в данном случае "растяжки" на RS-485), надо ими воспользоваться. =AK= все правильно написал про "грамотно реализованный" протокол, при наличии помех он, конечно, "битые" пакеты не пропустит... Но для уменьшения количества этих самых битых пакетов вдобавок к протоколу меры защиты аппаратного уровня не помешают.


Цитата(=AK= @ May 3 2008, 11:43) *
Имейте ввиду, что оптрон инвертирует сигнал.

Внимательно изучите схему. В этом включении - не инвертирует!

Цитата
Однако, даже если бы он не инвертировал. Объясните, почему, собственно, на входе UARTа вам хочется в паузах между пакетами видеть высокий уровень, а не низкий. Зачем?

Потому что "исторически так сложилось" © М.С.Горбачев. В "неактивном" состоянии на линии UART предполагается уровень "MARK" (равный -12В в RS-232 или лог. "1" в ТТЛ). Стартовый бит начинается с перехода "MARK -> SPACE".


--------------------
Gray©at
Go to the top of the page
 
+Quote Post
smalcom
сообщение May 4 2008, 17:21
Сообщение #88


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

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



Цитата
Замените хотя бы ISO2 на обычный транзисторный оптрон

я хотел их заменить, проблема в том что разработка данного варианта велась в краткие прекраткие сроки, я еще и втык получил за попытку сделать лучше

Цитата
Вы же, надеюсь, не дергаете сигнал прием/передача с частотой 1 МГц?

нет, конечно)) максимум вроде около 100-150Гц

по протоколу. протокол у меня простой:
Заголовок
Адресат
Команда
Данные постоянной длины
CRC16

перед отправкой пакета задержка, чтобы линия успокоилась. есть главный контроллер который опрашивает линию у всех ведомых и полученные данные отправляет на комп. в линии не больше 32 устройств. длина линии в среднем 100м(так по памяти, есть больше, есть меньше). топология - шина(тк это RS485). скорость - 19200.
Go to the top of the page
 
+Quote Post
=AK=
сообщение May 4 2008, 23:13
Сообщение #89


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(GrayCat @ May 5 2008, 00:11) *
Во-от, так что как бы ни был хорош "протокол" - но если есть возможность улучшить его работу элементарными средствами (в данном случае "растяжки" на RS-485), надо ими воспользоваться.

Наличие или отсутствие растяжек никак не влияет на работу правильного протокола, поэтому "улучшить его работу" растяжками невозможно. "Чувствительность" к наличию растяжек есть полная гарантия того, что протокол плохой.

Цитата(GrayCat @ May 5 2008, 00:11) *
Но для уменьшения количества этих самых битых пакетов вдобавок к протоколу меры защиты аппаратного уровня не помешают.

Растяжки не уменьшают количество битых пакетов, если протокол правильно реализован. Чтобы получился битый пакет, в плохом протоколе помеха должна пересилить растяжки, а в хорошем - пересилить работающий выход передатчика.

Цитата(smalcom @ May 5 2008, 02:51) *
перед отправкой пакета задержка, чтобы линия успокоилась.

Я писал, что нужно два элемента:
- "Задержка перед отправкой пакета", когда передатчик включен, но данных не передает. Длительность паузы - порядка 2-3 байт-интервалов.
- Гарантия малых пауз между соседними байтами в пакете. Если приемник видит большую паузу между байтами, текущий пакет немедленно выбрасывается как ложный, а приемник мгновенно приводится в состояние готовности к приему нового пакета.

При этом ложные помеховые пакеты, прием которых начался в паузе между настоящими пакетами, будут выброшены за время паузы в начале настоящего пакета. Соответственно, помеха не в состоянии испортить пакет данных, вне зависимости от наличия или отсутствия подтяжек.
Go to the top of the page
 
+Quote Post
defunct
сообщение May 5 2008, 02:35
Сообщение #90


кекс
******

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



Цитата(=AK= @ May 5 2008, 02:13) *
При этом ложные помеховые пакеты, прием которых начался в паузе между настоящими пакетами, будут выброшены за время паузы в начале настоящего пакета. Соответственно, помеха не в состоянии испортить пакет данных, вне зависимости от наличия или отсутствия подтяжек.

Есть более простой способ решающий эту проблему - байт стаффинг.
Никаких задержек и никаких лишних включений "перед отправкой пакета" не потребуется. Не потребуется также отмерять точные интервалы.
Проигрываем в объеме передаваемых данных, но раз используются скорости 19200 предположу, что трафик в сети невелик, а значит применить байт стаффинг можно.

Цитата
по протоколу. протокол у меня простой:
Заголовок
Адресат
Команда
Данные постоянной длины
CRC16

Что такое "Заголовок"?
Если его выбросить то формат у вас совпадает с modbus rtu. Когда "Адресат" идет первым, то по первому же байту можно определить предназначен ли этот пакет конкретному устройству или нет и вести предварительную отбраковку еще в прерывании.
Go to the top of the page
 
+Quote Post
=AK=
сообщение May 5 2008, 03:00
Сообщение #91


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(defunct @ May 5 2008, 12:05) *
Есть более простой способ решающий эту проблему - байт стаффинг.
Никаких задержек и никаких лишних включений "перед отправкой пакета" не потребуется. Не потребуется также отмерять точные интервалы.

Нет, не работает. В ситуации, когда помеха запускает UART ложным старт-битом незадолго до байта заголовка (soh), ваш пакет бyдет испорчен, поскольку заголовочный байт не будет принят. Значит, при определенном уровне помех, когда ложный запуск происходит часто, связи вообще не будет, все пакеты бyдут испорчены. Правильный протокол в этой ситуации будет работать как ни в чем не бывало.
Go to the top of the page
 
+Quote Post
defunct
сообщение May 5 2008, 03:54
Сообщение #92


кекс
******

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



Цитата(=AK= @ May 5 2008, 06:00) *
В ситуации, когда помеха запускает UART ложным старт-битом незадолго до байта заголовка (soh), ваш пакет бyдет испорчен, поскольку заголовочный байт не будет принят.

Не будет ничего испорчено. Последовательность такая:
Передатчик посылает 1-2 байта преамбулы 0xFF, открывающую стаффинг последовательность, RTU пакет, закрывающую стаффинг последовательность, и байт преамбулы. Использую этот подход в радио каналах и серьезно задумываюсь над переносом этого протокола в 485 сети потому что жесткие времянки модбаса слегка достают уже (при том что против формата RTU пакетов я ничего не имею - формат грамотный).
Плюсы:
1. Передатчик волен вставлять любые паузы между символами (актуально когда хост - компьютер с не реал-тайм драйвером UART'a),
2. Четко выделяется начало и конец пакета, к обработке можно переходить немедленно после приема закрывающего флага, не нужно считать CRC в прерывании на слейве.
3. Опять же хост - тот же компьютер с не риалтайм приемником вместо непрогнозируемого таймаута четко распознает конец пакета - что уменьшает время реакции.

Минусы
Избыточность. (в худшем случае 2х кратное увеличение количества передаваемых данных на 1 пакет).
Go to the top of the page
 
+Quote Post
=AK=
сообщение May 5 2008, 06:22
Сообщение #93


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(defunct @ May 5 2008, 13:24) *
Передатчик посылает 1-2 байта преамбулы 0xFF, открывающую стаффинг последовательность

Если передатчик посылает всего 1 байт преамбулы 0xFF:
- Помеха, которая создаст ложный старт-бит незадолго до этого, запустит UART
- В момент прихода байтa преамбулы 0xFF, UART, находящийся где-то в середине приема байта, "не увидит" 0xFF, а увидит некий ложный байт. Пакет будет испорчен.

Если передатчик посылает 2 байтa преамбулы 0xFF, то ситуация лучше: первый байт может быть испорчен, но второй "прочистит" приемник, так что пакет будет принят правильно. Однако по затратам времени два байта преамбулы ничем не лучше паузы в 2 байт-интервала. Что же касается накладных расходов, то ваши затраты на парсенье эскэйп-последовательностей выглядят не меньшими, чем затраты на проверку тайм-аутов между байтами. Разница в основном в том, что вы парсите софтом, а тайм-ауты проверяются в основном железом (таймером). Поэтому вам нужно меньше таймеров, но более производительный проц. В принципе шило на мыло, примерно тож на тож получится.
Go to the top of the page
 
+Quote Post
smalcom
сообщение May 5 2008, 08:20
Сообщение #94


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

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



Цитата
Что такое "Заголовок"?

байт(0xAB), которым начинается каждый пакет
Go to the top of the page
 
+Quote Post
galjoen
сообщение May 5 2008, 09:26
Сообщение #95


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(=AK= @ May 5 2008, 10:22) *
- Помеха, которая создаст ложный старт-бит незадолго до этого, запустит UART

Для того, чтобы не оказаться в такой ситуации я использую простой приём - ведущий тоже слушает линию в т.ч. и при своей передаче. Т.е. приёмник USART ведущего так-же будет запущен перед тем, как он начнёт передавать. Применительно к RS485 получится, что переданный и самопринятый байты ведущего не будут совпадать. В этом случае передатчик прерывает свою передачу и начинает всё заново. Временные затраты в этом случае минимальны.
bb-offtopic.gif
Но если вся сеть своя, и подключение чужих устройств не планируется, то есть НЕСРАВНЕННО ЛУЧШИЙ СПОСОБ - использование CAN-овских приёмопередатчиков. В этом случае приёмник может остановить передачу глючного пакета. Вообще при использовании CAN-овских приёмопередатчиков сплошные достоинства, и никаких недостатков - я когда-то давно эту тему поднимал. Кстати будет работать (не очень хорошо) сеть, где часть приёмопередатчиков RS485, а часть CAN.
Go to the top of the page
 
+Quote Post
=AK=
сообщение May 5 2008, 09:39
Сообщение #96


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(galjoen @ May 5 2008, 18:56) *
Для того, чтобы не оказаться в такой ситуации я использую простой приём - ведущий тоже слушает линию в т.ч. и при своей передаче. Т.е. приёмник USART ведущего так-же будет запущен перед тем, как он начнёт передавать. Применительно к RS485 получится, что переданный и самопринятый байты ведущего не будут совпадать. В этом случае передатчик прерывает свою передачу и начинает всё заново. Временные затраты в этом случае минимальны.

Это будет работать при условии, что помехи во всей сети совершенно одинаковы, что, в общем-то, совсем не очевидно, особенно при больших длинах кабеля и пр. Кроме того, ввиду разброса параметров (порогов срабатывания) приемников, это вообще-то требует их индивидуального отбора. smile.gif
Go to the top of the page
 
+Quote Post
Rst7
сообщение May 5 2008, 09:53
Сообщение #97


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Однако по затратам времени два байта преамбулы ничем не лучше паузы в 2 байт-интервала.


Есть одна тонкость - если у вас безмозглый репитер (срабатывающий по старту), то удержание выхода в 1 заранее от начала посылки после репитера будет поломано - он же не умеет смотреть в будущее. Т.е. можно конечно добавить мозг репитеру и задержать пакет на время предварительного удержания, но иногда - это не выход (например, если надо обеспечить макс. быстродействие сети при ограниченной битовой скорости). Тут способ с двумя байтами 0xFF вне конкуренции, конечно.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
galjoen
сообщение May 5 2008, 10:15
Сообщение #98


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(=AK= @ May 5 2008, 13:39) *
Это будет работать при условии, что помехи во всей сети совершенно одинаковы, что, в общем-то, совсем не очевидно, особенно при больших длинах кабеля и пр.

Нет не так. Правильнее сказать так - это срабатывает не в 100% случаев. Но в случае не срабатывания этого приёма - сработает "классический" способ.
Цитата(=AK= @ May 5 2008, 13:39) *
Кроме того, ввиду разброса параметров (порогов срабатывания) приемников, это вообще-то требует их индивидуального отбора. smile.gif

Приёмники можно не подбирать - применительно к АВР можно проинициализировать USART ведущего с U2X=1, а ведомого с U2X=0. При этом приёмник ведущего начнёт приём при более коротком (на 10%) импульсе помехи. Ещё можно не ставить у ведущего подтягивающих резисторов и т.д.

Я вобщем-то и говорил, что такой способ был-бы вне конкуренции при использовании CAN-овских приёмопередатчиков. При этом приёмник, приняв помеху за стартовый бит, сам остановил-бы передачу ведущего. Но и при использовании RS485 результат лучше, чем при байт стаффинге и при передаче 1 перед передачей. Его можно ещё улучшить если параллельно приёмнику подать сигнал на вход прерывания или захвата.

А насчёт способа с двумя FF - он не будет работать при контроле четности (или нечётности?) т.к. бит чётности будет 0. И приёмник может до бесконечности принимать его за стартовый бит (если передатчик использует 1 стоп-бит).
Go to the top of the page
 
+Quote Post
=AK=
сообщение May 6 2008, 04:28
Сообщение #99


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(Rst7 @ May 5 2008, 19:23) *
Есть одна тонкость - если у вас безмозглый репитер (срабатывающий по старту)... Тут способ с двумя байтами 0xFF вне конкуренции.

Если помеха незадолго до начала пакета переключит такой репитер в нежелательное направление, то все 0xFF будут испорчены. То есть, использование такого репитера резко снижает помехоустойчивость сети - до уровня, обеспечиваемого непомехоустойчивыми протоколами, которым нужны растяжки. После чего спорить о преимуществах или недостатках того или иного помехоустойчивого протокола не имеет смысла, поскольку теряется сам смысл их использования.
Go to the top of the page
 
+Quote Post
defunct
сообщение May 11 2008, 23:23
Сообщение #100


кекс
******

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



Цитата(=AK= @ May 5 2008, 09:22) *
Если передатчик посылает всего 1 байт преамбулы 0xFF:
- Помеха, которая создаст ложный старт-бит незадолго до этого, запустит UART
- В момент прихода байтa преамбулы 0xFF, UART, находящийся где-то в середине приема байта, "не увидит" 0xFF, а увидит некий ложный байт. Пакет будет испорчен.

не будет пакет испорчен, так как приемник не ловит преамбулу. Преамбула используется для синхронизации. Приемник "ловит" (лучше сказать выделяет из потока мусора) только стаффинг последовательность.
Один байт 0xFF даст возможность приемнику правильно принять стаффинг последовательность, т.к. гарантируется высокий уровень (СТОП) в линии на протяжении минимум 9 битов.

Цитата
Если передатчик посылает 2 байтa преамбулы 0xFF, то ситуация лучше: первый байт может быть испорчен, но второй "прочистит" приемник, так что пакет будет принят правильно.

Первый байт, а не второй "прочищает" приемник.
Если для устойчивого приема достаточно преамбулы в 1 байт, то два байта будет более чем достаточно.
Что же касается временных затрат на посылку преамбулы и стаффинг последовательности - да они имеют место быть, но см. выше, такой подход в некоторых случаях (мастер PC) наоборот повышает скорость обмена, за счет:
1. пресечения таймаутов между пакетами;
2. простого распознаваения конца пакета - упрощение rx flow-control'a;

+ сводится к нулю количество потерянных пакетов, из-за неверно сформированных таймаутов, когда одно из устройств сети работает под управлением не real-time ОС (например мастер ПК под Windows) и используются передатчики с FIFO большого объема, но не позволяющие разместить пакет целиком.

Цитата(Rst7 @ May 5 2008, 12:53) *
Тут способ с двумя байтами 0xFF вне конкуренции, конечно.

С одним 0xFF. AK просто не до конца смоделировал работу.
Пусть помеха включила приемник за 2 бита до инициализации преамбулы.
Тогда на линии будет следующий (12-ти битовый) фрейм:

0 x 0 1 1 1 1 1 1 1 1 1 [ стаффинг ]
x - неопределенный бит
после x начинается фрейм преамбулы 0xFF

приемник примет байт 0xFD/0xFC вместо 0xFF, и проигнорирует его, передатчик будет удерживать высокий уровень на линии т.к. передается 0xFF + 1(2)СТОП(а), и не даст приемнику начать прием до тех пор пока не сформируется СТАРТ бит стаффинг фрейма, т.о. в 485 сети достаточно всего лишь одного байта преамбулы.

Допустим искаженный байт 0xFF в результате воздейтсвия помехи совпадет с первым байтом открывающей стаффинг последовательности, но и в этом случае приемник приняв за ним такой же байт, и по условию "принято 0 байт данных" пакета, просто "переоткроет" прием пакета повторно.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 11:06
Рейтинг@Mail.ru


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