Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

jokeR
Вчора 14:55:53

Ви ж, сподіваюсь, платформу та фреймворк lgt8fx використовуєте для LGT8F, а не atmelavr та arduino-avr?

Обіжаєте wink

[env:LGT8F328P]
platform = lgt8f
board = LGT8F328P
framework = arduino

Можете зарепортити issue у FastLED.

Ну, так.
Походу, для LED стрічок це не найкращий контроллер wink

dimich
Вчора 14:36:15
jokeR пише:

У китайців 3-й байт передається трохи інакше - довжина імпульсу не 1 мкс, а 0.75.

LGT8F сумісна з AVR на рівні кодів інструкцій, але несумісна на рівні таймінгів. І FastLED наче б то це враховує, використовуючи подвійний nop замість rjmp.
Ви ж, сподіваюсь, платформу та фреймворк lgt8fx використовуєте для LGT8F, а не atmelavr та arduino-avr?
Можете зарепортити issue у FastLED.

jokeR пише:

Як вони цього добились (і навіщо) - незрозуміло.

Навіщо - для підвищення швидкодії, для чого ж іще.

Як уже згадував вище, в одному з перекладів даташита присутні дивні значення таймінгів "1/2" для інструкцій, що не виконують умовних переходів. Це мало би означати, що в деяких випадках інструкція виконується за 1 такт, а в деяких за 2. Для інструкцій умовного виконання це зрозуміло, а от що це значить для безумовних LD? Ніякого толкового опису поки що не зустрічав.

Нажаль, не маю під рукою LGT8F, щоб поекспериментувати. Як буду колись щось купляти потрібне, то, мабуть, замовлю в довісок і такого звіра.

jokeR
Вчора 12:52:56

А тепер слайди wink
Так виглядає білий колір на atmega328
atmega328
А так - на lgt8f328
2025-07-14_12-44-lgt8f328.png

У китайців 3-й байт передається трохи інакше - довжина імпульсу не 1 мкс, а 0.75.  Як вони цього добились (і навіщо) - незрозуміло.

dimich
2025-07-12 23:23:25
jokeR пише:

У вас немає імпульсів ні 0.75 мкс, ні 1 мкс. А у мене є. У мене FastLED@^3.10.1. А у вас?

Я брав останню версію з master гілки. В директорії lib/ проекта platformio:

git clone https://github.com/FastLED/FastLED

На той момент вона була на цьому місці. Тобто 3.10.1 + десь 1000 комітів зверху smile

Але ж я запускаю на atmega328p, з platform=atmelavr і board=pro16MHzatmega328.
Прошивку з platform=lgt8f у мене нема на чому запустити.

jokeR
2025-07-12 22:57:18

У мене "Addressable LEDs (Async)":

Моі глаза.. sad Я шукав 2812 і не знайшов.. Ну хоч одна загадка розгадана. Навіть дві. У вас немає імпульсів ні 0.75 мкс, ні 1 мкс. А у мене є. У мене FastLED@^3.10.1. А у вас?

dimich
2025-07-12 20:00:38
jokeR пише:

Просто у вас кольори розшифровуються а в мене ні.

А "0: r=ff g=ff b=ff" - хіба не декодування кольорів? Чи воно завжди "ff" пише?

dimich
2025-07-12 19:58:24
jokeR пише:

Хм, те ж. Але не знайшов як ним читати цей протокол і встановив плугін https://github.com/dustin/logic-ws2812
Просто у вас кольори розшифровуються а в мене ні.

У мене "Addressable LEDs (Async)":
2025-07-12-195231_313x612_scrot.png
Він в самому пакунку йде, /opt/saleae-logic2/resources/linux-x64/Analyzers/libasync_rgb_led_analyzer.so.

jokeR
2025-07-12 19:38:52

Хм, те ж. Але не знайшов як ним читати цей протокол і встановив плугін https://github.com/dustin/logic-ws2812
Просто у вас кольори розшифровуються а в мене ні.

dimich
2025-07-12 18:06:43
jokeer пише:

А ваш аналізатор протоколу rgb трохи інакше виглядає. Що за програма? wink

Saleae Logic 2 v2.4.29

jokeer
2025-07-12 17:43:30

А ваш аналізатор протоколу rgb трохи інакше виглядає. Що за програма? wink

dimich
2025-07-12 17:23:36
jokeR пише:

Частота виборок в пробнику наче 24 мгц, повинно вистачити. https://arduino.ua/prod651-logicheskii-analizator-saleae-8-kanalov

