Автор |
Съобщение |
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 7:57 pm Мнения: 600 Местоположение: Белград
|
Дайте съвет за вътрешна шина
Правя контролер, който трябва да управлява устройства през DMX. Системата е главен контролер, който подава сигналите и управляващи устройства(драйвери) за различните универсуми. Светлините или каквото има на изхода, се свързват към някое от управляващите устройства. Главният контролер е STM32F407VGT6. За драйверите още не съм решил, но е вероятно да са някакви PIC18-F-K(заради цената). Каква вътрешна шина мога да използвам за комуникацията между контролера и драйверите, за да постигна максимален брой универсуми? Желателно е да са поне 8. елементарната сметка показва, че ако предавам всички слотове на 8 универсума, опресняването ми пада на 5/ sec, което не е приемливо. Не бива да падам под 30/sec.
|
Пон Юли 17, 2017 10:04 pm |
|
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 11:48 am Мнения: 4717
|
Re: Дайте съвет за вътрешна шина
CAN
_________________ main[-1u]={1};
|
Пон Юли 17, 2017 10:45 pm |
|
|
Pif
Ранг: Форумен бог
Регистриран на: Чет Сеп 26, 2013 1:24 pm Мнения: 1103
|
Re: Дайте съвет за вътрешна шина
ДМХ е 250 килобита/секунда. 8 са ти 4 мегабита. Ако са ти на 1 платка можеш да ползваш паралелна шина. Ако са на различни не те бърка да го направиш на СПИ или произволен сериен интерфейс. По мой спомен този процесор има 6 кома. Остават ти още 2 канала които можеш да изкараш от 2-ри процесор който си вързал по паралелна шина или СПИ. То тук въпроса е как ще влизат данните в тоя 407 за да ги изкара към ДМХовете.
|
Вто Юли 18, 2017 7:44 am |
|
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 5:52 pm Мнения: 10370 Местоположение: Добрич
|
Re: Дайте съвет за вътрешна шина
какво ще рече "вътрешна", на същата платка?
|
Вто Юли 18, 2017 8:30 am |
|
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 11:02 am Мнения: 8898 Местоположение: Разград
|
Re: Дайте съвет за вътрешна шина
DMX не те задължава да пращаш целия пакет от 512 устройства. Обаче няма как да стане да го ползваш като стандарт и през един уарт да командваш всичките едновременно 8 х 512 канала, освен ако не ползваш някакъв демултиплексор за да разклониш единия уарт, който както вече споменаха, по дефиниця е 250kbs. Има такива контролери - ArtNet to DMX. Гледам има и с по 24 вселени. Обаче какъв ти е смисъла да командваш няколко онборд 18-ки в различни вселени, като чисто конструктивно едва ли от всяка 18-ка ще можеш да извадиш повече от 64 pwm канала на 100-тина херца и то с шифт регистри. В една друга тема бях писал че съм го пробвал това нещо и стигам до около 110-120 херца максимум на 64 канал и 18-ка на 64 MHz. И това са 8 бр 74HC595 (евентуално) на платка. Ако сложиш 8 пик-а стават 64 - не че е непостижимо ама ще е доста интересна платка с 64 SR + другата карантия. А 64 х 8 = 512 - това си се събира в една вселена.
|
Вто Юли 18, 2017 4:40 pm |
|
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 7:57 pm Мнения: 600 Местоположение: Белград
|
Re: Дайте съвет за вътрешна шина
Друга платка, друго устройство. Променяща конфигурация - платките имат и други функции, но те не са важни. Искам да разширя броя на управляваните устройства. Т.е. 512 не стигат. Не е задължително да имам 18-ки. Може и друг контролер. Т.е търся комуникация, много по-бърза от 250 bps, за да успея да предам всички вселени. Вече се замислям за Ethernet, ама много ще си усложня задачата...
|
Вто Юли 18, 2017 8:43 pm |
|
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 7:57 pm Мнения: 600 Местоположение: Белград
|
Re: Дайте съвет за вътрешна шина
Да. Точно това е основното - бърза комуникация, която успява да подаде данните към всички устройства. SPI ми харесва като идея. Само видях някакви големи скорости за UART на този контролер, но не съм стигнал до проучване.
|
Вто Юли 18, 2017 8:49 pm |
|
|
Pif
Ранг: Форумен бог
Регистриран на: Чет Сеп 26, 2013 1:24 pm Мнения: 1103
|
Re: Дайте съвет за вътрешна шина
Ако ще изкарваш данните в други устройства ти трябва нещо дурако и шумоустойчиво. Няма да стане толкоз просто колкото ти се иска. Физическия слой ще трябва да е по-сложен. Моя въпрос беше от къде 407-ицата ще вземе толкова информация за да я предаде на периферните. Самата 407-ца не е толкоз бърза, че да измисли толкоз много неща които да ги прати. Вариянти 1001 за решение на задачата. Трябва да се дефинира задачата точно за да се изпълни правилно.
|
Вто Юли 18, 2017 9:58 pm |
|
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 5:52 pm Мнения: 10370 Местоположение: Добрич
|
Re: Дайте съвет за вътрешна шина
От една страна се усложнява, от друга упростява. Няма пълно щастие! Не съм в час с тоя DMX, но ти си знаеш тия устройства как ще се захранват, демек ще трябва ли да развързваш маси. Колко дълъг ще е канапът между устройствата. Как ще се защитаваш от смущения по жицата и т.н. При eternet получаваш скорост, получаваш метраж колкото искаш (в най-лошия случай да слагаш по едно рутерче на всеки 100м), получаваш шумоутойчиво кодиране, получаваш галванична изолация. А.. да получаваш и мрежа, демек все тая дали универсумите са 8 или 80. Въпросът е наистина ли трябват тези нещо, щото ако ти трябват и тръгнеш да си ги правиш сам не знам колко "усложнения" ще си спестиш. Значи ако ще слагаш някакви драйвери (can, rs485 и т.н.) e същото като ethernet phy. Верно при етернета имаш и трафчета но има доста фи-та дето се подкарват и само с разделителни кондензатори. При всички случай разликата не е голяма. Ако нямаш проблем с масите и дължите, т.е. нямаш нужда от допълнителни чепове става и USB че са само по две жици, пък и захранването може да ползваш. И последния вариант е сериен. Сега за тия скорости добре да е синхронен, което значи да предаваш и клок. Принципно няма значение дали ползваш SPI или UART в синхронен режим, но специално при STM32 сякаш UART-а е за предпочитане щото има повече екстри. Това ако го пуснеш на неголямо разстояние и читав кабел спокойно ще изкараш 10-20Mbit. Има и още един вариант може би, но трябва да се огледат тия новите STM-чета дето могат да си синхронзират клока по външен сигнал. Идеята да си спестиш предаването на клока и да минеш на асинхронна комуникация. Но пак като при USB ще трябва да имаш някакви бъс цикли с точно оределен период, за да може да се възстанови клока при приемащите страни. При тоя вариант мисля че може да стигнеш тавана на UART и да спестиш и от кварцовете при приемниците, но пак си ограничен до 6-8Мbit.
|
Вто Юли 18, 2017 10:41 pm |
|
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 3:11 pm Мнения: 3742 Местоположение: София
|
Re: Дайте съвет за вътрешна шина
Ако го пусне по SPI и ползва драйвери за RS422/RS423, спокойно ще вдигне 20 Mbps, ама само ако данните хвърчат от мастъра към слейва. Иначе закъснението на сигнала по кабела започва да влияе МНОГО. Иначе става по UART с драйвери за RS485/RS423/RS422. Ethernet при всички случаи е по-стабилен вариант.
|
Вто Юли 18, 2017 11:15 pm |
|
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 7:57 pm Мнения: 600 Местоположение: Белград
|
Re: Дайте съвет за вътрешна шина
Самите драйвери са на практика до мастъра. Няма кабели между тях - имат рейки, с които се свързват. От драйверите към устройствата се развързват масите. 407-цата чете от SD карта анимацията. Тук имам един въпрос: ADUM 1200 може ли да се използва в случай, че Vcc1 и Vcc2 са от един източник? Т.е. само за развързване на линиите за комуникация?
|
Сря Юли 19, 2017 1:59 am |
|
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 5:52 pm Мнения: 10370 Местоположение: Добрич
|
Re: Дайте съвет за вътрешна шина
ми аз затова първо попитах какво ще рече "вътрешна"... След като си на рейски с общо захранване какво развързване, кви 5 лева? Слагай си един синхронен интерфейс на 10-20Mbit и си свиркай. Само с опроводяването и терминациите малко внимавай, че STM-те се славят с яки драйвери (подкарвал съм ги на 200MHz) тъй че внимавай с бръмченето и звъненето, друго няма.
|
Сря Юли 19, 2017 8:33 am |
|
|
sparkybg
Ранг: Форумен бог
Регистриран на: Вто Авг 23, 2005 11:02 am Мнения: 3070 Местоположение: София
|
Re: Дайте съвет за вътрешна шина
То за можене - може. И на TI има доста изолатори (ползвам преидмно техни). Ама за какво ти е да ползваш изолатор като нищо не изолираш?
|
Сря Юли 19, 2017 10:05 am |
|
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 7:57 pm Мнения: 600 Местоположение: Белград
|
Re: Дайте съвет за вътрешна шина
Моя грешка. Сетих се за един случай преди време, когато имах проблем с UART между два контролера - ако се включеше първо главният, другият получаваше някакво захранване през UART-a и не искаше да тръгне. Но се сетих, че там имах обща маса, но две отделни захранвания - през USB на два отделни компютъра. Отпада развързването между контролерите.
|
Сря Юли 19, 2017 6:13 pm |
|
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 7:57 pm Мнения: 600 Местоположение: Белград
|
Re: Дайте съвет за вътрешна шина
Понеже не е известен крайният брой подчинени устройства, а реших да ползвам SPI, по какъв начин мога да задавам CS, а да не се налага да ползвам 20 CS линии? Идва ми на ум да сложа на всяка драйверна платка по един демултиплексор и с джъмпери да избирам канала. Но вероятно има по-елегантен начин.
|
Сря Юли 19, 2017 10:46 pm |
|
|