|
Виж темите без отговор | Виж активните теми
Дата и час: Пет Авг 21, 2026 8:26 pm
| Автор |
Съобщение |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30755 Местоположение: София
|
 SX1511B ..
някой дали го е изпозлвал това, аз винаги съм избягвал да изпозлвам техни продукти, но не ми попада друго подходящо в този диапазон. Свързнао с другата тема, контролер с USB и количеството PWM нема от тая серия, трябва да минавам на няккаъв арм, да му пускаме тепърва USB да пренасяме код .... софтуерни са ми опция но крайна, това е не лошо разширителче с PWM, 8 канала идеално ми пасват. Та ако някой има впечатления, микрочеп имат разни експандери ама и те не са ми любима марка а и не видях нещо с PWM, и изобщо май не намерих много варианти на обикновен експандер с PWM, има много LED драйвери но това не ме устройва.
|
| Чет Юни 22, 2017 3:33 pm |
|
 |
|
slav4o.com
Ранг: Форумен бог
Регистриран на: Нед Яну 01, 2012 8:04 pm Мнения: 2663 Местоположение: София / Велико Търново
|
 Re: SX1511B ..
Не стига ли процесорното време на основния за да го направиш със софтуерни PWM ? Това нещо каква му е цената, гледам че се коландри по SPI. Един отделен PIC със SPI и 8 софтуерни PWM как идва ?
|
| Чет Юни 22, 2017 5:38 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30755 Местоположение: София
|
 Re: SX1511B ..
Просто не искам да е софтуерно,, стига и време и всичко, но не ме кефи идеята да трябва д амисля и за това, софтуерните PWM имат един проблем, имат склонност да не са синхронни и освен това да не са стабилни, т.е. имам джитер и т не малък. Може да го няма, но пък трябва да се вържеш на хардуерен ивент, това не мога да го направя, с най-висок приоите е ъпдейта на цифровата LED, т.е. като вляза там спирам всички прексъвания, останалата периферия не я бърка 1 mS, обаче на PWM и с ефекти 1 mS се вижда неприятно колкото и да не ти се вярва. Иначе време имам бол, не правя нищо, освен това рефрешване на цифровата лента което отнема около 10-15% CPU време. Този чип го гледма около долар и нещо, сигурно ще го намеря за около 1$, ако сложа пик със софтуерни PWM макар там да мога да ги оставя с висок приоритет де да знам, пак не ми е голям кеф, не е невъзможно. Обаче това е още един чип за програмиране и за проверка, още 1 минута, а времето е пари, а фабриките чарджат фиксирано без нзачение какъв чеп програмират, ще ми вземат и още за тулинг .. не си струва, ще икономисм 50 цента и ще платя още 2$ на фабриката щото аз не произвеждам милиони бройки а по 300-400 на месец.
|
| Чет Юни 22, 2017 7:15 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30755 Местоположение: София
|
 Re: SX1511B ..
Никой нищо не казва, май никой не го е изпозлвал, почвам леко да се колебая, с доставките може да се окаже проблем.
|
| Сря Юни 28, 2017 9:29 am |
|
 |
|
Н'бабане Гт'муан'га
Ранг: Форумен бог
Регистриран на: Сря Яну 25, 2012 9:14 am Мнения: 5324
|
 Re: SX1511B ..
Виж cypress. Имат неща дето са арм с уеб и могат да изкарват по 8 Pam
_________________ 'просто' е технически синоним на 'красиво'
|
| Сря Юни 28, 2017 2:47 pm |
|
 |
|
slav4o.com
Ранг: Форумен бог
Регистриран на: Нед Яну 01, 2012 8:04 pm Мнения: 2663 Местоположение: София / Велико Търново
|
 Re: SX1511B ..
Добре де тези PWM аналоговите ако са 8 или по-малко имат най-много 9 сетвания на пинове (1 включване и 8 изключвания според периода). Просто малко да се реорганизират прекъсванията, да ги намърдаш тия сетвания между комуникацията на цифровите ленти. Не им знам протокола, но предполагам че не е задължително всичките данни към тях да се предават наведнъж. Все си мисля че между две съседни команди, няма да е проблем да има сетване на един пин на контролера. Ще трябват и съответния брой таймери колкото са каналите за генериране на прекъсванията. Не зная обаче какъв е контролера така че идеята ми може въобще да не е приемлива. Но все пак ако предаването към цифровите ленти трае 1mS, няколко микросекунди, а може би и по-малко допълнително няма да ги сбъркат.
|
| Сря Юни 28, 2017 8:28 pm |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6107
|
 Re: SX1511B ..
