Микроконтролери и електроника
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 см трябва да сложа екраниран кабел ...

Цитат:
Очевидно след тия 10-ина кила трябва да сложиш и един 0603 100-ина нанофарада
към маса, пак близко до аналоговия вход.


Има го. Меренето на батерията е безпогрешно. Стана от първия път като никога до сега (все оплесквам нещо).

Всичко това е добре, ама не решава проблема как да разделя батерията от пина когато е изключен контролера че 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 гледах но на платката ти а не на преходника.

> Стана от първия път като никога до сега

Сигурен знак, че нещо не е наред :D .

Цитат:
Също така много ми е интересно защо смятате времеконстанта на Г-образни RC или LC филтри. Този тип режат високите честоти до някаква граница. Слагаш по-голям кондензатор - сваляш граничната честота. Колкото повече, толкова повече. Има смисъл да смяташ ако искаш минималистично да отрежеш честотата без да слагаш прекалено голям кондензатор. Аз съм сложил 470nF. Същото важи и за low pass Г-образен филтър на захранването. Някой в този форум ми каза че ако не сметна правилно ще увелича пулсациите вместо да ги намаля. Не ми се вярва.


Е смяташ каквото ти трябва, -3dB e 1/(6.28*R*C), оттам нататък е 6dB (два пъти) на октава.
Не виждам как от по-голям кондензатор в такова свързване може да намалее затихването,
но не знам баш за какво е ставало дума разбира се.

Цитат:
А не мога ли да сложа един повторител (ОУ), който се захранва от 5-те волта. Така като изключа схемата на изхода на ОУ-то няма да има нищо. Само дето трябва да е R2R защото батерията ще стига до 4.2 волта а захранването минимално е 4.8 че може и по-малко.


Това не го разбирам, но ако опитваш да накараш батерията да се откачи през него можеш
пак да очакваш изненади, токове от вход/изход на усилвателя към захранващите му крака и т.н.
Такива работи се правят с дискретен чарк най-добре, да знаеш точно какво и къде става.
В случая не ми е ясно кое баш откъде искаш да откачиш. Решението не е непременно тривиално
но едва ли ще е и особено трудно.

Страница 1 от 3 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/