Так, цілком. Такий аналізатор теж 875 нс показує як 875 нс:
250712_salae-logic2.png

jokeR пише:

хіба що дійсно чудеса китайського контроллера.

Або така особливість реалізації в FastLED. Хто зна, на стрічках з якими чіпами її тестували. Може на одних варіантах чіпів воно і так працює, а на інших уже ні.

Цікаво, що в цьому описі LGT8F88P/LGT8F168P/LGT8F328P значить "Cycle: 1/2" для сімейства інструкцій LD, які без розгалуження?
А ще ж є LGT8F328 з індексом P, а є з індексом D. Може у них і таймінги інструкцій теж різні.

jokeR
2025-07-12 16:02:55

Не вловив причини для сарказму.

Осцилограф просто красивий wink
Частота виборок в пробнику наче 24 мгц, повинно вистачити. https://arduino.ua/prod651-logicheskii-analizator-saleae-8-kanalov

2025-07-12_15-50.png

2025-07-12_15-51.png

Різні байти (B і R) передаються з різними таймінгами - в мене немає пояснень цьому, хіба що дійсно чудеса китайського контроллера.

Згоден, без експеримента з оригінальною ардуїною нічого не скажеш.

dimich
2025-07-12 14:36:37
jokeR пише:

О, ви не з такої сім"ї як всі wink З багатої wink) І така само нога але не болить wink

Не вловив причини для сарказму. Ви ж наче хотіли розібратись, в чому причина глюків. Ну, якщо просто пожалітись, то нема питань smile

jokeR пише:

Є підозра на fastled+lgt8f328

Щоб зняти підозру, є сенс скомпілювати і перевірити на оригінальній AVR. Ви ж тільки в 4-му повідомленні згадали, що у вас МК несумісний з AVR по таймінгам інструкцій.

В FastLED є якась поправка для LGT8F. А макрос __LGT8F__ визначається в pins_arduino.h фреймворка. Ви ж цей фреймворк використовуєте? Хоча скомпільований для AVR і запущений на LGT8F код мав би давати навпаки, коротші таймінги, а не довші.

В microLED взагалі LGT8F визначається по F_CPU == 32000000UL.

jokeR пише:

У нас логічний пробник за 5 баксів.

Ну, частота виборки у нього більша за 8 МГц? Інакше сенсу в таких вимірах ніякого.

jokeR пише:

Бо якщо не намагатись використовувати всі кольори одночасно - працює як очікувано.

Я так і не зрозумів, "всі кольори одночасно" - це на одному чіпі чи на всіх у стрічці? Може дійсно, просто струму живлення не вистачає.
Я би в першу чергу спробував різні варіанти: увімкнути тільки один, перший, в комбінаціях RG, RB, GB, RGB. Потім те ж саме, тільки з другим по порядку. Потім уже з усіма на стрічці. З того, чи відрізняються результати при цих варіантах, можна робити якісь висновки.

Також, у вищезгаданій статті:

UPDATE 11/2/2020: There are some new WS2812B and WS2813 chips that require a minimum 250,000ns latch time. If you are seeing lots of flashing, you might have some of these new chips so try increasing the latch low time. More info here.

Може якраз ваш випадок.

jokeR
2025-07-11 23:42:18

О, ви не з такої сім"ї як всі wink З багатої wink) І така само нога але не болить wink
У нас логічний пробник за 5 баксів. І lgt8f238, начебто покращена копія atmega, але це не точно wink І індикатор куплений по скаженій знижці wink)
Можливо індикатор трохи підгулявший. Бо якщо не намагатись використовувати всі кольори одночасно - працює як очікувано. В принципі, для індикатора рівня цього досить.

dimich
2025-07-11 18:46:13

Не знаю, що ви там компілюєте, на чому запускаєте і чим міряєте.

Ось ця програма:

#include <FastLED.h>

CRGB leds[8] = { 0 };

void setup()
{
    FastLED.addLeds<WS2812, A3, GRB>(leds, sizeof(leds)/sizeof(*leds));
    leds[0] = CRGB::White;
    FastLED.show();
}

void loop() {}

з FastLED у поточному стані гілки master на Pro Mini 16 МГц видає чесні 875 нс для TH:

SDS00001.png

Те ж саме з WS2812B, що не дивно, бо для FastLED це один і той же контролер.

Ось така смужка світиться нормально, без всяких артефактів.

Підвал форуму