ArtNet для управления WS2812b

rkit
Offline
Зарегистрирован: 23.11.2016

b707 пишет:

rkit пишет:

Что не получилось на понт взять, когда разговариваешь не с чайником, вчера взявшимся за ардуино, а кем-то, кто обладает фактами?

Какими фактами? - минуту назад надерганными из гугла? :)

rkit, вам "шило в заднице не дает не ляпнуть бред какой-нибудь" типа того, что с 2812 нельзя работать через spi ?

Нет, не из гугла. Я действительно знаю отличия между 2801 и 2812. Я действительно пытался изучать orange pi для проекта, но быстро охренел и открестился. Пример нашел в гугле, да.

Типа в случае с stm32 на кварце 72 мГц и чипе 2812B - можно костылять на SPI. Какое это имеет отношение к orange pi - я не знаю. Никаких гарантий точности попадания частоты SPI там под тайминги 2812 я не вижу. Если они есть - жду просвещения.

sadman41
Offline
Зарегистрирован: 19.10.2016

http://www.orangepi-dmx.org/

Исходники открыты.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

rkit пишет:

Никаких гарантий точности попадания частоты SPI там под тайминги 2812 я не вижу. Если они есть - жду просвещения.

Если не заражен вирусом Архата, то прислушаешься.

1. С точки зрения программирования под Линукс никакой разницы нет. То что ты написал - просто набор слов.

Разница там только одна: есть внешний стробирующий сигнал или нету. Но эта разница не имеет смысла при программировании. Я именно так и поставил вопрос - какая разница при программировании?

2. Документированность. Ну ты сам признался в некомпетентности. Вообще-то это обычный АРМ. Совсем низкий уровень в режиме ядра тебе не нужен. Пользуйся интерфейсами. UART и SPI - вполне описаны.

3. Тайминги ws2812. 1.25us +/- 600ns. То есть от 650ns до 1850ns. Нет  там "никаких сотых долей мкс". На 4МГц SPI всё получается идеально. 5 бит - 1.25 мкс. Или на 2МГц 3 бита - 1.5 мкс.  Пояснять дальше?

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

rkit пишет:

Типа в случае с stm32 на кварце 72 мГц

Продолжаем ловить на глупости. Покажи кварц на 72МГц на плате с СТМ32. Например на BluePill.

кроме того мГц - это миллиГерцы ;))) Мега пишутся МГц.

--------------------------------------

ЗЫ: ничего личного, ты просто позволил себе наехать на старожил форума... причем вообще не имея репутации, знаний и опыта. Кушайте на здоровье! Всегда можно извиниться перед уважаемыми людьми.

sadman41
Offline
Зарегистрирован: 19.10.2016

Если я всё правильно понял, то базовая для нестробируемых светодиодов у автора https://github.com/vanvught/rpidmx512/blob/master/lib-ws28xx/src/ws28xx.cpp - 6.4МГц

if ((Type == WS2801) || (Type == APA102)){
		if (nClockSpeed == 0) {
			m_nClockSpeedHz = WS2801_SPI_SPEED_DEFAULT_HZ;
		} else if (nClockSpeed > WS2801_SPI_SPEED_MAX_HZ) {
			m_nClockSpeedHz = WS2801_SPI_SPEED_MAX_HZ;
		}
	} else {
		m_nClockSpeedHz = 6400000;
	}

	FUNC_PREFIX(spi_set_speed_hz(m_nClockSpeedHz));

 

rkit
Offline
Зарегистрирован: 23.11.2016

wdrakula пишет:

С точки зрения программирования под Линукс никакой разницы нет. То что ты написал - просто набор слов.

Нет, ты просто не осилил понять, и потому прифантазировал ОС, когда речь шла об аппаратной возможности.

 

wdrakula пишет:

Вообще-то это обычный АРМ. Совсем низкий уровень в режиме ядра тебе не нужен.

Вообще-то АРМ это стандарт вычислительного ядра, а периферию каждый производитель лепит как хочет. Не фантазируй.

 

wdrakula пишет:

 На 4МГц SPI всё получается идеально.

Ок, откуда взялась эта цифра в контексте orange pi? Тоже фантазия?

rkit
Offline
Зарегистрирован: 23.11.2016

Вот открыл документ по rapsberry pi, и частота 4 МГц не поддерживается.

https://www.raspberrypi.org/documentation/hardware/raspberrypi/spi/READM...

