Współpracuję z dostawcą za granicą, aby zmienić istniejący produkt. Staramy się obniżyć koszty.
Obecnie produkt składa się z:
- 4 duże przyciski
- 4 dwucyfrowe 7-segmentowe diody LED. (pod każdym przyciskiem znajduje się podwójna cyfra)
- 1 wyświetlacz LCD (8 znaków ... każdy wyświetlacz składa się z siatki 3x8 punktów LCD)
- Mówca
- mikrokontroler
- Sterownik LCD
W ramach zmiany producent chce rozwiązać problem z bieżącym produktem. Wszystkie 4 dwucyfrowe diody LED mają zauważalne migotanie.
Sprzedawca podaje nam szacunek, który obejmuje użycie nowego mikrokontrolera, przeprojektowanie obwodu i ponowne wykonanie całego programu! (chcemy tylko zamienić pliki audio i naprawić migotanie ... Nie sądzę, że ogólna logika produktu musi się w ogóle zmienić)
Nie jestem pewien, jak dokładnie został zaprojektowany poprzedni obwód, ale potencjalnie migotanie może być spowodowane tym, że mcu nie jest wystarczająco szybki do PWM podczas zapalania diod LED.
Ogólnie, na podstawie doświadczenia, jakie mogą być inne przyczyny migotania 7-segmentowych diod LED. Chcę tylko zrozumieć problem, aby móc stwierdzić, czy sprzedawca planuje dodatkową pracę, gdy nie jest potrzebna.
źródło
Odpowiedzi:
Migotanie jest wynikiem zbyt wolnego odświeżania. Musisz odświeżyć każdy segment z częstotliwością co najmniej 100 Hz. Istnieją jednak pewne sztuczki, które mogą zredukować pozorne migotanie, a jednocześnie nie powodują szybszego odświeżania. Naiwnym podejściem jest odświeżanie cyfr w kolejności. Ale jeśli zmienisz je nieco, cała liczba będzie mniej migotać. Na przykład zrób cyfry 1, 3 i 5, a następnie wróć i zrób cyfry 2, 4 i 6.
Nie znając procesora i nie widząc kodu źródłowego, nie można powiedzieć, czy sprzedawca próbuje cię ciągnąć, czy bałagan naprawdę musi zostać przepisany. Należy pamiętać, że 99% inżynierów oprogramowania układowego pisze okropne oprogramowanie układowe. W całym miejscu może istnieć stała zakodowana stała, która przyjmuje założenia dotyczące częstotliwości zegara, częstotliwości odświeżania diod LED itp. Przy dobrze napisanym oprogramowaniu sprzętowym zwiększenie częstotliwości odświeżania przy założeniu, że procesor ma niezbędne cykle, powinno być łatwe. Przy źle napisanym oprogramowaniu może być o wiele więcej kłopotów niż porzucenie bałaganu i napisanie go poprawnie.
Dlaczego oryginalny projektant nie zajął się migotaniem? Być może oprogramowanie układowe jest tak źle skonstruowane, że po prostu zwiększenie go nie było możliwe? Jeśli migotanie jest tak oczywiste, to dlaczego produkt został stworzony w taki sposób? Już samo to sprawia, że oryginalny projektant popełnił bałagan. Gdyby mógł to łatwo naprawić, prawdopodobnie by to zrobił.
Naprawdę zabawne jest to, że teraz robisz to ponownie. Wybierasz się za granicę, ponieważ chcesz obniżyć koszty. Dobry projekt kosztuje prawdziwe pieniądze, ale zły projekt kosztuje znacznie więcej. Mimo że cię to ugryzło, najwyraźniej jeszcze się tego nie nauczyłeś. Z dobrym designem przede wszystkim nie byłbyś w tej pozycji, a nawet gdyby tak było, zmiana powinna być łatwa. Nie ma usprawiedliwienia dla zmiany zapisanego dźwięku, który nie jest prostą operacją.
Skąd wiesz, czy to zły pomysł, czy nie zmienić mikrokontrolera i obwodu, jeśli nie wiesz, co to jest? Kupowanie inżynierii ściśle według ceny jest najdroższym sposobem.
Dodano w odpowiedzi na komentarze:
Nie pamiętam, gdzie dowiedziałem się o odświeżaniu cyfr niesekwencyjnie, ale spróbowałem i okazało się, że to pomaga. Myślę, że działa z tego samego powodu telewizor z przeplotem wydawał się migotać z częstotliwością pola zamiast z częstotliwością klatek. W przypadku NTSC cały obraz został przerysowany przy 30 Hz, ale pozorne migotanie wynosiło 60 Hz z powodu odświeżania z przeplotem. Nie dostaniesz takiego 2: 1 przez przeplatanie cyfr, ale to pomaga.
Nie, 60 Hz nie jest wystarczająco szybkie, nawet nie jest blisko. 60 Hz to miejsce, w którym większość ludzi nie widzi migotania fali prostokątnej. Ktoś wpatrujący się bezpośrednio w diodę napędzaną przez 50% czasu przy 60 Hz może nie widzieć migotania, ale to nie jedyny sposób, w jaki ludzie go postrzegają. O ile nie masz tylko dwóch cyfr, diody LED będą świecić jaśniej przez krótszy ułamek czasu, co sprawia, że migotanie jest bardziej widoczne. Środek siatkówki reaguje najwolniej. Zauważysz migotanie bardziej na obrzeżach swojej wizji. Jednak prawdziwą wątpliwą częścią jest poruszanie oczami. Migotanie jest łatwo widoczne przy 60 Hz. Nie można uczynić migotania niewidocznym z powodu tego zjawiska, więc problemem jest to, aby był mniej denerwujący. 60 Hz nadal jest dość irytujące dla większości ludzi. Jak powiedziałem, chcesz przynajmniej kilka 100 Hz.
Jeśli chodzi o uzyskanie dobrej inżynierii, to sam temat. Nie ma nic złego w wyjeździe za granicę. Kompetentni ludzie mieszkają w różnych miejscach. Problem polega przede wszystkim na tym, że zły projekt będzie kosztował o wiele więcej niż zatrudnienie najlepszego inżyniera, który zrobi to dobrze. Po drugie, musisz zdać sobie sprawę z tego, że znalezienie i sprawdzenie talentów inżynierskich wymaga trochę pracy. Wydasz 1000s $, prawdopodobnie 10s z 1000s $. Traktuj to jak inne decyzje zakupowe tej wielkości. Pytaj, udzielaj wywiadów, zdobywaj referencje i monitoruj je.
Dopóki mówisz poważnie, a praca jest prawdziwa, powiedziałbym, że masz prawo oczekiwać około 2 godzin wstępnej konsultacji przed dokonaniem jakiegokolwiek zobowiązania. Pamiętaj, że działa to w obie strony. Część tego czasu jest na ocenę inżyniera, ale oczywiście inżynier też cię ocenia. Próbują zdecydować, czy ta praca jest zgodna z tym, co chcą robić, czy będziesz mieć problem z klientem pośladków itp. Tak czy inaczej, powinno być dużo czasu, aby przejść do wymagań i porozmawiać o początkowych wrażeniach na temat ścieżki, którą inżynier podejmie w kierunku rozwiązania. To powinno ci wiele powiedzieć o tym, jak myślą, ile po prostu wdrażają wszystko, co im powiedziałeś, w porównaniu do drążenia w dół i próbowania rozwiązania prawdziwego problemu i upewnienia się, że problem został rozwiązany, sugerowania alternatywnych rozwiązań itp.
Nic z tego nie mówi, że inżynier nie może być nadzorowany, ale utrudnia to logistykę i dobrą ocenę. Jeśli masz kilka silnych rekomendacji od osób, którym ufasz, to bardzo pomaga. Jeśli logika jest taka, że Bob w Bostonie chce 130 USD za godzinę i szacuje 4 tygodnie, podczas gdy Naresh w Bangalore chce 35 USD za godzinę i może to zrobić w ciągu 2 tygodni, masz poważne kłopoty.
źródło
refresh each segment at a few 100 Hz minimum
Czy 60 Hz (częstotliwość odświeżania gier, wyświetlaczy LCD itp.) Nie wystarczyłoby?Zgadzam się z minimalną częstotliwością odświeżania 100 Hz. To powinno być dość łatwe do zrobienia w kodzie dla dowolnego uC. Jakieś inne objawy niskiego zegara f? jak niski dźwięk w głośniku?
Wszystkie wyświetlacze Mux'd zakładają stały% cyklu pracy = czas włączenia / cyklu, więc średni prąd jest stały niezależnie od czasu odświeżania. Jak więc należy rozumieć czas włączenia i czas cyklu przy wprowadzaniu zmian.
Jeśli WIESZ JAK, to jest banalne. Jeśli tego nie zrobisz, to naprawdę bardzo drogie.
źródło
Rozumiem, że migotanie można zobaczyć we wszystkich jednostkach tego samego modelu produktu, więc nie jest tak, że coś zostało uszkodzone. Powiedziałbym również, że wystarczy zwiększyć częstotliwość odświeżania i oczywiście nie zmieniać całego programu.
Może się zdarzyć, że MCU nie jest wystarczająco szybki, aby odświeżyć te podwójne cyfry w większym tempie, ale wątpię w to. Czy możesz nam powiedzieć, co to jest MCU?
źródło