| Автор |
Съобщение |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
 Re: Странен проблем с LCD и PIC18F45K22
проблем може да няма, но въпросът е за какво ти е напрежението само при разредена батерия.... Има просто решение : батерия - R - drain - (bss138) - source - R - gnd гейта го вързваш към ресета или към 5в или го управляваш. Важното е да е с 1.5-2в над сорса. Съпротивлението може да е 1М, но при фърчащ монтаж по-добре 100К. Сложи един кондензатор да не ти бяга меренето (пико до 1nf). Смятането надявам се няма да те затрудни - делител на 2  така решаваш и проблема с диапазона и проблема с откачането (когато не си захранен гейта е нула и транзисторът е запушен)
|
| Вто Окт 23, 2012 10:37 pm |
|
 |
|
npelov
Ранг: Почетен член
Регистриран на: Пет Яну 22, 2010 5:46 pm Мнения: 680
|
 Re: Странен проблем с LCD и PIC18F45K22
Не, бе, не аз да смятам. Контролера трябва да смята ако иска да покаже батерията на колко волта е. Досадно си е, при условие че това ще е машинка за всичко и трябва да върши още една камара неща. Математиката наистина не ми е силната страна, но такива прости сметки не ме мързи да правя. Дата сетъп времето го споменах по-рано - по спецификация трябва да е 60-80нс в зависимост от дисплея. Аз оставям поне 2-3 инструкции време... най-малкото виждаш че clockE ми е функция - всеки call e 2 цикъла ако няма други C-специфични бози (стек и т.н.) 2 цикъла по 62.5 нс напълно удовлетворяват дата-сетъп времето. Първо с времето се борих. Даже изключих PLL веднъж - това увеличи времената 4 пъти. Не помогна. Проблема е в напрежението в изключено съпротивление. Не знам какви паразитни кондензатори зарежда и защо по дяволите влияе след като цели 30 ms изходите са в някакакво положение (0 или 1, т.е. не са висок импеданс) и каквото се е заредило отдавна се е разредило. Какво ще рече "глич" и какво друго освен разхлабен кабел може да го причини? Ето дисасемблиран листинг: и функцията за клок(дори не съм се усетил че ползвам nop2, което е 2 цикъла): Обаче като че ли дата сетъп времето наистина може да оплеска нещата ако има нещо слабо по кабелите. Не е много далече от спецификацията. 60нс ->125нс. ще пробвам да увелича времето . тоя коментиания nop изглежда за това е бил там. Само че ще сложа повечко - 4-5 Едит: има едно време за което не съм помислил. Трябва от вдигането на R/W и R/S до предния фронт на E да има 40нс. Не че това не е времето от едната сет инструкция до другата, но ако кабелите оказват влияние може да искам да го вдигна поне 2-3 пъти... Много по-лесно е капацитет на кабела да прецака 60 нс време отколкото 250...
|
| Вто Окт 23, 2012 11:51 pm |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
 Re: Странен проблем с LCD и PIC18F45K22
Добре де, нямаш ли умножение в тоя контролер та да стане лесно сметката? Да кажем, че имаш 8 бита ADC - за да го умалиш N пъти го умножаваш по 256/N и от така полученото 16 бита произведение взимаш горния байт, колко ще го озориш процесора с това. Ако е повече от 8 бита операцията я правиш с 16 бита умножение, и това е нищо. А ако нямаш умножение не е лошо упражнение да понапишеш едно (отдаавна не съм го правил, дори деление има може би 10 години откак не съм писал - май за всеки процесор досега ми се е налагало да го пиша освен за 68k (на power трябваше да емулирам 64/32 бита делението, което 68k има та дори и там ме огря а ми е омразно занимание открай време  ). Кажи ако се окажат setup времената някъде, любопитно ми е какво е станало.
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Сря Окт 24, 2012 12:46 am |
|
 |
|
741
Ранг: Форумен бог
Регистриран на: Вто Сеп 15, 2009 10:44 am Мнения: 1034
|
 Re: Странен проблем с LCD и PIC18F45K22
Все повече се убеждавам, че вероятно инициализацията ти е крива. Ако тайминга не беше наред, щеше да имаш ядове с всички команди, не само с броя на редовете. Като махнеш напрежението от пиновете и неговата си инициализация сработи, нещата явно се получават. Пейстни целия код, дето има общо с дисплея, че с хвърляне на боб не става.
|
| Сря Окт 24, 2012 9:34 am |
|
 |
|
npelov
Ранг: Почетен член
Регистриран на: Пет Яну 22, 2010 5:46 pm Мнения: 680
|
 Re: Странен проблем с LCD и PIC18F45K22
В defs. са дефинициите на __delay_xx. В toolboxv2.c е __init (вика се служебно от С-то. Delay дефинициите работят за 64MHz. В ram.asm ще са ми глобалните променливи. В lcd_drv.c ми е кода за дисплея. Малко е изцапан кода, но така е като се опитваш да подкараш нещо, което не върви както трябва
|
| Сря Окт 24, 2012 9:56 am |
|
 |
|
npelov
Ранг: Почетен член
Регистриран на: Пет Яну 22, 2010 5:46 pm Мнения: 680
|
 Re: Странен проблем с LCD и PIC18F45K22
Имам. Сравнително лесно е да се умножи 16 бита. Правил съм го, но не си заслужава. Писал съм и собствено умножение. Даже самото С си върши мръсната работа. Но понякога (накрая разбираш) не си е заслужава мъките или се събира прекалено много излишен код/процесорно време. Вече нямам хъс да правя излишни неща. Ако ще правя нещо - деля на 2 с две големи съпротивления и един опамп, слагам още един shift left и спирам да го мисля.
|
| Сря Окт 24, 2012 10:05 am |
|
 |
|
741
Ранг: Форумен бог
Регистриран на: Вто Сеп 15, 2009 10:44 am Мнения: 1034
|
 Re: Странен проблем с LCD и PIC18F45K22
Да си напишеш инициализацията като хората. След закъснението от 4.5 мс две команди и едно закъснение от 100 мкс си ги прескочил. Командите може да са еднакви, ама не значи, че не трябва да ги подаваш. Отделно, в lcdWriteChar имаш Не знам как очакваш да стане, като двата сигнала си ги сложил на един и същи пин, ама да не разводняваме темата с офтопици, ти за проблем с извеждането не казваш.
|
| Сря Окт 24, 2012 10:56 am |
|
 |
|
npelov
Ранг: Почетен член
Регистриран на: Пет Яну 22, 2010 5:46 pm Мнения: 680
|
 Re: Странен проблем с LCD и PIC18F45K22
R/W трябва единствено за busy bit. Не го ползвам. Ина дефиниция която казва че R/W не се ползва, но съм пропуснал да сложа #if на самия RWoff. Busy изисква допълнително краче за R/W. Относно инициализацията - имаш право. Нея съм я правил за друг дисплей, по друга спецификация. Няма да навреди ако сложа тези няколко допълнителни команди.
|
| Сря Окт 24, 2012 12:10 pm |
|
 |
|
npelov
Ранг: Почетен член
Регистриран на: Пет Яну 22, 2010 5:46 pm Мнения: 680
|
 Re: Странен проблем с LCD и PIC18F45K22
преправих инит-а на: Това което ми е в повече е display on ... не знам защо решават, че след инициализацията дисплея трябва да е изключен ... Ще трябва малко запояване за да го тествам.
|
| Сря Окт 24, 2012 12:18 pm |
|
 |
|
npelov
Ранг: Почетен член
Регистриран на: Пет Яну 22, 2010 5:46 pm Мнения: 680
|
 Re: Странен проблем с LCD и PIC18F45K22
 това ще ме научи да гледам по-добре спецификациите. Работи безотказно, без значение от меренето на батерията. Сигурно не успява да сетне 8 бит режим и решава че ще е 4 бит.малко е тъпо function set да трябва да се подава 4 пъти, но щом са го направили така значи има нужда. мерси за помощта. П.П. tgi, не са сетъп времената. Явно кабела не е достатъчно дълъг и разтоянието между жиците е достатъчно голямо за да окаже влияние паразитния капацитет в/у времената. Дори ако инструкциите са една след друга пак ще има 62.5нс, а всъщност има един call между тях, което добавя още 125. Може да сложа още малко закъснение преди предния фронт на Е за всеки случай.
|
| Сря Окт 24, 2012 12:24 pm |
|
 |
|
741
Ранг: Форумен бог
Регистриран на: Вто Сеп 15, 2009 10:44 am Мнения: 1034
|
 Re: Странен проблем с LCD и PIC18F45K22
Това в твоя дейташийт е стандартната процедура за HD44780, съмнявам се някой да тръгне да се отклонява от правилото. По-скоро и на другия дисплей не е работела. Напрежението се е вдигало както трябва и чипът се е инициализирал без помощ отвън. А повторната инициализация, понеже не е била довършена докрай, е оставала без ефект.
|
| Сря Окт 24, 2012 2:30 pm |
|
 |
|
npelov
Ранг: Почетен член
Регистриран на: Пет Яну 22, 2010 5:46 pm Мнения: 680
|
 Re: Странен проблем с LCD и PIC18F45K22
Може и така да е. Диспеите от комет обаче са с KS0066U (или еквивалент) и се различават по инициализация: http://store.comet.bg/download-file.php?id=469Както казах инициализацията на HD44780 с няколко допълнителни function set няма да попречи на KS0066U. Всъщност сега като се замисля май не съм пробвал с кометския дисплей. Само с тези от ebay, които явно са с HD44780-подобен чип.
|
| Сря Окт 24, 2012 3:29 pm |
|
 |
|
741
Ранг: Форумен бог
Регистриран на: Вто Сеп 15, 2009 10:44 am Мнения: 1034
|
 Re: Странен проблем с LCD и PIC18F45K22
Вярно. Щеше да е интересно да пробваш и с него, да разберем дали са пипнали контролера. Може и да са, гледам 4-битовия интерфейс въобще не го споменават.
|
| Сря Окт 24, 2012 3:42 pm |
|
 |
|
741
Ранг: Форумен бог
Регистриран на: Вто Сеп 15, 2009 10:44 am Мнения: 1034
|
 Re: Странен проблем с LCD и PIC18F45K22
Всъщност, има голяма вероятност да става въпрос за калпава документация. Гледам, че кометския KS0066U е с контролер "SED1278 or equivalent". В дейташийта на SED1278 инициализацията си е същата като на HD44780. Китайска му работа.
|
| Сря Окт 24, 2012 4:01 pm |
|
|