Co w ogóle masz na myśli wspominając mirror - daj jakiś konkret z dokumentacji albo skrinszota.
Chyba nie rozumiem pytania - na 3. rysunku są 2 paski “na bezczelnego” podpięte w to samo GPIO, więc to nie są żadne segmenty, ani programowy mirror.
Generalnie zależy co zamierzasz uzyskać, bo jak wiadomo wszystko ma swoje wady i zalety, a chyba nie rozumiesz w jaki sposób są sterowane układy adresowane.
Zacytuję sam siebie
Może troszkę przybliżę o co chodzi, nie wiem na ile mi się to uda, najlepiej by było gdybyś przeczytał dokumentację techniczną jakiegoś układu adresowanego w rodzaju WS2812 i przeczytał coś o budowie protokołu sterującego.
Dla wygody każdy adresowany układ zawierający 3 diody: R, G i B zintegrowane we wspólnej obudowie z układem sterującym (takim prostym MCU) mającym 3 regulatory PWM po 1 dla każdej z 3 diod LED oraz realizujący transmisję i obróbkę danych nazwijmy dla uproszczenia życia pikselem.
Aby to było zgodne z rysunkami z 1. posta umówmy się, że każdy piksel w każdym pasku ma wejście danych po lewej, a wyjście danych po prawej.
I teraz do sedna.
Informacja płynie od lewej do prawej - MCU generuje taki strumień danych nazwijmy obrazowo go pociągiem z wagonikami, każdy wagonik zawiera dane dla jednego piksela jak ma on świecić LEDami przez jakiś umowny okres czasu. A MCU będzie naszą stacją kolejową, gdzie na bocznicy składane są te pociągi z wagonów.
Słabe porównanie, ale nie wymyśliłem nic lepszego, po prostu sytuację, gdzie podpinasz 2 paski w jedno GPIO wyobrazimy sobie tak - na wyjeździe ze stacji jest dziwny rozjazd z 1 toru w 2 tory i ogromna magiczna piła, która rozcina wagony wzdłuż, dzięki czemu powstają 2 identyczne pociągi jadące w różne strony i każdy wjeżdża do swojego paska. Ta magiczna piła ma zerowy koszt dla stacji, bo jest napędzana z perpetum mobile.
Pociąg pierwszy nie wie nic o drugim, ani drugi o pierwszym, każdy sobie jedzie osobno, mimo, że mają taki sam układ wagonów i ich zawartość.
MCU wie ile zaplanowałeś sobie pikseli w pasku, więc wysyła w pociągu dokładnie tyle wagoników ile sobie zażyczyłeś definiując ilość pikseli w pasku.
Żaden piksel nie wie czy ma sąsiadów po lewej, ani po prawej, bo protokół jest jednokierunkowy.
Przyjeżdża do pierwszego pociąg od lewej strony, zadanie piksela jest takie - odczepić 1 wagon, informacje w nim zawarte wysłać do układów zapalających LEDy a resztę pociągu czyli wagony od 2. do ostatniego wysłać w prawo do następnego piksela.
Pociąg przyjeżdża do drugiego piksela, on nie wie czy pociąg przyjechał z jakiegoś piksela czy ze stacji początkowej i dla niego drugi wagon jest pierwszym.
Patrz wyżej - zadanie piksela jest takie - odczepić 1 wagon (który kiedyś był drugi), informacje w nim zawarte wysłać do układów zapalających LEDy, a resztę pociągu czyli wagony od 2. do ostatniego wysłać w prawo do następnego piksela.
itd. itd.
Pociąg przyjeżdża do przedostatniego piksela, on nie wie czy pociąg przyjechał z jakiegoś piksela czy ze stacji początkowej i dla niego przedostatni wagon jest pierwszym.
Patrz wyżej - zadanie piksela jest takie - odczepić 1 wagon (który kiedyś był przedostatni), informacje w nim zawarte wysłać do układów zapalających LEDy, a resztę pociągu, czyli ostatni wagon wysłać w prawo do następnego piksela.
Pociąg przyjeżdża do ostatniego piksela, on nie wie czy pociąg przyjechał z jakiegoś piksela czy ze stacji początkowej i dla niego ostatni wagon jest pierwszym.
Patrz wyżej - zadanie piksela jest takie - odczepić 1 wagon (który kiedyś był ostatni), informacje w nim zawarte wysłać do układów zapalających LEDy, a resztę pociągu… zaraz, zaraz jaka reszta, nic już nie zostało, więc nic nie wyjedzie w prawo.
Jeśli w pasku jest więcej pikseli niż jest wagonów w pociągu to one nie dostaną informacji (więc będzie tam ciemno, lub zostaną wyświetlone jakieś śmieci jeśli inicjalizacja przy włączaniu paska byłą nieudana).
Jeśli pociąg ma więcej wagonów niż długość paska to z ostatniego piksela nadmiarowe wagony pojadą w niebyt.
Teraz wprowadzamy segmenty. Tu wszystko dzieje się na stacji - każdy segment to oddzielny pociąg zestawiany na osobnej bocznicy, a gdy jest gotowy, to do pociągu jadącego do segmentu pikseli będącego bliżej stacji jest doczepiany na końcu ten drugi pociąg.
Gdy pikesele z pierwszego segmentu skonsumują wagony, które pierwotnie były w pierwszym pociągu, to do drugiego segmentu dojadą już tylko wagony, które pierwotnie były na drugiej bocznicy zestawione w drugi pociąg.
No a teraz używamy 2 GPIO - na jednej bocznicy jest składany pociąg, który wyjedzie pierwszym, GPIO, a na drugiej jest budowany pociąg który wyjeżdża z drugiego GPIO.
W szczególnym przypadku, gdy oba pociągi mają być zawsze identyczne, to można przepuścić jeden pociąg przez magiczną piłę - to zredukuje ilość roboty dla kolejarzy na stacji. Wtedy przez każde GPIO wyjadą jednakowe pociągi przy kosztach obsługi jak dla pojedynczego pociągu.
Czekałeś kiedyś na przejeździe kolejowym?
To na 100% wiesz jaka jest różnica między sytuacjami, gdy pociąg ma 10 wagonów i gdy pociąg ma 20 wagonów - istotnie różny jest czas przejazdu przy tej samej prędkości.
No niestety na tym etapie pisania odkryłem słabość tego porównania do odczepiania pierwszego wagonu w każdym pikselu, sytuacja byłaby bliższa realności gdyby chodziło o rozładowanie pierwszego wagonu zawierającego zawartość, więc nie tyle piksel nie wie, co po prostu ignoruje informację o pustych wagonach, ale one jednak jadą dalej, jednak za dużo napisałem, żeby to pisać od nowa.
A czemu o tym wspominam, bo dla długich pasków zaczyna być istotny czas przejazdu pociągu. Więc w pewnych sytuacjach lepiej wysłać 2 osobne stosunkowo krótkie pociągi osobnymi torami, niż jednym, torem taki mega-długi.
Można sobie też wyobrazić sytuację awarii - uszkodzenie połączenia między pikselami, załóżmy że to zawalony most i pociąg wpada do przepaści zamiast dojechać do kolejnego piksela.
Jeśli jadą 2 pociągi osobnymi drogami to tylko jeden wpadnie do przepaści gdzieś na trasie.