ekranowane przedowy, złącza i zakłócenia

Witam

Dwie płytki łącze przewodami 10cm, 15cm w taki sposób, że na goldpiny wtykam złącza. No i takich kabelków mam około 20 z sygnałami cyfrowymi + zasilanie. 6 przewodów służy do komunikacji atmegi z ADC poprzez protokół SPI. Wszystko działa dobrze dopóty, dopóki nic nie robie przy płytce. Gdy zaczynam włączać/wyłączać podświetlenie LCD, poruszać przewodami, oddychać ;) itp program zachowuje się tak, jak gdyby ADC generował nowe dane bardzo wolno (zamiast co 20ms, to co sekundę, dwie lub gorzej), a fakt wygenerowania nowych danych jest sygnalizowany niskim stanem jeden z linii, więc jest łatwy do wykrycia. Po każdym odebraniu danych trzeba poinformować przetwornik o chęci odczytania kolejnej porcji danych. Reset programowy ADC i/lub sprzętowy atmegi czasami pomaga, a czasami nie.

Wydaje mi się, że zakłócenia powodują, że polecenie wysyłane do ADC są zniekształcane. Mam już kupione przewody z ekranem w postaci foli i przewody z oplotem. Przewidziałem wcześniej ich zastosowanie i mam nawet piny z masą wyprowadzone przy każdym złączu goldpinów. Teraz jednak mam wątpliwości czy to pomoże, ponieważ same złącza są nieekranowane.

Jakie złącza zastosować, że wykorzystać ekrany w przewodach tego typu:

formatting link

Obecnie stosuje takie złącza:

formatting link
przewody wstążkowe, nieekranowane.

Żeby zmniejszyć stromość zboczy wszystkie linie cyfrowe przesyłane przewodami mają szeregowo włączone rez. 2k2.

pozdrawiam tn

Reply to
ThomasN
Loading thread data ...

Dodatkowe informacje: Podłączyłem atmege z ADC (protokół SPI) poprzez kabel 6 żyłowy, ekranowany taki jak w pierwszym linku, żeby wypróbować ekranowanie. Niestety przetwornik nie generował danych w ogóle. Sprzętowy reset programu i programowy reset ADC nic nie dawał. Pomogła natomiast dotknięcie metalowym śrubokrętem do nóżki reset przetwornika lub próba pomiaru napięcia na różce reset multimetrem. Najdziwniejsze jest to, że gdy atmega jest połączony z przetwornikiem przy pomocy przewodu wstążkowego wszystko działa tak jak opisałem wcześniej - czyli błędy są, ale sporadycznie.

Jak zabezpieczyć układ, żeby wszystko działało bez błędów? Każdą linie sygnałową puścić z osobnym ekranowaniem? - to chyba przesada.

pozdrawiam tn

Reply to
ThomasN

Tnij cytaty!! Zwlaszcza swoje...

A uklad? Zrobiles antenke i zbiera wszystko co w okolicy. Poprobuj rozne masy do uziemienia podlaczac w roznych miejscach (bezposrednio, albo np: przez 1n/3kV). Zakladam ze wiesz co robisz i nic nie 'kopnie' ani krzywdy inaczej nie zrobi.

Reply to
Jerry1111

ok

To i pewnie jeszcze inne przewodu w układzie zaśmiecają widmo.

Z tym może być problem, bo układ zasilam z niestabilizowanego zasilacza zewnętrznego z izolacją galwaniczną od sieci. Gdy dolutowałem 100n do pinu reset przy ADC i wydłużyłem czas resetowania programowo to układ znowu zaczął działać tak jak poprzednio, czyli od czasu do czasu błędy są, ale przynajmniej generuje poprawnie. Samo programowe wydłużenie czasu resetu nie pomogło.

Problem pozostaje otwarty

pozdrawiam tn

Reply to
ThomasN

ThomasN napisał(a):

