Отговори на тема  [ 71 мнения ]  Отиди на страница Предишна  1, 2, 3, 4, 5  Следваща
Как да избегна забиване на микроконтролера 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Съб Юни 24, 2006 8:25 pm
Мнения: 2292
Мнение 
Zeus написа:
...
2. Хардуера: Платката е все още експериментална(правена на ръка без граунд план)....


Oправи първо този проблем. След това ще лъснат другите.

_________________
Две плюс две е приблизително равно на четири. Факт!


Вто Дек 04, 2007 7:31 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Вто Окт 03, 2006 11:58 am
Мнения: 924
Местоположение: Ботевград
Мнение 
sthx написа:
Zeus написа:
...
2. Хардуера: Платката е все още експериментална(правена на ръка без граунд план)....


Oправи първо този проблем. След това ще лъснат другите.


Мдааа,
Окончателния вариант ще е на доста малка площ и няма да мине без метализирани отвори. Ще минавам през платкаджииницата и тогава вече ще се боря с останалите проблеми.


Вто Дек 04, 2007 9:31 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Чет Авг 30, 2007 2:14 pm
Мнения: 118
Мнение 
Ground Plane , Това животно съм го срещал в дизайна на платките като допълнителен слой, към който е свързана Ground.
Ама като не съм на тва ниво за да си позволя многослойни платки, как може да се реши този проблем, например
в еднослойни или максимум двуслойни платки.


Вто Дек 04, 2007 10:44 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Нед Юли 29, 2007 2:41 pm
Мнения: 610
Мнение 
А бе обаждам се само защото разбирам от аналогова техника и от ремонти...
- На варисторите обикновено работата им е да изгарят и да пращат платката на ремонт :D . Ако не искате да е така сложете преди тях 2-а низкоомни
резистора с максималната мощност която мястото ви позволява (не и 10W де).
- LC филтърът на захранването си е незаменим (ако има място) ама във вариант: първо 2xL и после 1-о C за над 470V. За такива мощностти cos(f)-и не важи.
- Варисторът се поставя след предпазителя и задачата му е да защитава от 380V например, не от пикове.
- Прословутото GroundPlane доколкото разбирам служи да те постави в зависимост от ХайТек технологиите и да те оправдае за калпавото проектиране :) . По мое време всички свободни места се запълваха с мед към маса и в краен случай към захранване - нали има кондезатори. Само дето трябва да се внимава да няма големи "кръгчета" и откъде идва "коренът" на масата.
- Най-елементарното "GroundPlane" което съм виждал е самозалепващо се алуминиево фолио към кутията и една запоена към маса пружинка го допира.
- Металната кутия си е най-шумоизолираща но не e достатъчна. Всички входни точки водещи към дълги жици трябва да имат филтър - най-добре е низкоомен резистор, но и "печатна" индуктивност или жица през ферит също допринасят. Само за идея: някой разглеждал ли е TV tuner?

Забравих да кажа: по тънките и сравн. дълги писти има такова "звънене" и пикове че няма да повярваш докато не ги видиш на осцилоскопа.

_________________
Тя простотията по хората ходи


Сря Дек 05, 2007 1:54 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Юни 05, 2006 1:48 pm
Мнения: 4906
Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
Мнение 
ground plane в едни случаи помага в други пречи :wink:
а това, че ти е еднослойна/двуслойна/незнамсиколкослойна платката хич не означава, че не трябва да са ти по-големи областите на VCC и GND :!: даже напротив.
има много публикации по въпроса:!:
и въпроса е, че трябва да се изчетат, разберат и опитат преди някой да се изпъне и да каже :"-Аз го направих устойчиво е на смущения, и програма направих и тя е устойчива... "
защото следващата реплика е от сорта: "-това че крайният продукт забива не е моя грешка :!: "

