| Автор |
Съобщение |
|
zaprqn
Ранг: Новодошъл
Регистриран на: Сря Яну 24, 2007 11:00 pm Мнения: 158
|
 Много ама много странен проблем !!!
 Цял ден днес ми замина и не знам какво е. Схемата е следната: PIC16f916 е свързан с ЕЕПРОМ, с MAX232 към компютър, с един 32768 кварц и със I2C сензор. Сензора е извън платката и е свързан с жички (около 3 см), всичко друго е на платката. Пика тръгва, пише и чете от еепрома, говори двупосочно с компютъра, брои секундите с прекъсване от кварца. Обаче с I2C сензора не иска да говори. Като започне комуникацията и пика зацикля. В кода има изчакване за потвърждение от отсрещната страна, което явно не се получава никога.
И тук идват странностите: ако както е зациклил го ударя с тъпото на отвертката се рестартира и започва да работи нормално. Веднъж тръгне ли си работи всичко докато не го рестартирам. Рестартирам ли го пак зацикля. Единствения начин да го накарам да тръгне е да го прасна с нещо и си работи уж надеждно, но искам да разбера защо така става.
Проверих опроводяването над 20 пъти с мултицета и е добре. Всяка спойка я минах с поялника поне по 3 пъти (и говоря не само за връзката със сензора ами всички крачета на ПИКА, всички на ЕЕПРОМА, кондензаторите и вс. друго което има по платката и си работи. Напрежение до сензора стига. Това същото работеше преди месец със същия код без грешка. Сега пак работи с този код, но само след удар с отвертка. Проверявах всяко краче на пика за късо със всичко по платката - няма.
И сега седя и се чудя: от кода да е - не е, преди работеше с него, и сега работи след удар. От сензора да е - не е. Като прасна пика по кратуната сензора не трепва с милиметър даже щото не е на тази платка.
За съжаление в момента нямам нито програматор нито дебъгер да видя какво става, но съм почти 100% сигурен къде спира кода. Някой има ли представа какво може да бъде?
|
| Чет Сеп 16, 2010 9:34 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
Като има такива грижи е добре да се пускат схемите и кода - ние не сме баба Ванга да гадаем дали има някакви грижи по свързването и/или в кода  .
|
| Чет Сеп 16, 2010 9:47 pm |
|
 |
|
zaprqn
Ранг: Новодошъл
Регистриран на: Сря Яну 24, 2007 11:00 pm Мнения: 158
|
Лошо. Според мен само някой като баба Ванга може да ми помогне. Кода го нямам на този компютър, но е пускан 1000 пъти и работи. И все още работи след удар с отверка =)
B0=SDA B1=SCK
Последна промяна zaprqn на Чет Сеп 16, 2010 10:11 pm, променена общо 2 пъти
|
| Чет Сеп 16, 2010 10:04 pm |
|
 |
|
bongo_x2
Ранг: Форумен бог
Регистриран на: Вто Яну 20, 2009 11:54 pm Мнения: 11338 Местоположение: "Занзибар"
|
Ако е от кода: дебъгва се с 10кг чук.
Кварца смени ли го 2-3 пъти? Ами пика?
|
| Чет Сеп 16, 2010 10:05 pm |
|
 |
|
zaprqn
Ранг: Новодошъл
Регистриран на: Сря Яну 24, 2007 11:00 pm Мнения: 158
|
Пика си ползва вътрешния генератор. RTC кварца го сменях. В момента е без такъв кварц но и с него същото.
|
| Чет Сеп 16, 2010 10:09 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
Къде е вързан сензора, дето не работел?
ПП. Сега видях, че е на B0 и B1. Ти пробва ли и там да сложеш пул-ъп резистори или поне да разрешиш вътрешните на пика  ?
|
| Чет Сеп 16, 2010 10:22 pm |
|
 |
|
zaprqn
Ранг: Новодошъл
Регистриран на: Сря Яну 24, 2007 11:00 pm Мнения: 158
|
на B0 e data a на B1 clock
|
| Чет Сеп 16, 2010 10:24 pm |
|
 |