Но в orange pi — китайской хрени без документации — обязательно будет поддерживаться, ведь где-то прозвучал звон "ARM".

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Читай, пожалуйста, свои ссылки внимательнее. Себя же дураком выставляет. Может тебе нравится?

rkit
Offline
Зарегистрирован: 23.11.2016

Опять пытается меня на понт взять. Смешной.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Тогда укажи где заявлено, что частота 4 МГц не поддерживается. Вот по твоей ссылке. Намек: ты уточнения про делитель прочти.
-----------------
С сожалением констатирую, что ты всё-таки дурак, каким был и Архат. Нравится, когда моськой в лужу - да ради Б..га!

artems
Offline
Зарегистрирован: 10.01.2020

В общем, не видать мне контроллера самодельного? :D

rkit
Offline
Зарегистрирован: 23.11.2016

wdrakula пишет:
Тогда укажи где заявлено, что частота 4 МГц не поддерживается. Вот по твоей ссылке. Намек: ты уточнения про делитель прочти. ----------------- С сожалением констатирую, что ты всё-таки дурак, каким был и Архат. Нравится, когда моськой в лужу - да ради Б..га!

В списке поддерживаемых частот заявлено. Очень нравится, продолжай.

rkit
Offline
Зарегистрирован: 23.11.2016

artems пишет:

В общем, не видать мне контроллера самодельного? :D

Видать, если проделаешь работу. Никто за тебя ее делать не будет, сразу было сказано. Потому что работать сложно. Просто это когда прочитал два абзаца из десяти, увидел что-то отдаленно похожее на то, что хотел увидеть, и тут же счел себя победителем.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

rkit пишет:

wdrakula пишет:
Тогда укажи где заявлено, что частота 4 МГц не поддерживается. Вот по твоей ссылке. Намек: ты уточнения про делитель прочти. ----------------- С сожалением констатирую, что ты всё-таки дурак, каким был и Архат. Нравится, когда моськой в лужу - да ради Б..га!

В списке поддерживаемых частот заявлено. Очень нравится, продолжай.

слепой или по аглицки не разумеешь?

  cdiv    speed
     2    125.0 MHz
     4     62.5 MHz
     8     31.2 MHz
    16     15.6 MHz
    32      7.8 MHz
    64      3.9 MHz
   128     1953 kHz
   256      976 kHz
   512      488 kHz
  1024      244 kHz
  2048      122 kHz
  4096       61 kHz
  8192     30.5 kHz
 16384     15.2 kHz
 32768     7629 Hz

 

Forum post: SPI has more speeds

Дыг там под таблицей сцЫлочка... для тугих. Какой заба-авный!

 

rkit
Offline
Зарегистрирован: 23.11.2016

Цитата:

Removing this constraint in the driver

wdrakula пишет:

С точки зрения программирования под Линукс никакой разницы нет.

Совсем низкий уровень в режиме ядра тебе не нужен.

Чёт я запутался. На одном из форумов мне явно наврали.

rkit
Offline
Зарегистрирован: 23.11.2016

Цитата:

Removing this constraint in the driver

Теперь осталось повторить то же самое для китайского orange pi без документации.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

rkit пишет:

Цитата:

Removing this constraint in the driver

Теперь осталось повторить то же самое для китайского orange pi без документации.

1. я бы различал ситуацию "без документации" и "я не нашел документацию".

http://linux-sunxi.org это сайт с открытым кодом ядра и драйверов под AllWinner всех типов видов и мастей. Если там нет какой-то документации, это значит что из компании-производителя её еще не вытрясли ;)).

вот по SPI: http://linux-sunxi.org/SPIdev

2. В контексте задачи устраивает любая частота больше или равная 2МГц. Тогда и под "1" и под "0" строятся последовательности бит, укладываемые в весьма широкие тайминги ws2812.

artems
Offline
Зарегистрирован: 10.01.2020

В общем, получилось запуститься на orange pi zero. можно управлять лишь 680 пикселями (4 юниверса по 170 пикселей). Чтобы управлять большим количеством требуется дополнительную платку собирать (http://www.orangepi-dmx.org/orange-pi-dmx512-rdm/ws28xx-configuration/prototype-boards/multi/4-output), мне врдяд ли под силу)

Для решения своей задачи возьму 2-3 платки оранж и через ethernet hub подключу в одну сетку и мне достаточно)

Решение здесь http://www.raspberrypi-dmx.org/

Создателю либы задонатил)