rx3apf 0 9 декабря, 2020 Опубликовано 9 декабря, 2020 · Жалоба А, ну да, повторитель на pnp как раз правильно сдвинет, не сообразил. Наверное, это вообще будет наипростейшим вариантом. Резистора на 1K должно нормально хватить (подозреваю, что заваленные фронты на осциллограмме это все же подгадил пробник, оно, может быть, реально и с пять кило не так страшно было бы, как выглядит, но все равно - многовато). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
murmur 0 9 декабря, 2020 Опубликовано 9 декабря, 2020 · Жалоба 17 minutes ago, Plain said: Выход остался стандартным, резистор не виноват, но 5,1 кОм однозначно не годится, 1 кОм это предел, лучше 470 Ом. Это не будет работать, от шунтового стабилизатора ничего не отобрать, его паспортный резистор 2,7 кОм явно рассчитан впритык. И не работает..... Ни с OpenDrain ни с PushPull Взяла 5 вольт от программатора, прицепила резистор. Ножку вот так GPIO_InitStruct.Pin = LED_DATA_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); Получила осциллограмму Светодиода беспорядочно мерцают. Первая мысль - из за заваленных фронтов опять сбои чтения. Но..! Во первых, светодиод моргают одним и тем же цветом (то есть нет случайных ошибок чтения), во вторых цвет смещен. То есть, если писать 255,0,0 - горит не красный, а синий, если 0,0,255 - не синий, а зеленый. Может глянете код выше - там где то собака порылась? Вопрос - после того как записалось - линию в ноль на 50 мкс, а дальше - ее нужно в единицу? Когда гореть должно начать? После прошествия 50 мкс или после 50 мкс и перевода в единицу? Второй вопрос - уже по STM. Если бит установить в единицу, то транзистор открывается и притягивает линию к земле? Или закрывается и отпускает? Эх... похоже проблема нерешаема на OPENDRAIN Вот - все уже опробовано до нас http://we.easyelectronics.ru/STM32/gpio-vyhod-v-rezhime-opendrain.html Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 9 декабря, 2020 Опубликовано 9 декабря, 2020 · Жалоба 50 микросекунд - это неактивность (для активации загруженного состояния), 50 это минимум, можно держать сколько угодно долго. В единицу линия перейдет с началом передачи следующей посылки, как-то отдельно это делать не надо. Цвета могут быть и в самой гирлянде перепутаны, кстати. По полярности - не STMщик, но традиционно если пишем в выходную защелку - "0" соответствует низкому, "1" - высокому (или обрыву для OD). А вот если в регистры направления - это уже надо смотреть даташит (в STM8 так же, но с ними работал довольно давно, на память не скажу). На счет заваленных фронтов не бойтесь - на этой осциллограмме уже сносно. И, потом, пробник даже с 15 pF уже подвалит, если слабый выход, а у WS2811 гистрезис 350 mV. Уровни - Plain совершенно верно подсказал, эмиттерным повторителем на ширпотребном pnp. И уровни придут в норму, и дополнительно безопасность для контроллера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
murmur 0 9 декабря, 2020 Опубликовано 9 декабря, 2020 · Жалоба 4 minutes ago, rx3apf said: но традиционно если пишем в выходную защелку - "0" соответствует низкому, "1" - высокому (или обрыву для OD). То есть, приведено к интуитивно-логически понятному формату, единица - это закрытый транзистор? Эмиттерный повторитель... по количеству деталей проще одногейтовый согласователь))) А по поводу осциллограммы - у меня переменный резистор на 10 к. И такая осциллограмма появляется при очень узком диапазоне сопротивлений, так что даже руками трудно выставить.... может резистор гнилой.... Устала что-то.... к черту все до завтрашнего дня... 6 minutes ago, rx3apf said: 50 это минимум, можно держать сколько угодно долго. То есть, даем команду опустить на 100 мкс, и на 51 мкс диоды обновятся? Или зажгутся? Пока идет программирование, они выдают предыдущее состояние или гаснут? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 9 декабря, 2020 Опубликовано 9 декабря, 2020 · Жалоба 17 минут назад, murmur сказал: Вот - все уже опробовано до нас http://we.easyelectronics.ru/STM32/gpio-vyhod-v-rezhime-opendrain.html Там, похоже, запутались с 5V-толерантными линиями. Естественно, если тянуть трехвольтовый к пяти, то диод откроется. Но Vdd_FT не три вольта, так что проблемы быть не должно. 1 минуту назад, murmur сказал: То есть, приведено к интуитивно-логически понятному формату, единица - это закрытый транзистор? Да (если речь о нижнем плече). 1 минуту назад, murmur сказал: Эмиттерный повторитель... по количеству деталей проще одногейтовый согласователь))) Ну, если в заначке лежит - то конечно. Зато ног паять столько же в итоге ;) 1 минуту назад, murmur сказал: То есть, даем команду опустить на 100 мкс, и на 51 мкс диоды обновятся? Или зажгутся? Пока идет программирование, они выдают предыдущее состояние или гаснут? На 51-й микросекунде индикация обновится согласно информационной посылке. Пока идет посылка - индицируется прежнее состояние. Иначе это было бы очень неэстетично. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 206 9 декабря, 2020 Опубликовано 9 декабря, 2020 · Жалоба 44 минуты назад, murmur сказал: глянете код выше В теме ничего нет. Кроме того, я сторонник аппаратного преобразования SPI в протоколы WSxxx. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 9 декабря, 2020 Опубликовано 9 декабря, 2020 · Жалоба Может быть, имелся в виду код инициализации порта (кода программы я тоже не увидел) ? А так да, SPI хорошо подходит (я делал через SPI с парой внешних одновибраторов, на AVR). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
murmur 0 9 декабря, 2020 Опубликовано 9 декабря, 2020 (изменено) · Жалоба Гре...ные китайцы. По даташиту, если на SET единица, то это LowSpeed, если висит в воздухе - HighSpeed. Распознав висящий в воздухе пин и прочитав даташит, я решила, что это великая задумка - включить режим HighSpeed. Но все оказалось по китайски просто - видать поставили микросхемы из рисовой муки, не поддерживающие HighSpeed. А раз не поддерживающие, то и вывод SET можно оставить в воздухе. Это то меня и сбило с толку - я поставила половинные тайминги. Изменила тайминги на обычные, все заработало как часы. Вот только R,G и B у них действительно перепутаны. Что до пуллап-резистора - схема работает в широких его пределах, но красивая и идеологически правильная осциллограмма получается только при 300 ом. Изменено 9 декабря, 2020 пользователем murmur Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 206 9 декабря, 2020 Опубликовано 9 декабря, 2020 · Жалоба 47 минут назад, rx3apf сказал: парой внешних одновибраторов Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 9 декабря, 2020 Опубликовано 9 декабря, 2020 · Жалоба Проще, да. Но я хотел "честно". А корпус все равно один (хотя, конечно можно одногейтовую). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 206 9 декабря, 2020 Опубликовано 9 декабря, 2020 · Жалоба Имелось ввиду, в случае конкретно WS2811 можно вот так упростить, а для WS2812 без триггера не получится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 9 декабря, 2020 Опубликовано 9 декабря, 2020 (изменено) · Жалоба А вот тут я чего-то торможу - протокол-то одинаковый, ну времянки чуть различаются, это непринципиально (ну, если не рассматривать 400kHz вариант). Сперва я вообще хотел объединить SPI и таймер только логикой, но не справился с их взаимосинхронизацией. Наверное, можно и в моем случае (с запускаемым одновибратором) управлять длительностью по MOSI, но чего его, пассив, экономить, а корпус (74HC74) все равно есть... Изменено 9 декабря, 2020 пользователем rx3apf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 206 10 декабря, 2020 Опубликовано 10 декабря, 2020 · Жалоба 20 часов назад, rx3apf сказал: протокол-то одинаковый, ну времянки чуть различаются Сильно отличаются, схема посложнее одного элемента, но таки можно обойтись без триггера и одним корпусом: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 10 декабря, 2020 Опубликовано 10 декабря, 2020 (изменено) · Жалоба Ну, сложность фактически сопоставимая. И все равно один корпус, так что принципиальной разницы нет. Что до времянок - в 800-kHz режиме они (2811 и 2812) совместимы (по первому взгляду, 2811 в руках не держал), и имеют широкий допуск. Ведь достаточно, чтобы дискриминатор отличил "0" от "1" в первом элементе цепочки, а дальше они сами уже разберутся (в том и прелесть протокола). upd: а вот, кстати, и 2811 подержал в руках - как раз сегодня получил 50-диодную гирлянду, купленную чуть дешевле $7. С времянками под 2812 (400/800 ns) - прекрасно работает (а то попал бы на такое чудо, как у ТС - огорчительно было бы). Изменено 10 декабря, 2020 пользователем rx3apf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 206 10 декабря, 2020 Опубликовано 10 декабря, 2020 · Жалоба Это тоже просто честный вариант, к тому же, можно прямо на брюхе SOIC навесным монтажом спаять, а подковать без спецсредств 74LVC1G08 не каждый сможет, хотя на первый взгляд, 1,27 мм и 0,95 мм не сильно отличаются. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться