Отговори на тема  [ 19 мнения ]  Отиди на страница 1, 2  Следваща
Динамична индикация 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пон Мар 01, 2010 7:12 pm
Мнения: 65
Мнение Динамична индикация
Здравейте,
правя едно диодно табло 20 символа на ред (7х5), трябват ми 10 реда.
Направил сам единият ред и проблема е следния - ако се показват до 6 символа, всичко е ок.
Ако са повече, започва да се вижда опреснняването на диодите.
Представям си какво ще се получи при 10 реда ...
Експерименталната схема за този ред е следната - един pic18f1320, единият порт го ползвам за опреснване на колоните, а от другия ползвам 3 изхода за управление на HC595, като подавам редовете през наколко навързани HC595.
Установих че проблема е в pic-a - не е достатъчно бърз.

Та въпроса е следният - да продължавам ли да се опитвам с динамична индикация (друг pic или друга марка контролери ) или да се орентирам към нещо с повече изходи и да направя статична?
Ако има други предложения за динамична индикация - моля споделете.
Гледах port expander, които се управлява пак серийно и не знам дали нямам да имам същия проблем.

Изобщо споделете вашият опит с подобни задачи.


Сря Юли 07, 2010 5:26 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Съб Юни 24, 2006 8:25 pm
Мнения: 2292
Мнение 
Едно от решенията според мене е следното.
Динамични индикации, като всяка една от тях се "грижи" за 8 символа. Честота на опресняване трябва да ти е поне 100Hz, сиреч добре е на всяка примерно 1 mS процесорът да сменя светещия разряд.
Възможно е и рзделяне по редове и колони в смисъл данните да не са 8 битови, а примерно 32. Това е въпрос на конкретна преценка.
Статичната индикация в случая може да се квалифицира като безумие от гледна точка на реализацията, а освен това режимът на работа светодиодите е по-неблагоприятен - по-малко ще излъчват при една и съща средна консумация.

_________________
Две плюс две е приблизително равно на четири. Факт!


Сря Юли 07, 2010 6:48 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Чет Окт 02, 2008 10:24 pm
Мнения: 105
Мнение 
този 18f1320 не е много подходящ за такива цели. 4к думи flash,256ram.
Пробвай да го пуснеш на вътрешния кварц с PLL, ще стане 40MHz, което са 10 инструкции за микросекунда.
На "megaAVR" за изпращане на един бит трябват около 10 инструкции, за същата постановка - hc595.
ако и на пик-а са толкова.за милисекунда ще можеш да пратиш 100-120 байта.
което за шрифт 7х5+1 са 130-160 символа. или 6-8 реда по 20 символа на ред.
Това е при честота 100Hz, ако намалиш малко честотата, е възможно да обработиш 10 реда.
Но трябва да се направи компромис с изгледа , дали ще мига, и ще е неприятно за окото.
Трябва и текста който ще пишеш да е готов и да не правиш никакви обработки по него,иначе няма да стигне времето.


Сря Юли 07, 2010 7:42 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Юни 01, 2008 9:54 pm
Мнения: 1503
Местоположение: Пловдив
Мнение 
абе що просто не се оттървеш от тоя ПИК и не сложиш нещо дето му стигат силите да управлява повече от шепа светодиоди, ами се занимаваш с тая загубена кауза :wink:
П.П. айде пак се подпали чергата... :P


Сря Юли 07, 2010 8:06 pm
Профил WWW
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Сря Окт 11, 2006 8:19 pm
Мнения: 373
Местоположение: София/Edinburgh, UK
Мнение 
Защо не пробваш с по един контролер да речем за ред, а един главен да им раздава текста за визуализация.

_________________
Българският портал за РОБОТИКА


Сря Юли 07, 2010 11:44 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение 
За изпращане на един БАЙТ ще според мен ще отидат не повече от 15 инструкции, ако се ползва хардуерният SPI и ако нещата се направят разумно. Като се има предвид, че за цялата индикация ще трябват грубо 200 байта, то за 3000 цикъла ( 0.3 ms за PIC18 / 40MHz ), излиза, че времето ще стигне няколко пъти.
Друг въпрос е, че контролер с 256 байта RAM не е най-доброто за това приложение. А иначе задачката си е проста, дори и без контролер става, един ПИК ще свърши работа!


Чет Юли 08, 2010 9:21 am
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пон Мар 01, 2010 7:12 pm
Мнения: 65
Мнение re
Снощи не можах да пробвам, но днес ще опитам следното:

1. Ще видя какво ще стане ако пусна контролера на вътрешния кварц с PLL
2. Ако не стане, ще взема някои с повече ram.

Като се позамислих, май статична индикация ше бъде голямо безумие :)

Ще пиша до къде сам го докарал


Чет Юли 08, 2010 10:44 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Юли 31, 2007 2:55 pm
Мнения: 1792
Местоположение: София
Мнение 
bateAz написа:
А иначе задачката си е проста, дори и без контролер става, един ПИК ще свърши работа!

:D


Чет Юли 08, 2010 1:17 pm
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Пет Яну 22, 2010 5:46 pm
Мнения: 680
Мнение 
Знам че звучи тъпо, но мислил ли си да го направиш статично? т.е. за всеки диод да има извод от HC595. 74HC595 са ти 20 лв на 100 бр. (смд) в комет. на теб ти трябат около 90 за 20 символен ред. Навръзваш ги сериино, пускаш им данните сериино, щракваш latch-a или както е означен ST_CP и целия ред се опреснява от веднъж. Няма мигане, няма забавяне. И даже можеш да сложиш по-малък пик - някоя 18-ка с 18 или 28 крачета. 10 MHz с PLL не е лошо предложение. А ако искаш малко отгоре серията с USB 4550 и подобни могат да правят 48 МХз от какъв да е кристал (в известни граници). Примерно може да сложиш 4 МХз и да имаш 12 MIPS.