с какво щракаш лентата
_________________ main[-1u]={1};
|
| Сря Юни 28, 2017 9:18 pm |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9123 Местоположение: Разград
|
 Re: SX1511B ..
@slav40 - като цяло 8 софтуерни PWM-a не са кой знае колко много. В една друга тема го писах - с 64 софт 8 битови PWM-a на 120Hz, тамън се уплътнява един 18F23k22 на 64MHz - да ги смята и вади по сериен канал (SPI). Обаче има джитер и лек асинхрон между тях. 8 могат да се подкарат и на прекъсване и ще има свободно време. Вероятно е възможно да се оптимизира някак.
|
| Сря Юни 28, 2017 10:04 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30755 Местоположение: София
|
 Re: SX1511B ..
В основния няма как да стане, имам по високи приоритети с рандом времена, вижда се. Но реших да не рискувам с тоя чип, я го има я не. Сложих един малък пик, 3 хардуерни за едната и 3 софт за другата. Цъкам ги с едни мосфети, 48 А на он семи.
|
| Чет Юни 29, 2017 12:25 am |
|
 |
|
stoyanoff
Ранг: Форумен бог
Регистриран на: Чет Юни 25, 2009 1:01 pm Мнения: 2251
|
 Re: SX1511B ..
Тони, ако трябва да подаваш постоянно команди през USB-то, не е добра идея! При по-продължителна работа се случва да се счупи. Аз си направих така 3D машината и много съжалявам(не видях, че repetier-a поддържа LAN). Случвало ми се е няколко пъти и не е приятно. А и през тези MOSFET-и едва ли си пуснал по 0.5А! Колкото до контролер, за управление на мотори съм използвал dsPIC30F5015. 8 PWM-а, но с общ базов регистър. Подкарвал съм 7.5kW асинхронен с вградена спирачка(32-33A при 20Hz) - никакви ядове. 30MIPs-а имаш, но трябва да се внимава със захранващото, защото при 5V над 80МHz започва да топли като печка... Ако трябва да са отделни PWM съм си харесал това - PIC24FJ64GA310. Мисля по някоето време с това чудо да си направя малка платка с 6 или 8 драйвера за упраление на малки CNC машини. Stall детекшън и крива за следене на мощността, управляващи сигнали на 100тина kHz. Разни други благинки  Но проектът е до никъде. Нямам време в момента. Колкото до USB, винаги можеш да си сложиш някакъв експандер или допълнителен малък контролер(хем да разтовариш главния!). Ако държиш твърдо на това USB! ПП: Аз също не съм убеден, че Микрочеп са за всякаква ситуация, но да вземат другите марки да си направят представителство в BG... В различните ситуации е нормално различни марки да имат преимущество, ама да чакам всеки път доставка с камила от Китай/Тайван/Корея.... И най-вероятно това не е някаква мощна серия, че да ги накупиш с ТИРове! Поздрави!
_________________www.elkran.com
|
| Чет Юни 29, 2017 9:22 am |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11278 Местоположение: Добрич
|
 Re: SX1511B ..
Мда, stoyanoff е прав... С USB-то си плачеш за проблеми, особено при подобни токове. Прост пример - ако по някаква причина масата на устройството мръдне и поради тая причина си помисли че нивото на D+ и D- линиите е ниско, то задължително трябва да се ресетне. Да ама хоста не може да види тая ситуация и за него устройството от тоя момент нататък изглежда като умряло. Стандартно няма излашък от тая ситуация, аз затова много го обичам тоя стандарт  Евентуално, ако пишеш и от двете страни софта може да излезеш от ситуацията. По-добрият вариант изобщо да не стигаш до нея, дали с галванични изолации, дали с други чудесии... Но все е сложно. А пък за PWM-а тия ПИК-чета нямат ли порт операции да клатиш всички линии накуп? Тогава и един таймер би бил достатъчен
|
| Чет Юни 29, 2017 10:28 am |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30755 Местоположение: София
|
 Re: SX1511B ..