Zrób dobrą dystrybucję zasilania i masy. Popularne setki przy każdym scalaku. Do transmisji spróbuj użyj taśmy w taki sposób żeby poszczególne sygnały pooddzielać sygnałem masy, do tego ekran na całość. Zjedź jak najniżej z szybkością SPI, i przytnij zbocza filtrami RC. Jak zrobisz to dobrze to musi działać, sam mam SPI @ 4MHz po kabelku ~30cm.

Pozdro

Reply to
Luk

mam. tylko o 100n przy pinie reset przetwornika ADC zapomniałem.

o czymś takim piszesz?

formatting link

Obecnie SPI mam na 125kHz i jest lepiej niż przy 1MHz jaki miałem wcześniej ustawiony. Niestety układ jest zbudowany i dodanie filtru lepszego niż ten jeden rezystor 2k2 nie wchodzi w gre - kolejnego prototyku nie przewiduje.

pozdrawiam tn

Reply to
ThomasN

ThomasN napisał(a):

Bardzo dobre, może być. Dobrze rozplanuj masę i łączenie ekranu, dokładne połączenie z obu stron, żadnych dużych pętli.

Przy tej prędkości to powinno śmigać, zobacz na oscyloskopie jak strome masz zbocza. Jak za duże <1us to je obetnij, na bank zmieścisz 1 kondziolek do każdej z lini np przy samym ADC. Nie zmieniając tych 22k spróbuj podwiesić np. 1nF w SMD, lub mniejszy.

Pozdro

Reply to
Luk

Oczywiście na podstawie opisu bardzo trudno stwierdzić co jest źle. Myślę, że zwarcie tych 2k2 i rozdzielenie tasiemki na poszczególne przewody powinno poprawić działanie układu.

Paweł

Reply to
Paweł

125kHz to 'nic'.

Poprawnego dzialania nie przewiduje ;-)

IMHO ThomasN uzyl bardzo szybkie CMOSy (bo innych sie nie produkuje - nawet HC04 jest robione w _innej_ technologii niz 20 lat temu, z czasem narostu zbocza rzedu 300ps, a nie kilka ns) i wszystko. Najprosciej filterki RC pozakladac, albo kondensatory 3-wyprowadzeniowe 'przelotowe'.

Reply to
Jerry1111

haha, we will see... Nie mam czasu po prostu.

Atmega generuje sygnały więc czas trwania zbocza to raczej ns niż ps. Spróbuje dolutować kondensatory blokujące i wszystkie przewody zaekranować tak jak to proponował Luk@sz.

Reply to
ThomasN

Przy 125kHz okres to 8us ze zboczem 1us to prawie sinusoida! A jak bym chciał na 1MHz przejść to już w ogóle ;) Myśle, że 100ns to max ile dam.

hehe

Te dwie płytki są łączone 5 przewodami w sumie, w tym zasilanie. Zasilanie jest puszczone innym przewodem - ekran w postaci oplotu. Teraz przy stronie przetwornika przewody z masą wiszą w powietrzu - niestety nie pomyślałem :( i nie przewidziałem więcej pinów masy.

pozdrawiam tn

Reply to
ThomasN

Po skróceniu przewodu łączącego atmege z przetwornikiem z 22cm do 7cm o dziwo znowu zaczęły się często pojawiać błędy. A przewód różnił się tylko długością. Pomyślałem, że pewnie zmniejszyły się pojemności do masy w liniach i dolutowałem kolejne kondensatory na wejściu przewodu tak, że teraz mam filtr dolnoprzepustowy R=2k2, C=30p. Poprawiło to działanie układu, ale od czasu do czasu błędy są. Większych pojemności chyba już nie ma sensu dawać (chyba, że za przewodem). Pozostaje więc programowa obsługa błędów.

pozdrawiam tn

Reply to
ThomasN

wszystkie rezystory są po stronie atmegi niestety i po tej też stronie są kondensatory, za wyjątkiem linii dataout - tam nie dałem kondensatora, bo nie mam jak go przylutować po odpowiedniej stronie rezystora. Wiem, że rezystor od linii dataout powinien być przy przetworniku, ale to jest błąd projektu i tyle (projekt też ja robiłem, czyli nie mam na kogo zrzucić odpowiedzialności ;) ). Dałbym kondensator po stronie przetwornika, ale nie wiem jaki. Ścieżka od przetwornika do goldpinu to jakieś 2cm rezystancja tej ścieżki jest na pewno po niżej 0,1Ohma.

pozdrawiam tn

Reply to
ThomasN

W symulacji dobrze to wygląda. Z R=2k2 i C=30p czas narastania zbocza to jakieś 150ns. Bez tych rezystorów filtru LP praktycznie nie będzie. Z R=100 i C=660p efekt powinien być ten sam. Poeksperymentowałbym gdybym miał więcej czasu.

pozdrawiam tn

Reply to
ThomasN

dokładnie.

:( Błędnie założyłem, że problemy sprawia tylko atmega. Działanie układu sporo się poprawiło, czyli jest w tym choć trochę prawdy. Mogę teraz pójść dwoma ścieżkami:

  1. (myśle, że lepsza) przeciąć ścieżkę DOUT przy przetworniku i wstawić rezystor 2k2 i za nim 30p. W ten sposób wszystkie linie będą tak samo zabezpieczone.
  2. wywalić wszystkie rezystory i kondensatory. Sprawdzić jak będzie działać i ewentualnie wstawić tylko kondensatory 600p w odpowiednich miejscach.

Która rozwiązanie będzie lepsze?

Już sobie przygotowałem na lipiec sporo artykułów i literatury o EMI (w tym EMC for Product Designers, Williamsa ) i myśle, że później nie będę takich głupich błędów w projektowaniu robił.

pozdrawiam tn

Reply to
ThomasN

Żeby linie nie siały zakłóceniami i się wzajemnie nie zakłócały. Im mniejszy czas narastania zboczy tym szersze pasmo sygnał zajmuje, a mi większa częstotliwość składowych tym łatwiej cross-talk następuje. Poza tym tak mi proponowano, żeby z filtrem spróbować i widać to działa.

pozdrawiam tn

Reply to
ThomasN

spróbuje

pozdrawiam tn

Reply to
ThomasN

to powinno śmigać, zobacz na oscyloskopie jak strome

Dolutowałem kondensatory 10p za rezystorami 2k2 i niczego to nie zmieniło. Obawiam się, że to nie przewody są winne tylko layout - ścieżki są cienkie (10milsów) i blisko siebie. Poza tym w układzie jest dużo podstawek i przejściówek SMD -> DIP. Z tego wszystkiego to tylko ekranowanie przewodów zasilających przyniosło pewne pozytywne rezutlaty.

pozdrawiam tn

Reply to
ThomasN

ThomasN napisał(a):

Spróbuj z większymi wartościami. Spróbuj z tasiemką gidze na każdy sygnał przypada własny przewód GND. Coś na kształt takiej przeplatanki:

1-GND-2-GND-3-GND-...-n-GND

Masa dołączona po obu stronach, po taśmie puść też zasilanie ADC.

Przy clk=125kHz, to trzymając się kilku prostych reguł nie ma możliwości aby to nie działało.

Pozdro

Reply to
Luk

Sobie to przesymulowałem i wyszło mi, że takie wystarczą, żeby narastanie zbocza trwało ns, a nie ps. Ale spróbuje oczywiście.

Podłączyłem taśme typu 1-GND-2-GND-3-GND-...-n-GND i rzeczywiście działanie układu znacznie się poprawiło :D Jeszcze od czasu do czasu błędy się zdarzają, ale teraz widze przynajmniej, że można z tym walczyć. Na płytce mam wyprowadzony tylko jeden pin masy przy złączu i musiałem zrobić zwore wiszącą w powietrzu, ale i tak działa. Co do podłączania masy z obu stron to nie wiem czy to dobry pomysł. Z tego co czytałem to z dwóch stron podłącza się ekran do obudowy urządzeń. Żeby dwie płytki w jednym urządzeniu tak łączyć to nie słyszałem jeszcze.

pozdrawiam tn

Reply to
ThomasN

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.