мдаа
1. Колегите много точно ти показаха в началото да си преровиш програмсъта дали не си омазал нещо :oops: това е най-често срещаното смущение :D
2. Не бързай с т.н.куче-пазач - като всяка мастия то трябва да се обучи какво да прави-> иначе хапе наред свои - чужди не подбира:!: ако ма разбираш какво имам в предвид :) това си е таралеж в потурките ако не го ползваш правилно пречи много.
3. Като пуснеш да работи джаджата на хвърчащ монтаж(breath board) или стърчащи процесори/кондензатори/жици отсекъде на масата пред теб в лабораторна среда достатъчно дълго време... тогава GOTO 4
4. Изясняваш си характера на смущенията на работната среда и точно по кой начин влияят на твойта джаджа:!: това може да го правиш паралелно с т.1 ,т.2,т.3:!:
и си спестяваш мислите "особено при захранване в България " защото звучат адски непрофесионално/тъпо и незнам ако го ползваш като оправдание пред твойте работодатели... те как ще погледнат на теб :?:

5. След т.[1..4] пускаш прототип на изделието ->правиш платка, после .... полеви изпитания -> записваш си резултатите, наблюдавани неизправности/нередности/бъгове... прочие...правиш си протокол от изпитанията... изводи които ще те насочат към нулевата серия(това е след прототипните образци) и дай-боже всекиму-> поръчка за серийно производство -> пари , престиж ->кеф отсекъде :)

та така... лесно нема

_________________
... ако трети ден не ти се работи... това означава, че е сряда !


Сря Дек 05, 2007 2:41 am
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Вто Окт 03, 2006 11:58 am
Мнения: 924
Местоположение: Ботевград
Мнение 
Ще взема всички препоръки предвид. Относно серията, касае се за 4-5 изделия(няма да има големи серии). Освен това ще са ми постоянно пред очите, докато работят в реалната си среда (ще се намират на работното ми място). Като софтуер мисля че нещата са добре, понеже прави проблемите случайно, няма някаква повторяемост във времето. Относно варисторите, доколкото четох в описанията, обират високоволтовите пикове в мрежата, които са фатални за електрониката: http://en.wikipedia.org/wiki/Varistor.
Още нещо, което пропуснах да спомена - на няколко входни порта са прикачени бутони и превключватели, чиито кабели са окол 0.5м дълги. Може би и те допринасят за змущенията. Мога ли нещо да направя по въпроса, примерно оплетки към маса или нещо от сорта?


Сря Дек 05, 2007 10:23 am
Профил
Ранг: Новодошъл
Ранг: Новодошъл
Аватар

Регистриран на: Чет Дек 02, 2004 7:22 pm
Мнения: 140
Мнение 
Имаш ли резистори към захранване на тези портове или разчиташ на вътрешните в контролера? при половин метър кабел резисторите реябва да са 2-3килоома, с кондензаторче към маса няколоко нанофарада, ако не е предвидено софтуерно филтриране на пиковете. По едно диодче към маса и захранване или ценерче за 5,6В също не са лоша идея. Според мен тези бутони, ключета бъгват работата и програмата ти постоянно ги обслужва и не и остава време за индикацията. Тука трябва общ подход - софтуерен и хардуерен, които да се допълват и работят заедно.


Сря Дек 05, 2007 12:12 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Вто Окт 03, 2006 11:58 am
Мнения: 924
Местоположение: Ботевград
Мнение 
Още при проектирането допуснах малка грешка(ако може да се нарече грешка), че ключетата ми подават (+), а не маса към портовете. Иначе имам външни резистори 10К към маса на всички входни портове. В следващата ревизия на платката ключетата ще са към маса. Иначе софтуерно съм решил проблема по следния начин:

if(button=true)
{
if(button=true)
{
result=true;
}
delay_ms(1);
}
else (result=false);


така избягвам фалшивите сигнали за натиснат бутон.
P.S. Едва ли ключетата бъркат работата с постоянното им обслужване, защото това щеше да се проявява доста често, а и щеше да доведе до премигване на индикацията от време на време, а не да зависва за постоянно.(така поне си мисля)


Сря Дек 05, 2007 12:33 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Пет Фев 17, 2006 9:17 am
Мнения: 765
Местоположение: Стара Загора
Мнение 
Изглежда ми малко недомислено... 2 последоватени проверки и чак след това закъснението... защо? По-разумно ми изглежда така:

result=false;
if(button=true)
{
delay_ms(1);
if(button=true)
{
result=true;
}

}

И вземи мерките, които ги е описал Стенли Хакера. 5.6 волта ценери, паралелно на тях 10-100 нано кондензатори ще пооправят нещата. Предполагам.