За USB-то, мен USB-то ми е от машината до контролера, там грижи няма, но и с USB проблеми нямаме, от много време изпозлваме USB никакви грижи, не се е случвало да се чупи или забива, но ние сме само със silabs и почти всичко е като HID. Каква е цялата работа, аз мисля съм я описвал и преди. Имам еидн силабски чип който клати цифрови ленти, 3 канала, то самото клатене не е зор без грижа и 8 мога да клатя, времето стига. Обаче тези ленти са анимирани, държа стабилен фрейм рейт от 50 Hz. Лентите може да са дълги, и самото изпращане на данните отнема време. Това са прословутите диоди WS2812 и др. подобни ним. Там протокола е идиотски, започна ли да предавам не мога да спра, иначе се ресетват, т.е. трябва да подам целият фрейм буфер наведнъж, това за 3-те или колкото там канала са го правя едновременно. Да но за да изпратя фрейми си иска време, горе долу 10 ms. Та това е критичният процес който не мога да прекъсна. В този чип имам и 4 хардуерни PWM-а, обаче аз искам да клатя и допълнително 2 канала аналогова RGB, не ми стигат 2 PWM-а. Не мога да ги направя софтуерно защото ще стане грозно, ако PWM ми е на 1 Khz, тия 10 mS ще му разкажат играта. Дори да ги синхронизирам, което да речем е възможно, пак ще има проблем. Имам силабси с достатъчно PWM, обаче те пък нямат USB. Като цяло не искам да ходя на друг чип защото нещата са изписани, гледам възможно най-лесен преход, особенно USB-то, верно работят по сходен начин но я работи, я не, това си е тествано и знаем че нямаме грижа. Та затова първо мислех да лепна това чипче, има си хардеурни PWM-и 8, работи като разширител по SPI. Но малко ме притеснява, няма други подобни, LED драйвери много но не и това което ми трябва. Та за да не рискувам с чип който е един единствен, реших да сложа външен пик, както slav4о предлагаше. Верно ще имам едно прогрмаиране, но ми спестява главоболия от проблем с единствен доставчик който и не е сред любимите ми. Вързах го на SPI, сега проблем е че той има само 4 хардуерни PWM-а, от които реално 3 изпозлваеми, въпреки че има и друг на който мога и 4-те да изпозлвам, както и да е. На 3-те хардуерни закачам едната лента, правя и още 3 софтуерни, въпреки че не е изключено да прерутирам и да изпозлвам 3-те хардеурни в силабса. Сега тук има един основен проблем, но той така или иначе е наличен, ще трябва да правя цветова компенсация, така или иначе я имам защото адресируемата и аналоговата ленти светят различно. Вчера дорутих платката, то голмата платка де, но два дни въртях едни 10 конектора докато измисля как ще е най-удачно да ги сложа та да остане място и да охлаждам транзисторите. Получи се, днес ще трябва да я пипна тук таме, и ако не ме домързи може да прехвърля софтуерния към силабса та да е хардуерен, въпреки че като е в отделен пик няма никакво значение, на 1 khz няма да има грижа. Иначе да, таймера ще е само един разбира се, то да са няколко е грешка защото ще ти се разсинхронизират RGB каналите, иначе от към перформънс в този случай грижа няма, спокойно мога да поддържам PWM на тази честота стабилно, мен проблема ми е софтуерен в силабса заради рефреша на фрейма. п.с всъщност аз ползвам макият силабс и да искам не мога да му изпозлвам хардеурния PWM, няма краци а не ми се слага голям чип само за това, пика ще свири и пее, може и хоро да играе 
|
| Чет Юни 29, 2017 11:09 am |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11278 Местоположение: Добрич
|
 Re: SX1511B ..
Аз не мога да вникна в проблематиката щото не познавам конкретните чепове и логики... Но мога да философствам и от философска гледна точка периодът на даден процес е обратно пропорционален на приоритета му. Демек не е много правилно да искаш хем голям период хем голям приоритет. По правилно е да разглеждаш пълненето на тоя WS2812 не като голям (10ms) а като процес с малък (<1uS) период. Тогава вече няма да имаш грижи с приоритетите. Но пък прекъсванията на всяка микросекунда може и да ти претоварят ПИК-чето... А тъй като и софтуерните PWM-и също искат прекъсвания що не помислиш да ги обединиш. Демек пускаш един таймер на 1MHz или повече и да те залива с прекъсвания. В прекъсването правиш само 1-2 порт операции. Просто клатиш пинове и за PWM-те и за тоя WS интерфейс, изобщо не те интересува кое какво е. Дърпаш от един кръгов буфер стойност, шляпаш по порта и излизаш. А пък вече в основния цикъл се стремиш буфера никога да не се изпразва...
|
| Чет Юни 29, 2017 12:54 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30755 Местоположение: София
|
 Re: SX1511B ..
Ами то вече в страни от тази тема, но най-общо този малоумен чип ws2812 работи по много прост, но много неудобен протокол. Най-общо уж NZR, ама не е баш щото трябва да се връщаш в 0, та най-общо предаваш на около 800 kHz, като кодирането е според периода на импулса. Към всеки диод предаваш по 24 бита, след което всичко останало той препредава към този след него, и т.н. до последния. Ако не получи импулси за повече от 50 uS, които обаче с еоказват не 50 а 10 при повечето, той се ресетва, т.е. отново поглъща първите 24, ако не си си играл с подобан глупост те тук : http://www.seeedstudio.com/document/pdf ... asheet.pdfНяма нищо хардеурно перифярия която да може да реши проблема, трябва да е софтуерно. С оглед времената предполагам става ясно че да работиш на прекъсване няма как. Та имам една функция която чисто софтуерно генерира данните, и като цяло вътре има 2-3 NOP-а, всичко останало са команди, при което се получва точният тайминг. Ясно е че с по-производителен процесор може да отнема и по-малко инструкции, този е 25 nS на инструкция, но имаш ои работи с периферии, които тук са бързи а при повечето АРМ-ве май са бавнички, и позлата от бързото изпълнение на инструкции е никаква. Чисто теоретичномога да прекъсвам този цикъл за периоди под 10 uS, но какво ще постигна, при 1.25 uS на бит ако започна да прекъсвам не мога да постигна ниаккъв човешки фрейм рейт. Имам примерно 5 м лента, общо 300 диода, това са 7200 бита, или 9 mS. Ето то тук ми идва това ограничение. За да имаш анимация кояот не създава впечатление че насича или прескача трбява да я държиш с фиксиран фрейм рейт, аз държа 50 Hz, т.е. на всеки 20 mS опреснявам лентите. 9 ms от тези 20 съм във функцията която ъпдейтва лентите, остават ми 11 mS в които не правя нищо. Ако искам софтуерен PWM на 100 Hz проблем няма, но аз искам на 1 Khz, на 100 hz се вижда мигане. Е в тези 20 mS правя и друго, самата анимация, но тя не отнема толкова много време. Та те заради тази малоумна лента съм вързан с тези 10 ms в които спирам и прекъсванията, защото няма как да обработя разумно каквото и да е прекъсване за реланите 10 uS които мога да не пращам данни. Ако лените си спазваха спецификацията, и ресета беше поне 50 uS без данни, тогава можеше да стане по друг начин, то беше по друг начин, и не работеше точно защото те се ресетвт много преди тези 50 uS. Може и да има ленти които ги спазват, но принас попадат всякакви, и всяка е бам башка. Опитвам да работя само с едни, но като ми пратят друга нищо не можем да направим. п.с. има някакъв вариант да не ходя на вектора на прекъсването а да го полирам след предаването на всеки байт, и там да реализирам PWM-а, но тези гадове са чуствителни и към периода между два байта, трябва да дебна да съм предал една група от 3, и тогава, твърде много проверки стават, странно но факт, и с 25 nS на инструкция инсттрукциите не стигат. Да ти кажа не съм мерил точно кога настъпва ресета на всички, на една беше не 10 ами дори по-малком нещо като 6 uS.
|
| Чет Юни 29, 2017 1:25 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11278 Местоположение: Добрич
|
 Re: SX1511B ..
С голям проц ще имаш 1000 начина да го направиш, но там е друга бира..
Въпросът е концептуално колко са ти точни прекъсванията, дали ги забраняваш и дали имаш вложени прекъсвания. Ако имаш 3-пъти да значи ще може да клатиш пинове с прилична резолюция и джитер.
Идеята ми беше да имаш 2 нива. Едното да ти гарантира точните тайминги, както досега го правиш. Но с две уточнения, едното е че освен WS да си клатиш и PWM-те. Вместо NOP-вете да кажем, така си решаваш проблема с дългите (10ms) блокажи. И другото уточнение е, че това ниво все пак трябва да пуска проца. Досега си го пускал след 10ms. Това че е много голям блокаж, много е, но по-големия проблем че досега все пак след 10мс си излизал. Но ако вкараш и PWM-те вътре ще трябва да измислиш кога точно да излизаш. За мен по-добрия вариант е на всеки бит, т.е. бит тайма и PWM стъпката да са равни в едно общо прекъсване да ги правиш. Сега виждам че тоя WS иска две времена 0.35 и 0.9uS които не са кратни на всичкото отгоре. Това е кофти. Ако бяха 0.33 и 1uS да кажем просто пускаш на 3MHz прекъсвания... Освен с хардуерен PWM да правиш битчето, поне при АРМ карантиите лесно могат да правят single shoot сигналче. Демек да имаш прекъсване на всеки 0.9uS в което запускаш 1 бит за WS-a (ако си във фрейм), клатиш портовете и излизаш. При 25ns, ако това цялото да кажем го вместиш в едни 20 инструкции стават 500nS, дори и да са малко повече не е проблем. Въпросът на всеки 900ns да успяваш да влезеш и да излезеш в това прекъсване и да ти останат поне едни 100-200ns за да не ти умират прекъсвания с по-нисък приоритет и основния цикъл.
|
| Чет Юни 29, 2017 2:10 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 3 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|