Skocz do zawartości

Oryginalność mikrokontrolerów AVR z Chin


Sabre

Pomocna odpowiedź

Było już kilka tematów u nas na forum na temat oryginalności Arduino i tego tematu jako takiego nie będę poruszał. Poruszę natomiast temat samych mikrokontrolerów AVR w szczególności ATmega328p stosowanych właśnie w Arduino Uno, mini, nano itp.

Otóż nie dawno zamówiłem sobie na ebayu ATmega328p w DIP jak i smd. Zamówiłem u tego samego sprzedawcy arduino mini. Ostatnio zrobiłem projekt z diodami WS2812B gdzie efekty zmieniałem pilotem IR. I tu wystąpił pierwszy problem, po 36-37 przełączeniach pilotem, mikrokontroler zawieszał się bądź przestając reagować na pilota i zmianę efektów wyświetlał głupoty na diodach, ale dalej coś wyświetlał. Stwierdziłem, że jest to problem Bascoma, w którym program był napisany. Nieefektywne wykorzystanie pamięci, obsługa podczerwieni w przerwaniach i skoki z podprogramu do podprogramu. Tak to sobie tłumaczyłem.

Dzisiaj zachęcony nowym tematem o diodach WS2812 chciałem nagrać i pokazać Wam moje efekty napisane w Bascomie dla nowszych diod WS2812B. I tu kolejny problem, wgrałem na mikrokontroler program z moich lampek choinkowych, gdzie efekty zmienia się przyciskiem wymuszającym przerwanie i zmieniającym tym samym skok z jednego podprogramu do drugiego.

Ten sam program w moich lampkach choinkowych działa poprawnie, przycisk można wciskać do woli ile razy się chce. Ten sam program wgrany do arduino uno, w którym siedzi mikrokontroler z ebaya zawiesza się dość szybko. Jedyna różnica jest taka, że w lampkach choinkowych mam mikrokontroler kupiony w TME.

I niestety zapaliła mi się lampka, że coś tu jest nie tak i winą wcale nie jest Bascom, a sam mikrokontroler. Podejrzewam, że mikrokontrolery z ebaya mają jakąś wadę RAMu, ewentualnie są po prostu gorszej jakości, może są to odpady produkcyjne, choć prawdę mówiąc byłoby to dziwne na skalę światową bo można kupić na tony tych AVRków z Chin więc jeśli chodzi o skalę to trochę dużo by było tych odpadów. A może są to nie do końca udane klony. Nie wiem. Wiem, że ten sam program na 2 niby identycznych mikrokontrolerach działa różnie.

Nie chcę żeby temat brzmiał jako reklama, czy antyreklama źródeł części. Sam kupuję sporo elektroniki z ebaya z Chin ale takie coś zdarzyło mi się pierwszy raz i dało mi do myślenia, że musi być coś na rzeczy.

Mieliście może podobne doświadczenia, że ten sam program działał różnie na mikrokontrolerach pochodzących z 2 różnych źródeł?

Link do komentarza
Share on other sites

Ja dotychczas miałem problem tylko z jedną tego typu atmegą, w tym wypadku z allegro. O działaniu jakimkolwiek nie ma mowy, po podłączeniu zasilania grzeje się dość mocno. Niestety pierwszym układem gdzie ją umieściłem, był programator(z podstawkami). Teraz pozostaje już mu tylko znicz zapalić... [*]

Link do komentarza
Share on other sites

Sabre, Dirty Prototypes obiecało decap procesorów od Atmela i z Chin:

May 11, 2016 at 6:15 am

Thanks for posting this. We recently decapped about a half dozen Atmels from genuine and Arduino knock offs. We’ll post a comparison soon. Any guesses if the Atmel on a $1 Chinese Arduino is real? 🙂

(za http://hackaday.com/2016/05/11/dirt-cheap-dirty-decapping/)

Niestety wciąż nic. Ale jak kiedyś wyjdzie to się dowiemy 😉

Link do komentarza
Share on other sites

Chumanista, ciekawe co z tego wyjdzie bo jak dla mnie w tej chwili w 2/2 mikrokontrolerach z chin mój kod się wiesza podczas gdy ten sam kod na mikrokontrolerze z TME działa bez problemu.

Do tego odniosłem wrażenie, że kod na mikrokontrolerze w klonie arduino uno wykonuje się wolniej. Niby powinien być kwarc 16MHz ale nie jestem w stanie tego sprawdzić bo jest na płytce rezonator wielkości 1x2mm może bez żadnych opisów. Muszę przełożyć ten mikrokontroler na inną płytkę testową z kwarcem normalnych rozmiarów i wtedy porównać działanie.

Bieda bo nie mam już chyba więcej tych atmeg w dipie z wiadomego źródła żebym mógł porównać działanie na kolejnym mikrokontrolerze. Muszę chyba przerzucić wszystkie moje pudła, może coś gdzieś się schowało.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Ale co mi da oscyloskop? Widzę, że program się nie wykonuje, wciskanie przycisku nic nie daje. Przerwanie się nie wykonuje, można pin zewrzeć na stałe do GND i nic. A diody zamiast wykonywać ładną sekwencję zmieniającą kolory zapalają się prawie losowo na dość losowe przygaszone kolory. Trochę jakby leciała do nich jakaś losowa transmisja. Z tego co pamiętam to na arduino mini nie pomagał nawet reset, musiałem odłączać zasilanie.

Trochę to wygląda jakby nagle przestawała działać cała logika mikrokontrolera.

Link do komentarza
Share on other sites

Sabre, Chodziło mi o część z kodem wykonującym się wolniej.

To że one są odrzutami z produkcji jest dość prawdopodobne. Może po prostu biorą te które są mało uszkodzone i mają nadzieję że użytkownik nie będzie potrzebował tego co nie działa.

Link do komentarza
Share on other sites

To że one są odrzutami z produkcji jest dość prawdopodobne.

Tylko to by oznaczało, że produkcja jest jakoś koszmarnie źle prowadzona i powstają miliony wadliwych sztuk, co jest dopiero wykrywane, gdy cały układ jest gotowy, zamknięty w obudowie i "pomalowany"... Też byłem zwolennikiem tej teorii, jednak wierzę, że takie wady są wykrywane wcześniej - inaczej nie świadczyłoby to zbyt dobrze o fabrykach 😉

Link do komentarza
Share on other sites

Kwarc łatwo sprawdzić -- wgraj blinka i sprawdź czy jest rzeczywiście co sekundę, czy dwa razy wolniej.

A te klony, które kupiłeś, to gołe procesory (jakie nieprzyzwoite) czy całe płytki? Bo Chinczycy znani są z usuwania "niepotrzebnych" części z układów, takich jak kondensatory filtrujące, bezpieczniki czy oporniki podciągające, skoro "bez nich też działa". Regulator na płytce też może być bardziej wrażliwy. No i czy przy obu testach zasilasz to z tego samego źródła?

Poza teorią z odrzutami możliwa jest jeszcze jedna -- części wyciągnięte ze złomowanych urządzeń. W przypadku SMD to raczej niemożliwe, ale dla DIP i to z gniazdkiem -- czemu nie. Albo jeszcze mogą być bardzo stare części, które nie były poprawnie magazynowane...

Link do komentarza
Share on other sites

deshipu, zrobiłem kolejny test i dalej to samo. Dwa mikrokontrolery, jeden w DIPie w klonie arduino uno, drugi to smd w arduino mini. W obydwu testach ten sam kod daje ten sam rezultat, zawieszanie w prawie losowych momentach po iluś wywołaniach przerwań. To samo miałem na wywoływaniu przerwań przyciskiem i to samo na przerwaniach od odbiornika IR. Pies jest gdzieś tu pogrzebany. Zasilanie to albo zasilacz, albo w przypadku arduino uno, power bank (on nie jest tu problemem).

Przełożyłem megę z arduino uno do płytki testowej z propoxa zasilonej zasilaczem od nich, dalej to samo. Nagrałem filmik, wrzucę go zaraz na youtuba

Program zawiesza się zawsze w tym samym miejscu, ale widzę, że działa to różnie bo o dziwo nie zawsze po wciśnięciu przycisku przeskakuje tak samo, czyli do następnego podprogramu. Obwody od przycisku na płytce propoxa są wykonane prawie tak samo jak ja to mam zrobione na płytce od lampek, u mnie jest jeszcze kondensator równolegle do switcha, na EVBavr04 ich nie ma, stąd pewnie przeskakiwanie podprogramów.

Dołożyłem kondensator i dalej przeskakuje podprogramy nie po 1 a po kilka czasami.

Nie widać tego na filmie bo często zmieniam efekt, zawieszanie następuje gdy migają w losowych miejscach diody (na filmie od 2:20 do 2:32) potem zrobiłem reset, kolejny zwis przy 3:14 i 3:57.

Link do komentarza
Share on other sites

Ale co mi da oscyloskop?

Ano sprawdzisz czy na zasilaniu nie masz szpilek resetujących procesor, czasem na zasilaniu się takie pojawiają przy dynamicznym obciążaniu zasilania, dołożenie pojemności na zasilaniu może pomóc 🙂

Te Ledy są sterowane PWM'em ? Można spróbować procesor i Ledy zasilać z osobnych zasilaczy. Jak widać na filmie tych diod jest trochę no i są to RGB czyli x3, a jak dołożysz kondensator elektrolityczny to sobie może z tym nie poradzić ( za wysoki współczynnik ESR ).

Link do komentarza
Share on other sites

nse, to nie jest wina zasilania. Diody były zasilane z 2 różnych zasilaczy i powerbanku, za każdym razem jest tak samo. To ewidentnie problem z mikrokontrolerem. Poza tym, na tym filmiku jest 15, nigdy nie świecą z pełną mocą, a problem zaczął występować gdy mikrokontroler sterował ośmioma takimi diodami. Problem jest ewidentnie z wykonywaniem programu bo zawsze mikrokontroler zawieszał się po 36-37 wywołaniach przerwania z pilota gdy zmieniałem kolory. Potem przerwanie wywoływałem przyciskiem i dalej było to samo, a powtórzę po raz kolejny, że problem nie występuje na mikrokontrolerze pochodzącym z wiadomego źródła z identycznym programem.

Link do komentarza
Share on other sites

deshipu, masz pełną wersję Bascoma? Mogę podrzucić bina, albo hexa na megę328p. Przycisk jest podłączony z wewnętrznym podciąganiem pod PD.2 a wyjście ledów jest podłączone do MISO. Kwarc musi być 16MHz z fusami bez dzielenia zegara.

O ile masz tasiemkę z WS2812B bo bez tego nie zauważysz momentu zawieszania się.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.