Ви не увійшли.
Ви ж, сподіваюсь, платформу та фреймворк lgt8fx використовуєте для LGT8F, а не atmelavr та arduino-avr?
Обіжаєте
[env:LGT8F328P]
platform = lgt8f
board = LGT8F328P
framework = arduino
Можете зарепортити issue у FastLED.
Ну, так.
Походу, для LED стрічок це не найкращий контроллер
У китайців 3-й байт передається трохи інакше - довжина імпульсу не 1 мкс, а 0.75.
LGT8F сумісна з AVR на рівні кодів інструкцій, але несумісна на рівні таймінгів. І FastLED наче б то це враховує, використовуючи подвійний nop замість rjmp.
Ви ж, сподіваюсь, платформу та фреймворк lgt8fx використовуєте для LGT8F, а не atmelavr та arduino-avr?
Можете зарепортити issue у FastLED.
Як вони цього добились (і навіщо) - незрозуміло.
Навіщо - для підвищення швидкодії, для чого ж іще.
Як уже згадував вище, в одному з перекладів даташита присутні дивні значення таймінгів "1/2" для інструкцій, що не виконують умовних переходів. Це мало би означати, що в деяких випадках інструкція виконується за 1 такт, а в деяких за 2. Для інструкцій умовного виконання це зрозуміло, а от що це значить для безумовних LD? Ніякого толкового опису поки що не зустрічав.
Нажаль, не маю під рукою LGT8F, щоб поекспериментувати. Як буду колись щось купляти потрібне, то, мабуть, замовлю в довісок і такого звіра.
А тепер слайди
Так виглядає білий колір на atmega328
А так - на lgt8f328
У китайців 3-й байт передається трохи інакше - довжина імпульсу не 1 мкс, а 0.75. Як вони цього добились (і навіщо) - незрозуміло.
У вас немає імпульсів ні 0.75 мкс, ні 1 мкс. А у мене є. У мене FastLED@^3.10.1. А у вас?
Я брав останню версію з master гілки. В директорії lib/ проекта platformio:
git clone https://github.com/FastLED/FastLED
На той момент вона була на цьому місці. Тобто 3.10.1 + десь 1000 комітів зверху
Але ж я запускаю на atmega328p, з platform=atmelavr і board=pro16MHzatmega328.
Прошивку з platform=lgt8f у мене нема на чому запустити.
У мене "Addressable LEDs (Async)":
Моі глаза.. Я шукав 2812 і не знайшов.. Ну хоч одна загадка розгадана. Навіть дві. У вас немає імпульсів ні 0.75 мкс, ні 1 мкс. А у мене є. У мене FastLED@^3.10.1. А у вас?
Просто у вас кольори розшифровуються а в мене ні.
А "0: r=ff g=ff b=ff" - хіба не декодування кольорів? Чи воно завжди "ff" пише?
Хм, те ж. Але не знайшов як ним читати цей протокол і встановив плугін https://github.com/dustin/logic-ws2812
Просто у вас кольори розшифровуються а в мене ні.
У мене "Addressable LEDs (Async)":
Він в самому пакунку йде, /opt/saleae-logic2/resources/linux-x64/Analyzers/libasync_rgb_led_analyzer.so.
Хм, те ж. Але не знайшов як ним читати цей протокол і встановив плугін https://github.com/dustin/logic-ws2812
Просто у вас кольори розшифровуються а в мене ні.
А ваш аналізатор протоколу rgb трохи інакше виглядає. Що за програма?
Saleae Logic 2 v2.4.29
А ваш аналізатор протоколу rgb трохи інакше виглядає. Що за програма?
Частота виборок в пробнику наче 24 мгц, повинно вистачити. https://arduino.ua/prod651-logicheskii-analizator-saleae-8-kanalov
Так, цілком. Такий аналізатор теж 875 нс показує як 875 нс:
хіба що дійсно чудеса китайського контроллера.
Або така особливість реалізації в FastLED. Хто зна, на стрічках з якими чіпами її тестували. Може на одних варіантах чіпів воно і так працює, а на інших уже ні.
Цікаво, що в цьому описі LGT8F88P/LGT8F168P/LGT8F328P значить "Cycle: 1/2" для сімейства інструкцій LD, які без розгалуження?
А ще ж є LGT8F328 з індексом P, а є з індексом D. Може у них і таймінги інструкцій теж різні.
Не вловив причини для сарказму.
Осцилограф просто красивий
Частота виборок в пробнику наче 24 мгц, повинно вистачити. https://arduino.ua/prod651-logicheskii-analizator-saleae-8-kanalov
Різні байти (B і R) передаються з різними таймінгами - в мене немає пояснень цьому, хіба що дійсно чудеса китайського контроллера.
Згоден, без експеримента з оригінальною ардуїною нічого не скажеш.
О, ви не з такої сім"ї як всі
З багатої
) І така само нога але не болить
Не вловив причини для сарказму. Ви ж наче хотіли розібратись, в чому причина глюків. Ну, якщо просто пожалітись, то нема питань
Є підозра на fastled+lgt8f328
Щоб зняти підозру, є сенс скомпілювати і перевірити на оригінальній AVR. Ви ж тільки в 4-му повідомленні згадали, що у вас МК несумісний з AVR по таймінгам інструкцій.
В FastLED є якась поправка для LGT8F. А макрос __LGT8F__ визначається в pins_arduino.h фреймворка. Ви ж цей фреймворк використовуєте? Хоча скомпільований для AVR і запущений на LGT8F код мав би давати навпаки, коротші таймінги, а не довші.
В microLED взагалі LGT8F визначається по F_CPU == 32000000UL.
У нас логічний пробник за 5 баксів.
Ну, частота виборки у нього більша за 8 МГц? Інакше сенсу в таких вимірах ніякого.
Бо якщо не намагатись використовувати всі кольори одночасно - працює як очікувано.
Я так і не зрозумів, "всі кольори одночасно" - це на одному чіпі чи на всіх у стрічці? Може дійсно, просто струму живлення не вистачає.
Я би в першу чергу спробував різні варіанти: увімкнути тільки один, перший, в комбінаціях 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.
Може якраз ваш випадок.
О, ви не з такої сім"ї як всі З багатої
) І така само нога але не болить
У нас логічний пробник за 5 баксів. І lgt8f238, начебто покращена копія atmega, але це не точно І індикатор куплений по скаженій знижці
)
Можливо індикатор трохи підгулявший. Бо якщо не намагатись використовувати всі кольори одночасно - працює як очікувано. В принципі, для індикатора рівня цього досить.
Не знаю, що ви там компілюєте, на чому запускаєте і чим міряєте.
Ось ця програма:
#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:
Те ж саме з WS2812B, що не дивно, бо для FastLED це один і той же контролер.
Ось така смужка світиться нормально, без всяких артефактів.