| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Динамична индикация http://mcu-bg.com/mcu_site/viewtopic.php?f=2&t=7979 |
Страница 1 от 2 |
| Автор: | mkrumov [ Сря Юли 07, 2010 5:26 pm ] |
| Заглавие: | Динамична индикация |
Здравейте, правя едно диодно табло 20 символа на ред (7х5), трябват ми 10 реда. Направил сам единият ред и проблема е следния - ако се показват до 6 символа, всичко е ок. Ако са повече, започва да се вижда опреснняването на диодите. Представям си какво ще се получи при 10 реда ... Експерименталната схема за този ред е следната - един pic18f1320, единият порт го ползвам за опреснване на колоните, а от другия ползвам 3 изхода за управление на HC595, като подавам редовете през наколко навързани HC595. Установих че проблема е в pic-a - не е достатъчно бърз. Та въпроса е следният - да продължавам ли да се опитвам с динамична индикация (друг pic или друга марка контролери ) или да се орентирам към нещо с повече изходи и да направя статична? Ако има други предложения за динамична индикация - моля споделете. Гледах port expander, които се управлява пак серийно и не знам дали нямам да имам същия проблем. Изобщо споделете вашият опит с подобни задачи. |
|
| Автор: | sthx [ Сря Юли 07, 2010 6:48 pm ] |
| Заглавие: | |
Едно от решенията според мене е следното. Динамични индикации, като всяка една от тях се "грижи" за 8 символа. Честота на опресняване трябва да ти е поне 100Hz, сиреч добре е на всяка примерно 1 mS процесорът да сменя светещия разряд. Възможно е и рзделяне по редове и колони в смисъл данните да не са 8 битови, а примерно 32. Това е въпрос на конкретна преценка. Статичната индикация в случая може да се квалифицира като безумие от гледна точка на реализацията, а освен това режимът на работа светодиодите е по-неблагоприятен - по-малко ще излъчват при една и съща средна консумация. |
|
| Автор: | Cino [ Сря Юли 07, 2010 7:42 pm ] |
| Заглавие: | |
този 18f1320 не е много подходящ за такива цели. 4к думи flash,256ram. Пробвай да го пуснеш на вътрешния кварц с PLL, ще стане 40MHz, което са 10 инструкции за микросекунда. На "megaAVR" за изпращане на един бит трябват около 10 инструкции, за същата постановка - hc595. ако и на пик-а са толкова.за милисекунда ще можеш да пратиш 100-120 байта. което за шрифт 7х5+1 са 130-160 символа. или 6-8 реда по 20 символа на ред. Това е при честота 100Hz, ако намалиш малко честотата, е възможно да обработиш 10 реда. Но трябва да се направи компромис с изгледа , дали ще мига, и ще е неприятно за окото. Трябва и текста който ще пишеш да е готов и да не правиш никакви обработки по него,иначе няма да стигне времето. |
|
| Автор: | head_up [ Сря Юли 07, 2010 8:06 pm ] |
| Заглавие: | |
абе що просто не се оттървеш от тоя ПИК и не сложиш нещо дето му стигат силите да управлява повече от шепа светодиоди, ами се занимаваш с тая загубена кауза П.П. айде пак се подпали чергата... |
|
| Автор: | sv_shady [ Сря Юли 07, 2010 11:44 pm ] |
| Заглавие: | |
Защо не пробваш с по един контролер да речем за ред, а един главен да им раздава текста за визуализация. |
|
| Автор: | bateAz [ Чет Юли 08, 2010 9:21 am ] |
| Заглавие: | |
За изпращане на един БАЙТ ще според мен ще отидат не повече от 15 инструкции, ако се ползва хардуерният SPI и ако нещата се направят разумно. Като се има предвид, че за цялата индикация ще трябват грубо 200 байта, то за 3000 цикъла ( 0.3 ms за PIC18 / 40MHz ), излиза, че времето ще стигне няколко пъти. Друг въпрос е, че контролер с 256 байта RAM не е най-доброто за това приложение. А иначе задачката си е проста, дори и без контролер става, един ПИК ще свърши работа! |
|
| Автор: | mkrumov [ Чет Юли 08, 2010 10:44 am ] |
| Заглавие: | re |
Снощи не можах да пробвам, но днес ще опитам следното: 1. Ще видя какво ще стане ако пусна контролера на вътрешния кварц с PLL 2. Ако не стане, ще взема някои с повече ram. Като се позамислих, май статична индикация ше бъде голямо безумие Ще пиша до къде сам го докарал |
|
| Автор: | woody [ Чет Юли 08, 2010 1:17 pm ] | |||||||||
| Заглавие: | ||||||||||
|
||||||||||
| Автор: | npelov [ Чет Юли 08, 2010 7:24 pm ] |
| Заглавие: | |
Знам че звучи тъпо, но мислил ли си да го направиш статично? т.е. за всеки диод да има извод от HC595. 74HC595 са ти 20 лв на 100 бр. (смд) в комет. на теб ти трябат около 90 за 20 символен ред. Навръзваш ги сериино, пускаш им данните сериино, щракваш latch-a или както е означен ST_CP и целия ред се опреснява от веднъж. Няма мигане, няма забавяне. И даже можеш да сложиш по-малък пик - някоя 18-ка с 18 или 28 крачета. 10 MHz с PLL не е лошо предложение. А ако искаш малко отгоре серията с USB 4550 и подобни могат да правят 48 МХз от какъв да е кристал (в известни граници). Примерно може да сложиш 4 МХз и да имаш 12 MIPS. Единствено платката ще ти е доста кофти и ще трябва да налепиш по 90 ИС на ред |
|
| Автор: | optron [ Нед Юли 11, 2010 11:39 am ] |
| Заглавие: | |
Този 595 поема до към 29 мегахерца, тоест, можеш да му предаваш със 29 мегабита в секунда. Цялото ти табло, според описанието ти възлиза на 7000 пиксела (това ако е със символи 5х7, с 5х8 стават 8000). Ако приемем, че цялото е направено с 595-ци, то ще можеш да опресняваш съдържанието малко над 4000 пъти в секунда. Тоест, напълно достатъчно. Пиковете имат една много полезна инструкция - NOP. Какви чудеса прави тя, ще се шашнете. Искам да кажа, че те могат да реализират изключително малки закъснения и по този начин да реализират големи скорости на трансфер на данни - сравними с до половината от цикловата честота. Това обаче става само при софтуерна имплементация на комуникацията. На мен ми идват на ума два варианта: Единият е ако ще пишеш само текст по таблото със фиксирана символна таблица. Тогава може на всеки символ или група символи да сложиш нескъп контролер (примерно ПИК 12-та серия), който да се грижи локално за опресняването на индикацията. Централният контролер (твоят 1320) само му праща кодовете на символите, а локалните контролери знаят кодовата таблица и я изобразяват всеки в своя си блок. Другият е, ако ще изобразяваш графика. Той има два подварианта: Единият е преработка на варианта с текстовото табло, но вместо кодовете на символите централният контролер да праща графичните фрагменти, за които всеки локален контролер отговаря. Тук обаче ще ти трябва доста рам и за твоето табло тази на 1320 няма да стигне. Трябва ти някой с повече рам или да си сложиш външна рам. Другият е централният контролер да прави цялото опресняване. Аз ти предлагам следната реализация на този вариант: Най-бързо опресняване става с паралелна комуникация - големите видеоекрани със светодиодни панели са направени с модули и между тях комуникацията е именно паралелна. Значи запазваш си 595-те, като тях ги ползваш за обхождане на редовете. Колоните ги зареждаш в синхронни паралелни регистри, като зареждането става по паралелна 8-битова шина, командвана от единия порт на процесора. Един по един обхождаш тактовите пинове на паралелните регисти (може отново с масив от серийни, т.е. 595-ци или по друг начин) и те поемат данните от паралелната шина. Не е нужно серийните регистри всеки път да ги пълниш от край до край - просто зареждаш една 1-ца в началото и при всеки такт тя се мести на следващия бит. По същия начин ще обхождаш редовете с другия масив от 595-ци - вертикалния. По този начин са направени старите ЛСД-панели за лаптопите, а нищо чудно и съвременните да са така (за тях не знам, не съм разглобявал). Само че при тях се ползват чипове със серийни регистри с по 80-100 крака. И тъй - пълниш паралелните регистри, зареждаш 1-ца в началото на вертикалния масив (този за вертикалната развивка) и първият ред ти лъсва. Опресняването на всеки ред ще ти коства около 8 пъти по-малко цикли време, защото зареждаш наведнъж по 8 бита с една инструкция (по-точно две). За следващия ред само буташ един такт на вертикалния масив, 1-цата се премества на следващия ред и наново пълниш паралелните регистри. Лъсва ти втория ред. И така нататък. Ще трябва да внимаваш да не заредиш повече от една 1-ца във вертикалния масив, защото ще ти се провали вертикалната развивка, а и може да се претовари хоризонталния масив, тъй като на едно краче от него ще се паднат вече по няколко светодиода. Въпреки всичко, бих те посъветвал да реализираш някой от първите два варианта - с локалните контролери. Така ще получиш модулна конструкция и бързо и лесно ще можеш после да строиш табла с различни размери, а освен това в рамките на всеки модул ще имаш достатъчно бързо опресняване и то със сравнително голям коефициент на запълване на пикселите. Последното от своя страна ще прави изображението на таблото по-ярко. Успех! |
|
| Автор: | optron [ Нед Юли 11, 2010 12:02 pm ] |
| Заглавие: | |
Ето ти вариант за готов локален контролер - MAX6952 или MAX6953. Двете схеми реализират до четири символа 5х7 (по спецификация могат и до два символа, с двуцветни панели), като имат вградена символна таблица със 104 символа и освен това можеш да програмираш и свои си 24 символа. Последното дава възможност и за изобразяване на графика, като просто наливаш графичните фрагменти като потребителски символи. И двете схеми имат вградени драйвери за светодиодните панели, като имат възможност за регулиране на яркостта или гасене на панела. Могат и да се тестват панелите - по команда светват всички светодиоди. Двете схеми са напълно еднакви функционално, разликата е в протокола за комуникация с тях - едната е по I2C, другата е по SPI. Прочети за тези схеми, мисля че ще ти свършат добра работа. А я ми кажи, това табло от компютър ли ще се управлява или от специализирано устройство? |
|
| Автор: | mkrumov [ Пон Юли 12, 2010 6:08 pm ] |
| Заглавие: | re |
Здравейте всички, ето до къде докарах - с вътрешния кварц с PLL - пълна буза, pic-a се държи неконтролируемо, може аз да сам в грешка някъде, но не става За pic с повече рам ще изчакам малко, в момента правя друг вариант, подобно натова което е описал optron Взех няколко 4017 и ги ползвам вместо 595, на всеки такт с тях управлявам по 1 колона, редовете от тази колона управлявам паралелно, през portb ( това за тестове ) Така скоростта се вдинга доста, нямам проблем с показване на 15 символа, няма изобщо мигане от опресняване, при това с 4MHz кварц, днес ще сложа един 8MHz и ще тествам с 20 символа optron, гледах ги и аз тези готови контролери, но идеята ми е да не показвам само текст, а и графика за в бъдеще (версия 2) optron, таблото ще се управлява през сериен порт, имам в предвид че ще напиша някаква програмка с която да се подава текста за съответния ред и таблото да го показва Предполагам че тогава ще имам проблеми с скоростта, но мисля когато се обслужва RS-a, таблото да е загасено, да не се показват глубости За сега толкова |
|
| Автор: | kasparov [ Пон Юли 12, 2010 8:31 pm ] | |||||||||
| Заглавие: | Re: re | |||||||||
Вътрешен кварц няма PLL има само само с външен кварц в HSPLL мод. |
||||||||||
| Автор: | npelov [ Пон Юли 12, 2010 9:04 pm ] |
| Заглавие: | |
Ако не си включил PLL-а, пробвай да го включиш - HSPLL режим както спомена kasparov. Можеш да опиташ направо с 10 MHz (макс. без клокване) + PLL = 40MHz или 10 мил. инструкции в сек. това е 10 пъти повече от 4 МХз. Ама нямаш шанс да докараш 10 реда с 1 пик щом казваш че 1 става с мъка (освен ако наистина си пропуснал да включиш PLL). |
|
| Автор: | bateAz [ Пон Юли 12, 2010 10:06 pm ] |
| Заглавие: | |
А бе младеж, я постни какво си сътворил! Изобщо не ми изглежда сериозно да не можеш да клатиш 1 ред без да мига, та дори и на 4 MHz да работиш. Ама дай и малко словесно описание как си си огранизирал нещата, нямам намерение да ти правя ревърс инженеринг, та да позная какво си мислил да направиш. |
|
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|