| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Странен проблем с LCD и PIC18F45K22 http://mcu-bg.com/mcu_site/viewtopic.php?f=2&t=10605 |
Страница 1 от 3 |
| Автор: | npelov [ Нед Окт 21, 2012 12:14 pm ] |
| Заглавие: | Странен проблем с LCD и PIC18F45K22 |
Имам проблем с 20х4 символен LCD, който за пръв път ми се случва. Дисплея се инициализира като едноредов. Вероятно някъде има паразитен капацитет или слаба връзка/късо, но не мога да открия къде. В даташита видях, че бит D3 (отбелязан с N) при команда function set - 001x Nxxx отговаря за броя редове. Странното е че като закача осцилоскопа и проблема изчезва, но не винаги. Още по-странно е, че като сложа резистор 15к на E (clock) всичко е наред. Ето какво опитах 1. high slew rate - SLRCON = 0; 2. Друг дисплей - 16х2 - същия ефект. 3. смених кабела на пин 10 (D3) 4. раздалечих кабелите един от друг 5. проверих всички спойки Резистора на клока оправя проблема. Дори осцилоскопа (сондата е на x10) закачен на клок в повечето случаи го оправя. Само дето не ми харесва като решение защото не съм открил какъв точно е проблема и най-вероятно не го решава напълно. |
|
| Автор: | tgi [ Нед Окт 21, 2012 4:36 pm ] |
| Заглавие: | Re: Странен проблем с LCD и PIC18F45K22 |
Колко дълъг е кабелът? До 10-ина см ако е едва ли е крив той. Масата провери ли дали е свързана? Най-вероятно е, и просто прекалено стръмен фронт на E-то разколебава жицата и готово. Но 15 кила е страшно много, би трябвало не повече от 100-ина ома да го мирясат. Ако не е така има нещо по-дълбоко. |
|
| Автор: | npelov [ Нед Окт 21, 2012 5:08 pm ] |
| Заглавие: | Re: Странен проблем с LCD и PIC18F45K22 |
Кабела от буксата до дисплея е около 10-15 см. Има 2-3 см кабели до контролера (на експериментална платка е и е малка плетеница). Проверих с мултицета на бипкане - всеки кабел от сокета на контролера, през буксата, до другия край (с махнат контролер) ... <=1 ом. Няма промяна при разклащане. Какво? Прекалено стръмен фонт на E-то е проблем? Аз мислех че може да е проблем когато не е достатъчно стръмен. А резистора е към маса вързан, не серийно. Обаче каквото и да сложа там го оправя - в момента е с 2 последователно свързани съпротивления 470к общо 940k на Е към маса. Щом сондата на скопа го оправя на х10 - предполагам съпротивлението е доста голямо, значи каквото и да сложа там все ще работи. Въпроса е, че не знам какъв точно е проблема и съответно не знам дали съм го решил или просто ще се появява по-рядко. Няма никаква логика резистор на Е към маса да оправя нещо... Помислих че досега не съм подкарвал LCD на контролер работещ на 64 MHz и може би данните не успяват да се установят когато Е цъкне Въпреки, че и това не може да е: void clockE(){ Eon; Nop2(); Nop2(); Nop2(); Nop2(); Nop2();// 4x0.62.5ns = 250 ns Eoff; } void lcdWriteCmd(char c){ addrLatch = 1; RSbit = 0; LCD_DATA_PORT = c; clockE(); __delay_us(42); } След LCD_DATA_PORT = c има call на clockE() -> поне 2 цикъла или 125us, a до задния фронт на Е има още 250us. |
|
| Автор: | tgi [ Нед Окт 21, 2012 5:30 pm ] |
| Заглавие: | Re: Странен проблем с LCD и PIC18F45K22 |
470 кила към маса да го оправят е супер крива работа, нещо не забелязваш. Примерно изходът нещо не работи и не дърпа към маса (т.е. нулата не е нула докато не пипнеш с телескопа който я прави и т.н.). Виж масата на чипа дали е запоена свястно, някаква такава простотия трябва да е. Тия стотици кила към маса не трябва да правят никаква разлика. |
|
| Автор: | npelov [ Нед Окт 21, 2012 6:41 pm ] |
| Заглавие: | Re: Странен проблем с LCD и PIC18F45K22 |
Ами ще проверя масата на чипа. Звучи като да е такъв проблема, обаче дисплея взима маса и захранване от чипа, а не директно от захранването. |
|
| Автор: | npelov [ Нед Окт 21, 2012 8:23 pm ] |
| Заглавие: | Re: Странен проблем с LCD и PIC18F45K22 |
Масата изглежда добре от пина на контролера до дисплея. Чудех се дали куплунга не дава добър контакт защото е разпояван, но положението е същото с два дисплея и колкото и да мърдам куплунга няма промяна. Все пак може и от него да е - разпоен е от стара дънна платка защото нямах 2х8 под ръка. Ето снимка на платката: http://gallery.croler.net/d/84606-1/PIC18F45K22+_+LCD.jpg Не че нещо се разбира от кабелищата но поне спойките се виждат. Всичко изглежда наред. Може би като ми остане време ще измеря изолацията и капацитета м/у пиновете. |
|
| Автор: | tgi [ Нед Окт 21, 2012 9:09 pm ] |
| Заглавие: | Re: Странен проблем с LCD и PIC18F45K22 |
Ми виждам един единствен развързващ кондензатор отдолу и той сякаш виси от едната страна. Това би могло да е поне част от проблема, нищо чудно и целият проблем да е ако няма нито един кондензатор. |
|
| Автор: | npelov [ Нед Окт 21, 2012 10:15 pm ] |
| Заглавие: | Re: Странен проблем с LCD и PIC18F45K22 |
Всъщност това е кондензатора на захранването от адаптер. То не се ползва за пробите. Това, което се ползва е малкия степ-ъп (3-4.2 -> 5V) и има на изхода 2х10uF smd.Той е, ако не се лъжа MCP1640. След филтъра има 330uF с ултра-ниско ESR. Всъщност на buck регулатора кондензатора дето изглежда че виси е същия и пулсациите са измерени 20mV преди филтъра. Освен това има 4 смд керамични кондензатора на преходника на процесора - единия няколко стотин нанофарада а другия някакви пикофаради. Все пак не е лоша идея да измеря пулсациите на захранването при инициализация на LCD-то. Но на скопа не ми се видя да има значителни отклонения. Опаааа... малко съм се изложил. Видях че максимум-а на изходния кондензатор за MCP1640 е 100uF, а аз имам 330 след него (на филтъра). Не знам как още е жив. Ще сложа един 10uF керамичен за филтъра. П.П. Ето схемата на захранването: http://www.circuits.io/circuits/528 Диодитеса шотки, а "AC" захранването е с 0.2V по-високо от батерийното. |
|
| Автор: | npelov [ Нед Окт 21, 2012 10:39 pm ] |
| Заглавие: | Re: Странен проблем с LCD и PIC18F45K22 |
Смених кондензатора. Все още се получава, но забелязах нещо ново - след включване на батерията като натисна белия бутон, който е поставен точно след филтъра, първия път проработва.За да проработи пак е необходимо да махна батерията, да разредя кондензаторите и да включа отново. Да не би да има проблем, че LC филтъра е след диодите и когато ключа е отворен и нищо не харчи ток от кондензатора, напрежението може само да се качва? Ще сложа един резистор на този кондензатор да пробвам какво ще стане. |
|
| Автор: | npelov [ Нед Окт 21, 2012 10:48 pm ] |
| Заглавие: | Re: Странен проблем с LCD и PIC18F45K22 |
Да, има някаква голяма утечка. При изключен ключ на Vdd на контролера има 2.2V. Дори разпоих кабела - проблема не е в ключа.... Сега като се замисля имам кабел към батерията (преди степ-ъп-а) на един аналогов пин (за да меря напрежението на батерията). ще го разпоя за да видя дали проблема ще изчезне. Едит: това е проблема. След като махнах кабела към батерията всичко е наред. Е, като цъках бързо ключето пак се случи веднъж, но в нормални условия не става. Някакви предложения? Да включвам към батерията с един мосфет когато ми трябва да меря? За момента съм го вързал през втория превключвател на ключето, но то ще е там докато тествам. след това го махам. Все пак не ми е ясно защо ЛСД-то откача и защо 940к резистор на Е оправя нещата. Но в изключено положение 2-та волта достигат навсякъде, включително на Е пина. Тъй като все се старая да съм предпазлив съм сложил сериен резистор 360 ома на пина който мери батерията. С него схемата харчи 1.5 мА в изключено положение (степъп-а харчи 0.12 мA). Ако го нямаше може би щеше да стане късо ... през някои защитен диод на контролера. |
|
| Автор: | tgi [ Нед Окт 21, 2012 11:55 pm ] |
| Заглавие: | Re: Странен проблем с LCD и PIC18F45K22 |
По-късно ще прочета горните ти постове и ако има какво да кажа ще го кажа, засега само следното: не може да не сложиш 100-ина нанофарада между захранването и масата на контролера, директно на самите крака (отдолу на платката примерно) най-добре. Това просто трябва да го има, хич не му се чуди ами слагай. |
|
| Автор: | tgi [ Пон Окт 22, 2012 12:31 am ] |
| Заглавие: | Re: Странен проблем с LCD и PIC18F45K22 |
Бе каква е тая лудост с кондензатора паралелно на индуктивността, това ако е наистина така е някаква тотална неграмотност, не припарвай до тоя източник на схеми повече. Като начало му откачи края дето е към долния диод и го вържи на маса. > Някакви предложения? Да включвам към батерията с един мосфет когато ми трябва да меря? Вдигни го до няколко кила или по-добре няколко десетки кила, ако аналоговият вход го позволява (виж му максималните входни тоци и смятай колко ще дойде едно LSB в най-лошия случай при най-висока температура). Очевидно след тия 10-ина кила трябва да сложиш и един 0603 100-ина нанофарада към маса, пак близко до аналоговия вход. То MCU аналогови входове поначало само така се ползват - някое-друго кило серийно и няколко десетки/стотици нанофарада паралелно на сигнала. Подлежи на сметка във връзка със скоростите, но в случая няма какво да му смяташ толкова, нали мериш напрежението на батерията, и 10 кила 100 нано да сложиш това прави 1mS времеконстанта. |
|
| Автор: | npelov [ Пон Окт 22, 2012 1:17 am ] | |||||||||
| Заглавие: | Re: Странен проблем с LCD и PIC18F45K22 | |||||||||
Като прочетеш ще ги видиш кондензаторите. Има ги на снимката. Просто гледаш за TH а те са смд. опаааааааа. грешно съм начертал. сори. виж сега... Макс 10к позволява аналоговия вход. Плюс времето за измерване не се променя. Мога да сложа повечко, но няма ли да се смущава по-лесно. За 5 см трябва да сложа екраниран кабел ...
Има го. Меренето на батерията е безпогрешно. Стана от първия път като никога до сега (все оплесквам нещо). Всичко това е добре, ама не решава проблема как да разделя батерията от пина когато е изключен контролера че LCD-то откача. Също така много ми е интересно защо смятате времеконстанта на Г-образни RC или LC филтри. Този тип режат високите честоти до някаква граница. Слагаш по-голям кондензатор - сваляш граничната честота. Колкото повече, толкова повече. Има смисъл да смяташ ако искаш минималистично да отрежеш честотата без да слагаш прекалено голям кондензатор. Аз съм сложил 470nF. Същото важи и за low pass Г-образен филтър на захранването. Някой в този форум ми каза че ако не сметна правилно ще увелича пулсациите вместо да ги намаля. Не ми се вярва. |
||||||||||
| Автор: | npelov [ Пон Окт 22, 2012 1:35 am ] |
| Заглавие: | Re: Странен проблем с LCD и PIC18F45K22 |
А не мога ли да сложа един повторител (ОУ), който се захранва от 5-те волта. Така като изключа схемата на изхода на ОУ-то няма да има нищо. Само дето трябва да е R2R защото батерията ще стига до 4.2 волта а захранването минимално е 4.8 че може и по-малко. |
|
| Автор: | tgi [ Пон Окт 22, 2012 2:22 am ] | ||||||||||||||||||
| Заглавие: | Re: Странен проблем с LCD и PIC18F45K22 | ||||||||||||||||||
>Като прочетеш ще ги видиш кондензаторите. Има ги на снимката. Просто гледаш за TH а те са смд. Видях ги май, за 0603 гледах но на платката ти а не на преходника. > Стана от първия път като никога до сега Сигурен знак, че нещо не е наред
Е смяташ каквото ти трябва, -3dB e 1/(6.28*R*C), оттам нататък е 6dB (два пъти) на октава. Не виждам как от по-голям кондензатор в такова свързване може да намалее затихването, но не знам баш за какво е ставало дума разбира се.
Това не го разбирам, но ако опитваш да накараш батерията да се откачи през него можеш пак да очакваш изненади, токове от вход/изход на усилвателя към захранващите му крака и т.н. Такива работи се правят с дискретен чарк най-добре, да знаеш точно какво и къде става. В случая не ми е ясно кое баш откъде искаш да откачиш. Решението не е непременно тривиално но едва ли ще е и особено трудно. |
|||||||||||||||||||
| Страница 1 от 3 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|