logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Czy atmega może być źródłem zakłoceń?

rpal 28 Sie 2010 00:22 5798 40
  • #1 8447081
    rpal
    Poziom 27  
    Borykam się z problemem, który polega na tym, że układ steruje głowicą UKF. Wszystko jest fajnie kiedy stacja ma silny sygnał na wejściu a procek za mocno się nie "wysila". Kiedy dostaje w przysłowiową d... są słyszalne wyraźne zakłócenia w torze p.cz.
    Program to generalnie pętla z pewną ilością if-ów, kiedy je wyłączałem z programu zakłócenia znikały ale po przekroczeniu pewnej magicznej liczby if-ów (nawet nie wykonujących zagnieżdżonych w nich elementach programu) pojawiać się zaczęły zakłócenia ( dla słabych stacji).
    Odłączałem peryferia bo podejrzewałem LCD o sianie zakłóceniami, wyłączałem I2C bo jest kilka scalaków w ten sposób sterowanych. W którymś momencie wreszcie zgłupiałem. Przydarzyło się już komuś coś takiego.
    Zacząłem w końcu podejrzewać przetwornika ADC od atmegi za winę tego zachowania nie wiem tylko czy słusznie?
  • #2 8447370
    Konto nie istnieje
    Poziom 1  
  • #3 8447615
    rpal
    Poziom 27  
    w tzw. międzyczasie namierzyłem część winowajców. w tej chwili zakłocenia idą od I2C. Mam tam rezystory po 10k ale zdaje się że będzie je trzeba zmniejszyć o ile mnie przeczucie nie myli schamta to zwykła atmega z zewnętrznym RAM + 3 TTL-e dla dekodera adresów pod LCD. Płytka jest chyba poprawna wszędzie są kondensatory odkłocające , atmega ma też dławik w zasilaniu AVCC. Zasilacz jest wprawdzie na przetwornicy ale on niczym nie sieje. To już sprawdzałem poza tym ma spore elektrolity w filtrze jak równierz dławik w obwodzie zasilania 5V. Głowica + p.cz. RDS oraz PLL jest wpięta w pionie na oddzielnej płytce.
    Czy atmega może być źródłem zakłoceń? Czy atmega może być źródłem zakłoceń?
  • #4 8447796
    janbernat
    Poziom 38  
    Na dolnej warstwie masz chyba zamkniętą pętlę masy.
  • #5 8447865
    rpal
    Poziom 27  
    Gdyby PCB było żródłem zakłoceń to występowałyby one bez przerwy. Zakłocenia powstają przez pracę programu. Większość linii jest nie uzywana bo jeszcze ich nie obsłużyłem programowo. Zablokowałem dostęp do pamięci extend więc ona póki co niczym nie sieje. Zrobiłem taki eksperyment. Mam tam jakieś 8 if{} pracujących na flagach. Wylaczyłem ich zawaratość tak że zostały puste. Zakłocenia pojawiały się przy ok. 4 pętlach if{} przy mniejszej już nie. Mało tego flagi miałem opartę na strukturze bitowej. Kiedy zastapiłem ją zwykłą strukturą poziom szumów mi zmalał ! Wniosek że pochodzą od zródeł nia mających swoich wyprowadzeń na liniach zewnętrznych. Na razie jestem w kropce, chyba zajmę się ekranowaniem. Co ciekawe kiedy ten sam układ chodzi na kompletnej prowizorce połaczony luźnymi kablami (inna sprawa ze na mniejszym procku bo atmega32) to takiego syfu nie miałem. Aha masa z wartwy bottom z top jest połączona z top w okolicach procka w 3 miejscach a nie w jednym, może tego dobrze nie widac.
  • #6 8448018
    tmf
    VIP Zasłużony dla elektroda
    Coś ci się sprzęga z głowicą, jak podłączyłeś ekran głowicy? Może tu jest problem. Najpewniej zakłócenia idą przez zasilanie - daj przed procesorem dodatkowy dławik. Spore elektrolity przy wyższych częstotliwościach niewiele dają. Podstawą są małe ceramiczne kondensatorki. Umieść rysunki PCB z zaznaczonymi elementami. Gdzie masz głowicę? Idą pod nią jakieś ścieżki? Jeśli tak to przeroutuje inaczej, a tam daj tylko płaszczyznę masy, żeby od dołu zamykała ekran głowicy.

    Dodano po 1 [minuty]:

    BTW, PCB jest najpewniej źródłem zakłóceń. To, że nie występują one stale o niczym nie świadczy. Żeby ścieżki na PCB siały musi płynąć przez nie prąd impuslowy. Nic więc dziwnego, że w spoczynku nic nie obserwujesz.
  • #7 8448117
    nsvinc
    Poziom 35  
    Po co filtrować zasilanie procesorowi (tym dławikiem?) Jesli zasilanie sieje
    na głowice, to ja dałbym dobrą filtrację zasilania głowicy, np. filtrem PI
    II lub III rzędu. Dla opornych są do tego gotowe kalkulatorki w internecie.
    To, że poziom szumów zależy od kodu wykonywanego przez procesor, świadczy
    o tym, że śmieci idą zasilaniem.

    Ścieżki nie mogą siać. Głowica, jak sądzę, jest zamknięta w metalowej ekranującej puszce, podłączonej do masy.
    Fale elektromagnetyczne stworzone przez zbocza na sciezkach
    nie przebiją sobie ot tak ekranu głowicy.

    Rzuca się w oczy dosyć mało kondensatorów filtrujących.
    Do takich układów przy każdej parze pinów zasilania powinny być dwa, lub
    trzy kondensatory, np. 100n, 4n7,470p (oczywiscie jak najbliżej tych pinów).

    Siać może również sam procesor. A dokładniej jego oscylator, do którego
    podłączyłeś kwarc. W tamtym miejscu sieje ekstremalnie. Procesor
    razem ze swoim kwarcem (i scalakami pobocznymi) powinien siedzieć
    w oddzielnej metalowej puszce podłączonej do masy.
    Kolejna sprawa to jest sam kwarc i konfiguracja oscylatora. Oscylator
    chodzący na "pełnym zasterowaniu" będzie hardcorowo siał ścieżkami
    do kwarca.Istnieją metody zmniejszania tego zasiewu. Hasło: spread spectrum.

    Słabo podłączona masa procesora. Cała masa procesora wisi tylko na
    kilku przelotkach na top, i nic więcej. Poligon masy pod procesorem
    jest podłączony z większym poligonem (po lewej) tylko przez jednego
    pada (lewy górny róg procesora).
    Masa pod procesorem powinna być poprzelotkowana do poligona na topie.

    Jeśli głowica chodzi na I2C, zejdź z częstotliwością tego I2C i zwiększ
    rezystory podciągające. Dodaj malutką pojemność (470p) na SDA i SCL.
    Spowoduje to złagodzenie zbocz na tych liniach, i automatycznie zmniejszy
    się zasiew spowodowany tymi ścieżkami. Upewnij się najpierw że scalaki
    którymi sterujesz po I2C mają na wewnętrznych obwodach wejściowych bufor
    schmitta.
  • #8 8448191
    rpal
    Poziom 27  
    osobiście bardzo mi się podoba to co kol.nsvinc napisał.Sprawa wygląda tak PCB w domowych warunkach metalizować nie dam rady więc przelotki sa wywalone poza obudowę procka inaczej wisiałby w powietrzu przy lutowaniu. Problem jest w tym że kiedy wstrzymuję pracę procesora zakłocenia znikają. Cały tor FM wraz z PLL jest sterowany przez I2c więc kiedy jest już zaprogramowany to żaden sygnał tam nie idzie. Inaczej jest z RDS tam ciągle coś przepływa po I2c. Zapewniam kazdy element ma kondensator 100 nF. Popracuję nad lepszym ekranem głowicy i toru p.cz bo jest nie ukrywam że jest nieco bylejaki. A co oscylatora to sprawdzałem różne warianty z pełną oscylacją i na pół gwizdka i zawsze jest tak samo. Te linie pod głowicą na razie nie przenoszą żadnych sygnałów póki co ich w ogóle nie używam, są zwarte do masy. Póki co zajmę się zasilaniem głowicy i poprawieniem ekranu. I2c sprawdzałem na 200,100,40 kHz wszędzie to samo ale istotnie pojemności tam żadnych nie mam tylko rezystory po 10k. Co do buforów I2C to diabli wiedzą co tam jest bo jakoś Phillips nie chwali się co wsadził w SAA6588 albo TSA 6057. Może tego nie widać ale masa w okolicach procka jest podłączona między bottom a top w 3 miejscach.
    Może jeszcze jedną sprawę wyjaśnię. zakłocenia są słyszalne tylko dl słabych stacji. To jest mniej więcej tak że jeśli wstrzymam pracę procka np. JTAG-iem to stacje słabe wychodzą z szumów i odbior jest bez mała krystaliczny kiedy procek rusza nakładany jest szum i robi się generalnie syf. Dla stacji o silnym sygnale w ogóle nie ma problemu. Czyli tak jakby wejściowy sygnał w.cz głowicy był tłumiony jakąś częstotliwością wytwarzaną przez procek. Może powinienem na wejściu zastosować jakieś filtry ?
    Musi być jednak coś także w I2c bo gdy dla wspomnianych stacji załączam obsługę RDS to wyraźnie wchodzi mi jakieś terkotanie nie występujący dla silnych rozgłośni. Bez wzgędu na czestotliwość taktowania I2C.
  • #9 8448539
    Konto nie istnieje
    Poziom 1  
  • #10 8448626
    nsvinc
    Poziom 35  
    no więc trzeba filtrować zasilanie głowicy - tak jak napisałem - dobry
    dolnoprzepustowiec najpewniej rozwiąże problem.

    Nie stwierdziłem, że sieje sam procesor, tj. na pewno cośtam sieje, ale pomijalnie słabo. Za to na pewno sieje I2C.
    Z tego co widzę to są obecnie jedyne intensywnie "pracujące" ścieżki.
    Nie pisałem o zejsciu z częstotliwością, tylko o dodatkowej
    pojemności na liniach
    , aby ograniczyć stromość zbocz. Zmiana częstotliwości
    jest tylko następstwem, koniecznym z powodu dodatkowych pojemności na
    magistrali.
  • #11 8448721
    rpal
    Poziom 27  
    poczyniłem pewne eksperymenty i widzę że muszę się gruntownie przyjżeć przerwaniom które mam odpalone (a jest ich kilka) na czas transmisji danych RDS wyłączyłem przerwania i o dziwo terkotanie nieco się wyciszyło. To zapewne sygnał aby istotnie te kondensatory podczepić, niestety nie mam teraż żadnego pod ręką. Natomiast zastanawia mnie cały czas to zasilanie głowicy. Tam są dwa napięcia 5V i 12 Sądzisz że trzeba obydwa fitrować ? Na początek postaram się zasilić układ z zewnętrznego zasilacza zobaczę co będzie bo może rzeczywiście z tego mojego na MC34063 może coś się wydostawać. Niestety musiałem to wsadzić bo zwykły 7805 mocno się gotował i muszę zapewnić duży zapas mocy. W sumie nie mogę się temu nadziwić bo jak wszystko było na pająkach to było OK a tutaj takie niespodzianki. Jak widać prowizorka wcale nie jest taka zła :) Jak tylko znajdę odpowiednią blachę to wrócę do tematu kiedy poprawię ekranowanie głowicy. Na marginesie PLL i RDS też ekranować bo są w przeciwległej części płytki i mogą być oddzielnie zapuszkowane ?
    kol. atom istotnie podejżewam LCD o zakłócenia, na pająkach miałem podłaczony zwykły 2*16 a teraz wsadziłem duży graficzny 256x128 i możliwe że on mi tu rozrabia. No niestety procka juz nie wylutuję ale zawsze mogę dodać przelotek bo jest na to miejsce. Wylutowanie go to tak jakbym zaczął od nowa. Głowica jest prostacka typu Gloria ale nie Gloria tylko bardzo podobna, a p.cz,PLL i RDS robiłem sam. Szkoda informacje o SAA6588 a zwłaszcza jego oprogramowaniu i zrozumieniu działania są objęte jakimś embargiem na tym forum bo do wszystkiego musiałem sam dochodzić co zajęło mi nieco czasu :( Inna sprawa że teraz wiem co w trawie piszczy.
  • #12 8448749
    _Robak_
    Poziom 33  
    Cytat:

    Nie pisałem o zejsciu z częstotliwością, tylko o dodatkowej
    pojemności na liniach, aby ograniczyć stromość zbocz.

    No właśnie, tyle że dodanie pojemności zwiększy prąd ładujący te pojemności. Zakładam że koniec końców wychodzi to na plus (jeśli chodzi o sianie).
    A co do spread spectrum, to skoro widmo sygnału z kwarca ma głównie jedną f kilkanaście harmonicznych o dużo mniejszej mocy, to chyba nie ma co tu kombinować z rozpraszaniem mocy. To nie jest sygnał prostokątny którego widmo może być bardzo szerokie.
    Skoro na pająku było ok, a teraz nie jest to trzeba się zastanowić czemu. Zakłócenia przenoszone są na inne ścieżki, pola? Pole masy rzeczywiście połącz w wielu miejscach bo to że dasz duże pole nie znaczy że prąd ma jak wrócić, jak nie ma to będzie krążyć i wyjdzie gorzej jak bez pola.
  • #13 8448970
    Fajfer2
    Poziom 20  
    Jest jeszcze coś takiego jak dławik skompensowany. Powierzchnia masy "rozlana"
    od tak, aby było dużo miedzi niewiele daje - pętla prądu wchodzącego do układu musi zamykać się jak najmniejszą powierzchnią z prądem wychodzącym - dodanie powierzchni bo profesjonalnie wygląda, spowoduje zwiększenie pojemności pasożytniczych. Nie za bardzo widzę sens wypełniania miedzią aż pod nóżki układu, jeśli nie zamyka się to pętlą, wygląda to troszkę jak antena. Kondensatory do rezonatora kwarcowego muszą być dołączone do masy prowadzonej od nóżki uC, a nie od zasilania - jak najmniejszą pętlą.
    http://www.atmel.com/dyn/resources/prod_documents/doc4279.pdf
    (co prawda to się tyczy '51 ale zasady będą niemalże identyczne)
  • #14 8449115
    rpal
    Poziom 27  
    a której konkretnie bo na mase cyfrową sa 2 a analogową 1 ?:)
  • #15 8449149
    Konto nie istnieje
    Poziom 1  
  • #16 8449216
    rpal
    Poziom 27  
    Tak własnie jest tam zrobione 23,24 kwarc najbliższa masa cyfrowa 21 może tego nei widać bo na potrzeby generowania rysunku poligon ma nieco większe odstępy a w praktyce najbliższa noga jest praktycznie na masie kondensatorów przy kwarcu. Poza tym kwarców podobno może w ogóle nie być :) Tu jeden z kolegów o tym się rozpisywał. To żart. Na razie muszę wdrożyć poprawki co zajmie kilka dni a potem się odezwę.
  • #17 8449585
    Fajfer2
    Poziom 20  
    Rzeczywiście, nie od razu jest to widoczne - tym bardziej że tam chyba jest przerwa (na Botom) ok 1mm od masy, a przeciągnięta ona (masa) jest przez Top-layer a potem z powrotem na Botom. Jeśli jest to w trakcie komunikacji I2C, to możliwe że pętla zasilania układu z komunikacją I2C (głowica?) jest o zbyt dużej powierzchni. Co prawda nie widzę na których nóżkach masz I2C - co to jest za ATmega ?
  • #18 8449621
    rpal
    Poziom 27  
    SDA PD1;SCL PD0 tak jak Atmel dał w czasie produkcji obsługę mam sprzętową nie programową. Używałem dłuższych połaczeń na zwykłych kablach i było wszystko OK. Sprawdzę co się dzieje kiedy zapuszczę w pętli odczyt pamięci czy jakieś smiecie się pojawią .
    Sprawdziłem wchodzi lekki szum w takim razie to jest powodem zakłóceń.Na niektórych częstotliwościach całkiem zdrowo daje :(
  • #20 8449691
    rpal
    Poziom 27  
    Tak czy inaczej nie mając pod ręką żadnych elementów wiele nie zdziałam w poniedziałek coś zakupię i pobawię się z blokowaniem tych linii. Póki co pozostawiam dyskutantów.
    Szlag mnie już trafił i zrobiłem taki oto eksperyment:
    w programie głowica jest po I2C wysterowana i na tym kończy się jej obsługa, żadnych przerwań, poziomy napięć na używanych wyjściach/wejściach ustalone a program wchodzi w pętlę w której poza zwiększeniem wartości zmiennej nic nie robi. Zakłocenia jak cholera !!! odłaczyłem głowicę jest znowu na pająkach na zwykłych kablach o długości 20 cm(powinny być zakłocenia jak się patrzy). Przywróciłem program ze wszystkimi możliwymi bajerami, z 5 przerwań chodzi bez przerwy i ciągła obsługa I2C.
    Wszystko jest OK żadnych szumów i trzasków. Niech ktoś mi powie teraz że procek nie sieje zakłoceniami ?
    Inna sprawa że musze poprawić ekranowanie głowicy i ew. wytłumienie zasilania ale nic nie zmieniałem poza odsunięciem głowicy i toru p.cz. od płytki z procesorem.
    aha kiedy przysuwam głowicę do procka zaczyna się od nowa zabawa.
    Jak widac prowizorka trzyma się najdłużej.
    jak ktoś chce to zobaczyć mogę zamieścić fotografię :)
  • #21 8449906
    _Robak_
    Poziom 33  
    nsvinc napisał:
    _Robak_ napisał:
    No właśnie, tyle że dodanie pojemności zwiększy prąd ładujący te pojemności.

    Czy kolega jest na 100% pewny tego stwierdzenia? :]


    Zakładając że stromość zbocza się nie zmienia, tak jestem, tego pewny;]
  • #22 8449987
    Fajfer2
    Poziom 20  
    Właściwie to najczęściej nie uP promieniuje, tylko PCB - bo ścieżki i połączenia wewnętrzne mikrokontrolera są niezwykle krótkie. W atmega była też możliwość zaznaczenia CKOPT przy programowaniu. Zbliżanie głowicy do procka na tym 20-centymetrowym przewodzie powoduje zakłócenia? Jak jeszcze masz czas, to możesz sprawdzić czy nawinięcie przewodu (nie rozplatając go) na malutki ferrytowy toroidalny rdzeń zmieni na lepsze sytuację. Możesz też podłączyć I2C przez szeregowy rezystor 10 - 100Ω. Jak przebiega pętla zasilania do pamięci (układ u góry po prawej stronie) ?
  • #23 8450014
    rpal
    Poziom 27  
    kol Fajfer co ma promieniować kiedy na portach nie występują żadne zmiany sygnałów ? taki test przeprowadziłem jakby nie było (petla ze zmianą wartości zmiennej) zgłupiałem kompletnie, przecież nie wsadzę głowicy UKF do ołowianego pojemnika. Z pająkiem kabli o długości 20 cm i szalejącymi danymi na nich powinno dopiero to wszystko rozsiewać zakłocenia a tak nie jest bo głowica i tor p.cz leży sobie 30 cm od procka. Tak jak wspominałem poeksperymentuję z innym ekranem głowicy i p.cz oraz sprwdzeniem czy przez zasilanie coś mi się nie dostaje. Z tego co widzę nie nie układ scieżek jest winowajacą.
    Gdy zbiżam (a właściwie dotykam) głowicę z ta plątaniną kabli do procka, istotnie wchodzą zakłocenia.
  • #24 8450091
    Fajfer2
    Poziom 20  
    No to pozostaje oscylator. Mam pytanie, które właściwie od dawna mnie "męczy":
    dajmy na to mamy przewód, w którym wydzielamy odcinki A, B ,C. Pomiędzy odcinek A-B dołączono generator w.cz. a odcinek C-B nie jest dołączony do czegokolwiek, poza punktem B -> czy ma on jakiś wpływ na wypromieniowanie fal eelektromagnet. ? - myślę że tak.
  • #25 8450194
    rpal
    Poziom 27  
    ja nie jestem znawcą ale robi się coś jakby dipol antenowy jak zaczniesz dobierać odpowiednie długości odcinków przewodu to w którymś momencie dostroisz się do długości fali i zaczniesz tym promieniować w końcu tak działa popularna antena Yagi. Przed wielu laty stroiłem jako lokalny pirat antenę właśnie docinając jej końce do odpowiedniej długości tak aby reflektometr wskazywał na minimalne straty sygnału. Jeśli się mylę to niech ktoś mnie skoryguje.
  • #26 8450227
    Fajfer2
    Poziom 20  
    No właśnie mi się też tak wydaje, a ma to odbicie w PCB - tam przy kwarcu - nie twierdzę że to na pewno to jest winne, ale ...
  • #27 8450240
    nsvinc
    Poziom 35  
    _Robak_ napisał:
    nsvinc napisał:
    _Robak_ napisał:
    No właśnie, tyle że dodanie pojemności zwiększy prąd ładujący te pojemności.

    Czy kolega jest na 100% pewny tego stwierdzenia? :]


    Zakładając że stromość zbocza się nie zmienia, tak jestem, tego pewny;]

    Ale zakładając ograniczoną wydajność prądową pina portu, i prąd podciągania linii,
    dodatkowa pojemność na tych scieżkach spowoduje własnie złagodzenie
    zbocz, bo kondensator będzie się ładować takim prądem jak wynika z ESR i szczytowej wydajności prądowej tranzystora (o ile jest dobrze zaprojektowana płytka) gdy tranzystor w procesorze złapie, albo prądem wynikającym z prądu rezystora
    i ESR kondensatora gdy tranzystor puści.
  • #28 8450261
    rpal
    Poziom 27  
    ja nic tam nie widzę linie prowadzące do kwarcu kończą się kwarcem na końcach którego są kondensatory wg. mnie żadnej anteny tam nie ma, na około jest masa. Poza tym jak podpiąć inaczej kwarc . Poza tym próbowałem ganiać to wewnętrznym oscylatorem i też zakłocenia powstają.
    Panowie kilka dni i się wyda co było powodem nie warto toczyć sporów o te dwa kondensatory.
  • #29 8450315
    Jaca
    Poziom 31  
    Spróbuj:

    1. Fragmentacji obszaru masy dla poszczególnych bloków (uC, głowica, itp) na warstwie TOP
    2. Okrążania bloków gęstym ciągiem przelotek do wspólnej masy na warstwie BOTTOM i dodatkowo na krawędziach płytki
    3. Prowadzenia w pierwszej kolejności ścieżek zasilania w formie gwiazdy (punktem centralnym jest tantal lub elektrolit zasilacza) a następnie ścieżek sygnałowych. Ścieżki sygnałowe emitujące zakłócenia muszą być oddzielane masą i rzędem przelotek do masy głównej
    4. Filtracji zasilania z wykorzystaniem filtrów PI (kondensatory i dławik)
    5. Odsprzęgania zasilania (jak radził nsvinc)
  • #30 8450975
    _Robak_
    Poziom 33  
    rpal, czy ty tu widzisz jakieś kłócące się osoby?:) My tu kulturalnie dyskutujemy:)

    Fajfer2
    Oczywiście że robisz wtedy antenę, przeczytaj sobie ten artykuł i wszystko się powinno wyjaśnić.
    http://www.majr.com/docs/Understanding_Electromagnetic_Fields_And_Antenna.pdf

    nsvinc
    Oczywiście, to co piszesz jest prawdą, ale... Zależy jaką zrobisz stałą czasową z rezystancji i pojemności, załóżmy że dołożysz pojemność 470 piko, to nawet przy rezystancji tranzystora mosfet 1 Ohm (kosmos!), masz stałą czasową 470*10^-12 s. Natomiast szybkość opadania i narastania zboczy w LPC2478 jest 26*10^-9 s (na pewno szybsze niż AVR). Ze wzoru C*dU/dt już możesz sobie oszacować jaki potrzebujesz prąd aby naładować to dziadostwo;) Wychodzi 90mA, w takim wypadku na pewno się wydłuży zbocze, ale czy jest to zdrowe dla procesora? Ha, skoro się wydłuży zbocze to zmniejszy się prąd, i znowu jesteśmy w punkcie startu:) No i tu by się przydał jakiś model z którego można wyznaczyć to wszystko.

    Co do samej sprawy, rpal, uważasz że to sam procek sieje a nie PCB. Oczywiście możesz mieć rację, skoro na pająku nie sieje a na PCB sieje, to uważam że przenosisz zakłócenia z procka na zewnątrz. Zrób to co napisał Jaca.
REKLAMA