|
bongo_x2
Ранг: Форумен бог
Регистриран на: Вто Яну 20, 2009 11:54 pm Мнения: 11338 Местоположение: "Занзибар"
|
Ся, аз не съм голям майстор по новата техника но от ремонти поназнайвам.
Ти на пик купен в България и на китайска обувка купена от циганин вяра имаш ли?
Обаче доколкото разбирам платката ти е експериментална, постарай се поне кондензаторите на захранването на пика да са поне 100 нФ и 10 мкФ и максимално близко до крачетата. И смени ресетващата верига.
На мен ми мирише на кофти фронтове или смущения, може и захранването да кляка. Иначе - нова платка.
Едит: аз схемата не я погледнах пък то много се изписало 
|
| Чет Сеп 16, 2010 10:27 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
Бонго, стига си дрънкал глупости - пиковете в БГ са същите и като тези в твоя Занзибар и тези тук при мен. Баба Ванга казва, че "повредата" най-вероятно е в липсващите пул-ъп резистори на сензора. Софтуерно i2c не се прави без резисторите и затова след удар с отверка тръгва  .
|
| Чет Сеп 16, 2010 10:29 pm |
|
 |
|
bongo_x2
Ранг: Форумен бог
Регистриран на: Вто Яну 20, 2009 11:54 pm Мнения: 11338 Местоположение: "Занзибар"
|
Димитре, направих едит по-горе. Колкото за еднаквото качество - 
|
| Чет Сеп 16, 2010 10:30 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
Колко устройства с пикове си проектирал, та ги разбираш кой с какво качество е  ?
|
| Чет Сеп 16, 2010 10:32 pm |
|
 |
|
bongo_x2
Ранг: Форумен бог
Регистриран на: Вто Яну 20, 2009 11:54 pm Мнения: 11338 Местоположение: "Занзибар"
|
Димитре, отдавна се каня да пусна пик да мига светодиод и все още не ми е останало време. Обаче подготовката си я имам - що постове съм изчел...
Айде да не оспамваме темата!
А иначе грешката е моя, че не се задълбочих: този който не знае как се слагат резистори е по-добре да пише в "академия"...
|
| Чет Сеп 16, 2010 10:40 pm |
|
 |
|
zaprqn
Ранг: Новодошъл
Регистриран на: Сря Яну 24, 2007 11:00 pm Мнения: 158
|
Както си и знаех цял ден ще го бъхтя и като питам за помощ сам ще видя проблема.
Първо проблема не е в пулъпите, щото ги има.
Второ установих че пипане на крачето на MCLR-a с метален предмет всъщност рестартира пика и всичко тръгва.
А и трето прочетох даташета на сензора и установих, че му трябват 10 милисекунди откакто му се подаде напрежение, докато се разсъни, а кода на пика праща инициализиращи команди още в началото на програмата. Най-вероятно извънземни НЕ съществуват, а просто сензора не си вижда инициализацията. След пипане на MCLR или шамар по ПИК-а само той се рестартира. Напрежението на сензора си стои. След рестарт на пика той пак праща инициализацията, след което всичко работи. Правдоподобно ми звучи, сега ще пробвам да ги паля едно по едно и да видя.
|
| Чет Сеп 16, 2010 10:41 pm |
|
 |
|
bongo_x2
Ранг: Форумен бог
Регистриран на: Вто Яну 20, 2009 11:54 pm Мнения: 11338 Местоположение: "Занзибар"
|
Баба ми казваше, че на вълкът му е дебел врата защото сам си върши работата
Въпреки всичко мен много би ме притеснил рестарта при механично въздействие или вкарана електростатика - калпава платка се оказа.
Последна промяна bongo_x2 на Чет Сеп 16, 2010 10:55 pm, променена общо 1 път
|
| Чет Сеп 16, 2010 10:51 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30684 Местоположение: София
|
Ами аз ако не слагам външен чип, тоя ресет го забучват през не повече от 1-2 к към +, ползвай вътрешната ресет схема.
Това с разсънването на пика нещо не звучикато свят, какво начи да се разсъни, щом е стигнал до часта която инициализира, значи всичко му е наред, трябва да е достатъчно буден, от години не си играя с тях, ама нямам спомен I2C да е някакво по-капризно. А иначе за пълъпите, като казваш че ги има какво знчи, че полваш вътрешните, или си ги монтирал но не си ги рисувал.
|
| Чет Сеп 16, 2010 10:53 pm |
|
|