Единствено платката ще ти е доста кофти и ще трябва да налепиш по 90 ИС на ред :) - ще е добре да ти ги набодат на машина.

_________________
PIC SPBRG values calculator


Чет Юли 08, 2010 7:24 pm
Профил WWW
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Чет Ное 20, 2008 1:49 pm
Мнения: 276
Местоположение: Бургас
Мнение 
Този 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-ца във вертикалния масив, защото ще ти се провали вертикалната развивка, а и може да се претовари хоризонталния масив, тъй като на едно краче от него ще се паднат вече по няколко светодиода.
Въпреки всичко, бих те посъветвал да реализираш някой от първите два варианта - с локалните контролери. Така ще получиш модулна конструкция и бързо и лесно ще можеш после да строиш табла с различни размери, а освен това в рамките на всеки модул ще имаш достатъчно бързо опресняване и то със сравнително голям коефициент на запълване на пикселите. Последното от своя страна ще прави изображението на таблото по-ярко.
Успех!

_________________
Digitally yours: Optron


Нед Юли 11, 2010 11:39 am
Профил
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Чет Ное 20, 2008 1:49 pm
Мнения: 276
Местоположение: Бургас
Мнение 
Ето ти вариант за готов локален контролер - MAX6952 или MAX6953. Двете схеми реализират до четири символа 5х7 (по спецификация могат и до два символа, с двуцветни панели), като имат вградена символна таблица със 104 символа и освен това можеш да програмираш и свои си 24 символа. Последното дава възможност и за изобразяване на графика, като просто наливаш графичните фрагменти като потребителски символи.
И двете схеми имат вградени драйвери за светодиодните панели, като имат възможност за регулиране на яркостта или гасене на панела. Могат и да се тестват панелите - по команда светват всички светодиоди.
Двете схеми са напълно еднакви функционално, разликата е в протокола за комуникация с тях - едната е по I2C, другата е по SPI.
Прочети за тези схеми, мисля че ще ти свършат добра работа.
А я ми кажи, това табло от компютър ли ще се управлява или от специализирано устройство?

_________________
Digitally yours: Optron


Нед Юли 11, 2010 12:02 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пон Мар 01, 2010 7:12 pm
Мнения: 65
Мнение re
Здравейте всички,

ето до къде докарах - с вътрешния кварц с PLL - пълна буза, pic-a се държи неконтролируемо, може аз да сам в грешка някъде, но не става
За pic с повече рам ще изчакам малко, в момента правя друг вариант, подобно натова което е описал optron
Взех няколко 4017 и ги ползвам вместо 595, на всеки такт с тях управлявам по 1 колона, редовете от тази колона управлявам паралелно, през portb ( това за тестове )
Така скоростта се вдинга доста, нямам проблем с показване на 15 символа, няма изобщо мигане от опресняване, при това с 4MHz кварц, днес ще сложа един 8MHz и ще тествам с 20 символа

optron, гледах ги и аз тези готови контролери, но идеята ми е да не показвам само текст, а и графика за в бъдеще (версия 2)

optron, таблото ще се управлява през сериен порт, имам в предвид че ще напиша някаква програмка с която да се подава текста за съответния ред и таблото да го показва
Предполагам че тогава ще имам проблеми с скоростта, но мисля когато се обслужва RS-a, таблото да е загасено, да не се показват глубости

За сега толкова


Пон Юли 12, 2010 6:08 pm
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Сря Апр 05, 2006 9:52 pm
Мнения: 877
Местоположение: Разград
Мнение Re: re
mkrumov написа:
Здравейте всички,
ето до къде докарах - с вътрешния кварц с PLL - пълна буза, pic-a се държи неконтролируемо, може аз да сам в грешка някъде, но не става


Вътрешен кварц няма :) има вътрешен генератор който можеш да си пуснеш до 8 мХц (само) .
PLL има само само с външен кварц в HSPLL мод.


Пон Юли 12, 2010 8:31 pm
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Пет Яну 22, 2010 5:46 pm
Мнения: 680
Мнение 
Ако не си включил PLL-а, пробвай да го включиш - HSPLL режим както спомена kasparov. Можеш да опиташ направо с 10 MHz (макс. без клокване) + PLL = 40MHz или 10 мил. инструкции в сек. това е 10 пъти повече от 4 МХз. Ама нямаш шанс да докараш 10 реда с 1 пик щом казваш че 1 става с мъка (освен ако наистина си пропуснал да включиш PLL).

_________________
PIC SPBRG values calculator


Пон Юли 12, 2010 9:04 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение 
А бе младеж, я постни какво си сътворил! Изобщо не ми изглежда сериозно да не можеш да клатиш 1 ред без да мига, та дори и на 4 MHz да работиш.
Ама дай и малко словесно описание как си си огранизирал нещата, нямам намерение да ти правя ревърс инженеринг, та да позная какво си мислил да направиш.


Пон Юли 12, 2010 10:06 pm
Профил ICQ
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 19 мнения ]  Отиди на страница 1, 2  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 2 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни