| Автор |
Съобщение |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30684 Местоположение: София
|
 Re: Дайте съвет за вътрешна шина
Хмм ами spi в този случай малко неппдходящо, какво ще кажеш за адреси, това ако са микроконтрилери де. Това съчетанонс един сигнал който да е строб на адреса става с минимум жици, и малък овърхедад. Е ако предаваш по байт два обърхеда идва 100% но за по големи е само байт.
|
| Чет Юли 20, 2017 12:01 am |
|
 |
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 8:57 pm Мнения: 607 Местоположение: Белград
|
 Re: Дайте съвет за вътрешна шина
Микроконреолери са. Мислих за адрес, подаван по UART, ама нещо не ми се видя издържано. Как предлагаш да подавам адреса? Всички "слушат", а се обажда само този, за когото се отнася? Т.е. да върви по SPI?
|
| Чет Юли 20, 2017 10:27 am |
|
 |
|
sparkybg
Ранг: Форумен бог
Регистриран на: Вто Авг 23, 2005 12:02 pm Мнения: 3070 Местоположение: София
|
 Re: Дайте съвет за вътрешна шина
Това CAN-а си го има вградено. И прекарваш всичко на всичко 2 жици, а може да минеш и с една евентуално. Минуса е само че всеки нод трябва да е микроконтролер с CAN, тоест някое и друго левче нагоре в цената. Поне на мен CAN-а ми е МНОГО блага работа. Другото е I2C - пак 2 жици, всеки нод си има адрес и се обажда само той като го викнеш. Стига да те устройва скоростта, стандартно 400Khz ако помня добре. Версия 2 я има и до над 3Mhz, ама лично не съм ползвал нищо на над 400Khz, та не мога да давам подробности. SPI-то категорично не е за това, което искаш да правиш. ИМХО. I2C, CAN, RS485 са ти опциите.
|
| Чет Юли 20, 2017 11:17 am |
|
 |
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 8:57 pm Мнения: 607 Местоположение: Белград
|
 Re: Дайте съвет за вътрешна шина
i2c не решава проблема - имам 250000 bps за универсум като изискване. 485... на колко да вдигна скоростта на UART-a, за да стане? И тук нещо не е издържано. CAN мога да пусна и с конвертор през SPI. Ама дали си заслужава... CAN е възможна опция. Засега, обаче, SPI ми се струва най-добър вариант, ако реша проблема с адресирането.
|
| Чет Юли 20, 2017 1:34 pm |
|
 |
|
Pif
Ранг: Форумен бог
Регистриран на: Чет Сеп 26, 2013 2:24 pm Мнения: 1765
|
 Re: Дайте съвет за вътрешна шина
ДМХ е еднопосочен. Няма никаква причина да има обратна връзка от слевй процесорите към стм-а. 2 мегабита са данните които СТМ-а стриймва. Всеки от пиковете хваща въпросните данни които са си за него и ги праща по друг интерфейс с друга скорост. На практика това е фифо което го пълниш с високата скорост и го празниш с ниската. Не пречи СПАй-я да праща все по-малко и по-малко байтове на горните платки и да са с общ чип селект. И2Ц е бавна, КАН-а има голям оувърхед който не трябав. Тука си трябва синхронна шина и най-близкото е СПИ или УСАРТ като СТМ-а клати отделни чип селекти за да не се налага много мозък в програмата на пика. И за по-лесна синхронизация.
|
| Чет Юли 20, 2017 1:44 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30684 Местоположение: София
|
 Re: Дайте съвет за вътрешна шина
адрес по SPI как ти звучи ?
|
| Чет Юли 20, 2017 1:55 pm |
|
 |
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 8:57 pm Мнения: 607 Местоположение: Белград
|
 Re: Дайте съвет за вътрешна шина
Като най-логично в случая. Май натам вървим.
|
| Чет Юли 20, 2017 2:31 pm |
|
 |
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 8:57 pm Мнения: 607 Местоположение: Белград
|
 Re: Дайте съвет за вътрешна шина
DMX е между слейвовете и управляваните устройства. Между мастъра и слейвовете предпочотам да имам поне една чексума назад, за да съм сигурен, че правилно са приели данните.
|
| Чет Юли 20, 2017 2:35 pm |
|
 |
|
Pif
Ранг: Форумен бог
Регистриран на: Чет Сеп 26, 2013 2:24 pm Мнения: 1765
|
 Re: Дайте съвет за вътрешна шина
А каква очакваш да е причината да не са правилно предадени данните? Ти нямаш нищо динамично и нищо променящо се. Всяко усложняване ти намаля надеждноста. Какво ще стане ако не са правилно предадени данните? Ще трябва да ги предадеш пак? А това колко време ще отнеме? Ти колко буфер ще имаш в пика и колко в СТМ-а? Тоя СТМ няма безкрайно много рам. Няколко десетки кБ (или стотин) Имай в предвид, че и фат-а ще ти глътне доста. А и картата не-винаги реагира както ти се иска на теб. Там ще трябва да си оставиш доста буфер.
|
| Чет Юли 20, 2017 3:29 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30684 Местоположение: София
|
 Re: Дайте съвет за вътрешна шина
Е то много зависи и от какво и как управляват тия слейвове.
|
| Чет Юли 20, 2017 10:33 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
 Re: Дайте съвет за вътрешна шина
В идеални условия няма смущения, ама в реални е друга бира  По темата вече казах, ама пак ще повторя че за тия скорости трябва синхронна комуникация. И пак да кажа, че SPI периферията е по-ограниченичка от USART-те при STM32. Дори за чист SPI интерфейс USART-a поддържа 9-битов режим, докато SPI-a не. Това е само пример, не казвам че трябва да се ползва SPI, има доста други режими, включително за мултипроцесорна комуникация. Трябва да се разгледат режимите и да се избере някакъв дето и другите устройства могат да поддържат.
|
| Пет Юли 21, 2017 10:09 am |
|
 |
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 8:57 pm Мнения: 607 Местоположение: Белград
|
 Re: Дайте съвет за вътрешна шина
USART или SPI. Това е общото поддържано от всички процесори, които бих ползвал. Но USART на практика няма как да ползвам(освен софтуерен), защото единият използвам за FTDI, а останалите са в порт, който се използва за TFT дисплей. SPI остава.
|
| Пет Юли 21, 2017 10:23 am |
|
 |
|
Pif
Ранг: Форумен бог
Регистриран на: Чет Сеп 26, 2013 2:24 pm Мнения: 1765
|
 Re: Дайте съвет за вътрешна шина
Абе подозирах, че не казваш всичко. Сега ще изскочат още подводни камъни. Процесора не е безкрайно бърз за да правиш 1000 неща едновременно. В такъв случай щом не можеш да гарантираш 2 мегабита непрекъснат стрийм ще се наложи да вдигнеш доста скороста. Паралелна шина която е много по-бърза от тези необходими 2 мегабита и максимално буфериране в пиковете. Иначе ще има да се чудиш защо ти накъсва. ФИФО-то на СПИя е 128 бита. 4 думи но май можеш да го ползваш само половината. Можеш да го пуснеш и на 25 мегахерца и пиковете ще поемат тези 25 мегахерца но ще ти трябват няколко слейв селекта. Софтуерното адресиране ще ти губи 1 байт на всеки пакет което е безмислено. Голям оувърхед за сравнително малкия пакет. Ако клатиш СПИя софтуерно - ще губиш време което ти трябва за другите задачи. Разпиши си максимумите като скорости, подчинени контролери, ДМХ-и и тогава го мисли кое може и кое не може. Щом си в една кутия не ти трябват корекция на грешки и сложни протоколи. Щом си на рейка - можеш да си позволиш повече жици. За смущения ще се притесняваш ако имаш дълги жици и неясни конектори. За малки разстояния трябва атомна бомба да гръмне за да вкараш смущение.
|
| Пет Юли 21, 2017 10:53 am |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
 Re: Дайте съвет за вътрешна шина
От към хардуер няма грижи, вътре са няколко AHB-та, DMA-та и достатъчно лейъри така че се търкалят спокойно гигабайти. А и процът принципно е достатъчно бърз, за да обслужва всичките си налични периферии, въпросът е софтуерът да не се омазва или да има супер яки обработки.
|
| Пет Юли 21, 2017 11:13 am |
|
|