Сря Дек 05, 2007 12:50 pm
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Вто Окт 03, 2006 11:58 am
Мнения: 924
Местоположение: Ботевград
Мнение 
Наистина, така закъснението изглежда безмислено, но като го бях сложих между двете проверки, нещо ми се бъгваше индикацията, а така както съм го сложил работи, а и ми реши проблемите със фалшивите сигнали.
А относно ценерите, наистина идеята е добра, ще го взема предвид :)


Сря Дек 05, 2007 1:24 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Пет Фев 17, 2006 9:17 am
Мнения: 765
Местоположение: Стара Загора
Мнение 
Очевидно само си преместил проблема от едно място на друго :D

Защо не качиш пълния код, да го поогледаме, надали става дума за нещо чак толкова секретно. Ако искаш де...

edit:

Ся забелязах...
Пише се:

if(button==true)

или просто

if(button)

Това if(button=true) е голяма глупост. Присвоява на button 1 и връща винаги TRUE. CCS-a дори и не реве за това, макар че би било редно поне warning да изкарва :)


Последна промяна setoy на Сря Дек 05, 2007 2:44 pm, променена общо 1 път



Сря Дек 05, 2007 2:26 pm
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Вто Окт 03, 2006 11:58 am
Мнения: 924
Местоположение: Ботевград
Мнение 
Кода не е толкова секретен, но сам по себе си едва ли ще върши работа, защото се вземат сигнали от доста външни източници(от цялата 16F887 ми е останал само един свободен порт:D ), трябва и схема да слагам и 2 страници обяснения. Тествал съм платката на стенд и не е имала проблем, преди да я закача на машината. За това съм се насочил към външните смущения. В момента работи по цял ден, но явява проблема със забиването по 1-2 пъти на ден. Явно ще поръчам да ми изработят една платка с ground plane да видя как ще се държи. Май ще трябва да мъкна и осцилоскопа за да навържа проблемите с източника на смущението :(


Сря Дек 05, 2007 2:39 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Пет Фев 17, 2006 9:17 am
Мнения: 765
Местоположение: Стара Загора
Мнение 
Виж последната ми промяна ^^


Сря Дек 05, 2007 2:46 pm
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Вто Окт 03, 2006 11:58 am
Мнения: 924
Местоположение: Ботевград
Мнение 
Да, прав си. Просто го написах да е по смислено (не обърхах внимание на равенството. Ето я оригиналната проверка

if(down&&(!max))
{
if(down&&(!max))
{
motor=1;
l1=1;
}
delay_ms(1);
}
else motor=0;


Сря Дек 05, 2007 2:52 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Чет Яну 04, 2007 12:43 am
Мнения: 178
Мнение 
Още няколко съвета:
При система само от един микроконтролер поставянето на ground plane няма да реши проблема. Той е начин да се намали импеданса на масата между отделните компоненти на платката и има чувствително влияние при наличие на високоскоростни шини между компонентите (процесор, RAM, Flash и т.н.). При микроконтролера всичко е на един кристал и за да работи стабилно е достатъчно да има добре филтрирано захранване.
По друг начин стои въпроса, обаче, за входните и изходните сигнали. Ако изводите на микроконтролера са свързани директно към външни устройства, е възможно през тях да проникват импулси, които надхвърлят захранващото напрежение. Те биха могли да смутят работата, или дори да повредят микроконтролера.
Затова всички входни сигнали трябва да преминават през последователен (не паралелен) резистор (1 - 10 килоома) и кондензатор от страната на микроконтролера. Естествено, времеконстантата трябва да е такава, че да не деградира сигнала, но за бутони може да е доста голяма (5 - 20 ms). Допълнително може да има и Шотки диоди към маса и захранване (ако консумацията е малка, обаче, външният сигнал може да "повдигне" захранването).
Изходните сигнали е най-добре да се буферират (транзистори, буфери и т.н.). Ако това не е възможно, в краен случай портовете на микроконтролера може да се използват като изходи с малък последователен резистор (няколко стотин ома).
И не на последно място - провери дали всичко работи нормално в "тиха" среда. Понякога софтуерните проблеми изглеждат като хардуерни и обратното.


Сря Дек 05, 2007 4:57 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 71 мнения ]  Отиди на страница Предишна  1, 2, 3, 4, 5  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 2 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни