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

atmega162 ft232rl i krzaki na wyjściu

ja_fryta 03 Lut 2010 16:42 4157 50
  • #1 7637501
    ja_fryta
    Poziom 19  
    Witam
    Moj problem wyglada nastepujaco
    Moja atmega poprzez ustart0 i ft232rl jest podlaczona do komputera przez usb
    Problem moj polega na tym ze czasami (moze nawet czesciej :P) na wyjsciu mam krzaki
    Przypadkowo odkrylem ze jak do ukladu jest podlaczona druga masa z drugiego usb lub com-a (tylko masa) to krzaki znikaja
    Sprawdzalem miernikiem i wszystkie polaczenia i napiecia wydaja sie byc ok

    O ile jestem w stanie zrozumieć brak polskich literek, to braku znaków przestankowych nie zdzierżę.
    Proszę poprawić treść wiadomości - regulamin p.15
    [zumek]
  • #3 7637679
    Terminator
    Poziom 23  
    Chyba logiczne jest,że masa Twojego układu i komputera muszą być połączone. Wykorzystujesz pin nr 4 z gniazdka USB i łączysz z masą swojego układu (zapewne masz zewnętrzne zasilanie Twojej płytki a z USB wykorzystujesz D+ i D- )
  • #4 7637720
    ja_fryta
    Poziom 19  
    Oscylator zew 8Mhz na nogach po 22pF
    Predkosc 19200-N-2
    Na raz wysylam max 20 znakow ASCII
    Zasilanie z USB
  • #5 7637887
    Balu
    Poziom 38  
    Jeśli masz połączone masy dobrze, to ja nie wiem w czym może być problem (jak rozumiem baud masz wyliczony z założonym minimalnym błędem *w/g DSa* bo nie chce mi się tam zaglądac.
  • #6 7638013
    ja_fryta
    Poziom 19  
    Tak wyliczone dobrze jest.
    Opisze jeszcze dokladniej problem bo zauwazylem cos jeszcze.
    Atmega162 na ustar1 odbiera informacje od atmegi8 ktora znajduje sie na innym pcb.
    Czyli w sumie mam 3 pcb
    1. ft232rl
    2. atmega162
    3. atmega8
    polaczone jest przewodami pc -> ft232 -> atmega162 -> atmega8

    Wysylanie informacji jest inicjowane poprzez przerwanie na atmega162 ktora otrzymuje od atmegi8 na rx.
    Dodaje do informacji z 8 swoje i wysylna do pc.
    Fragment gdzie zawarte sa informacje z 8 zawieraja krzaki.
    Jak sie podlacze bezposrednio do 8 poprzez ft232 do jest ok.
    Teraz najciekawsze jak podlacze mase z pcb od ft232 do atmega8 to wszystko dziala dobrze.
    Sprawdzalem czy nie ma gdzies przerwy pomiedzy atmega162 i atmega8 i na 100% nie ma.
    Wiem ze jest to dziwaczne sam jestem zaskoczony ale pomocy :( ...........
  • #8 7638244
    ja_fryta
    Poziom 19  
    Zrobilem jak pisales nie pomoglo.
    Tylko pociagniecie masy od ft232 lub bezposrednio z usb do atmega8 rozwiazuje problem ???
  • #9 7638477
    mirekk36
    Poziom 42  
    ja_fryta napisał:
    Zrobilem jak pisales nie pomoglo.
    Tylko pociagniecie masy od ft232 lub bezposrednio z usb do atmega8 rozwiazuje problem ???


    to jak ty masz to zrobione normalnie - bez masy ?????? i przez tyle czasu zastanawiasz się dlaczego bez połączonych gdzieś mas są problemy - za to dziwisz się, że znikają gdy łączysz masy ????

    Może weź ty rozrysuj jakiś chociaż poglądowy schemat tego co robisz bo z takimi opisówkami to dochodzenie do prawdy zajmie jeszcze sporo czasu ;)
  • #11 7638744
    ja_fryta
    Poziom 19  
    Tu mnie masz miedzy ft232 a mega162 byl wtyk.
    Wlutowalem na stale i narazie dziala.
    Zobaczymy za chwile potestuje to 30 min bo juz dzisiaj mialem taka sytuacje ze wydawalo mi sie ze juz jest ok - nie chce narazie zapeszac.
    Napisze co i jak, jak juz bede pewny ze to to.
  • #12 7638761
    _Robak_
    Poziom 33  
    Uwierz mi, jak nie miałeś mas połączonych i teraz działa to już będzie działać :> Ale tak pisałeś te posty, że z jednych wynikało że masz masy połączone a z drugich, że nie. Cały czas myślałem, że są połączone :>
  • #13 7638845
    mirekk36
    Poziom 42  
    Dla mnie cały czas wynikało że autor nie ma mas połączonych - widać to było po dużym zdziwieniu co drugi post, że gdy przypadkowo łączy masy to nagle (nie wiedzieć czemu wg autora ) działa ;) .... a gdy rozłącza masy - czyli wg niego przywraca "normalne" warunki pracy - to znowu coś szwankuje

    Teraz zresztą też maluje się na jego twarzy wielkie zdziwienie i powątpiewanie, że jakaś tam masa mogła być przyczyną aż takich problemów.
  • #14 7638889
    ja_fryta
    Poziom 19  
    mirekk36 napisał:
    Teraz zresztą też maluje się na jego twarzy wielkie zdziwienie i powątpiewanie, że jakaś tam masa mogła być przyczyną aż takich problemów.


    Zebys wiedzial :P

    Nielogiczne mi sie wydawalo to ze skoro sprawdzam miernikiem i jest przejscie, napiecia sa ok a to nie dziala ...... masakra :D
  • #15 7639118
    acid12
    Poziom 21  
    podepnę sie do tematu łączenia kilku płytek.

    Czy przy wykorzystywaniu transmisji RS-485 ze specjalnymi układami np max485, muszę ciągnąć 3 sygnał GND, czy wystarczy kabel 2-żyłowy (różnicówka na sygnałach A, B) ??

    używałem już rs-485, ale zawsze łączyłem też płytki tak, że i GND i VCC były wspólne i zastanawiam się czy mogę to ominąć
  • #17 7639453
    acid12
    Poziom 21  
    zrobiłem przed chwila mały eksperyment.

    Mam 1 płytke z ukłądem ft232rl i podlaczone póżniej max485,
    wyprowadzone na złącze mam sygnały A,B, GND oraz VCC (GND i VCC z USB)

    i podlaczyłem z druga płytką max485 -> atmega8 tylko poprzez A,B (wczesniej podłaczałem tez gnd i vcc a teraz nie) masa i vcc były stabilizowane z transformatora 230->12 i nastepnie na 5V

    i transmisja bezproblemowo, odczytywałem wszystko na konsoli na PC co Atmega wypisywała.

    patrzałem na note max485, sygnał wyjsciowy jest interpretowany jako roznica pomiedzy A i B. GND nie jest wykorzystywany nigdzie przy interpretacji stanu.

    "MAXIMUM RATINGS:
    Driver Output Voltage (A, B)...................................-8V to +12.5V
    Receiver Input Voltage (A, B).................................-8V to +12.5V"

    teoretycznie nie przekroczyłem tych zakresów, ale pytanie skąd to wiadomo, bo przecież GND były różne.

    Ja w tej chwili zaryzykowałem z układami i byłem gotowy je poświęcić, nic sie na szczęście nie stało, ale wolałbym żeby wypowiedział się ktoś kto wie na 100%.
  • #18 7640161
    mirekk36
    Poziom 42  
    acid12 --> tu chodzi o coś innego raczej - jak podłączysz takie dwa urządzenia np na różnych fazach itp - to w pewnym momencie - zobaczysz tylko tzw "siwy dym" ;) a nawet jeśli będzie na tej samej fazie to gdy potencjały mas na obu końcach będą się różnić - to z kolei zaczną rosnąć zakłócenia jak u autora tego wątku przy zwykłych RSach
  • #19 7640252
    acid12
    Poziom 21  
    hm, byc może nie popaliło się wszystko bo wszystko było zasilane z jednej sieci.

    mnie zastanawia, sieć przemysłowa Profibus (i nie tylko) też działa w warstwie fizycznej na rs-485, ale kable połączeniowe są różne, 4 oraz 2 żyłowe.

    zazwyczaj urządzenia są zasilane z tego samego źródła, ale na 100% są przypadki gdy urządzenia / zasilacze są od siebie oddalone, a nawet w innych strefach (kontrola, maszyna, strefa wybuchowa etc)

    Cytat:
    PROFIBUS-DP Specifications
    Physical Layer: RS-485
    Cabling: One shielded twisted pair for signal
    and one pair for 24 VDC supply


    wyszukałem w necie coś takiego http://www.profibus.com/index.php?id=64#12
    Cytat:
    Why is no signal ground/reference wire used in PROFIBUS cables?

    To ensure easy handling a signal 'ground' wire is not used by PROFIBUS. However, it is recommended to isolate the interface circuit from the local ground (e.g. using opto couplers) to reduce possible common mode voltages between transceivers.


    więc zalecana jest izolacja galwaniczna interfejsu (polaczenia profibus) od reszty sterownika (ukłądu), ale działa też i bez izolacji.

    tutaj http://kablespecjalistyczne.pl/index.php?d=159 są też pdfy ze specyfikacją kabli, specjalne dla Profibus, wszystkie 2-żyłowe, więc teoretycznie GND nie trzeba łączyć
  • #20 7640330
    Konto nie istnieje
    Poziom 1  
  • #21 7640348
    acid12
    Poziom 21  
    jezeli masy beda sie roznic, to sygnaly A,B beda sie roznic wzgledem tych 2 mas, ale roznica A-B bedzie stała niezaleznie wzgledem jakiego poziomu GND sobie wybierzemy, tj chyba zasada działania i niezawodnosci rs485.

    mozesz rozwinać, dlaczego
    Cytat:
    ale tych -8…12.5V to "latanie" nie przekroczy.
  • #22 7640468
    Konto nie istnieje
    Poziom 1  
  • #23 7640595
    sinuh3
    Poziom 17  
    acid12 RS485 to transmisja w której bada się różnicę napięć pomiędzy jednym przewodem a drugim, a nie względem masy. Więc masa jest nie potrzebna - w teorii. Co do praktyki, to już się koledzy wypowiedzieli. Ja tylko z praktyki laboratoryjnej powiem, że nawet dwa urządzenia zasilane z tej samej sieci, potrafią mieć gnd na różnych poziomach. Może to zakłócać transmisję, więc połączenie gnd urządzeń pomaga o ile prąd wyrównawczy nie będzie za duży.
  • #24 7640701
    acid12
    Poziom 21  
    czyli w praktyce najlepiej stosować optoizolacje bo prąd wyrównawczy może być b.duży.

    żeby taką zrobić, układy interfejsu powinny być zasilane z innego źródła niż same dwa urządzenia, tak ??

    są dostępne jakieś układy do transmisji które mają to zintegrowane?, ja w tej chwili nie potrafie wymyslić innego sposobu, niż ciągnąc wraz z A,B również sygnałów GND_rs i VCC_rs wspolnych dla wszystkich interfejsów w sieci ale niezależnych od zasilania układów docelowych.

    Ale wydaje mi się że musi istnieć inne rozwiązanie patrząc na zamieszczony wyżej przykład sieci profibus, gdzie oni zalecają 2żyły na sygnały oraz 2żyły na zasilanie układów ale nie pisza nic o dodatkowym zasilaniu interfejsów tylko polecają je wyizolować.

    może ktoś pomóc w tej kwestii?


    edit:

    tutaj https://www.elektroda.pl/rtvforum/topic935577.html#4785996
    toczyła sie dyskusja o stosowaniu 5 żyły (rs485 full-dupleks + COMMON)
    jest tam kilka linków do standardów etc, koledzy sie spierali, byl argument, że wystarcza aby oba układy były porządnie uziemione, i uziom robi wtedy za żyłę 'common', ale tam koledzy też doszli do momentu o optoizolacji i sie wątek urywa ...
  • #25 7640801
    mirekk36
    Poziom 42  
    acid12 --> tak na prawdę wszystko zależy do czego i gdzie potrzebujesz RS485. Można się spierać i spierać a bez masy i tak będą problemy jakby nie patrzeć. Dlatego jedynym sensownym rozwiązaniem bywa optoizolacja układów - przecież można to zrobić - tyle że koszty już troszkę wzrastają.

    Reasumując jak się robi nawet nieco rozleglejszą sieć RS485 ale mam tu na myśli powiedzmy do 60m (bo ja taką sobie w domku robiłem) to gdy poza sygnałami A oraz B puściłem także zasilanie GND oraz +12V przez skrętkę to po wsze czasy miałem zapewnioną świetlaną przyszłość bez żadnych zakłóceń.
  • #26 7644750
    acid12
    Poziom 21  
    mirekk36 napisał:

    Reasumując jak się robi nawet nieco rozleglejszą sieć RS485 ale mam tu na myśli powiedzmy do 60m (bo ja taką sobie w domku robiłem) to gdy poza sygnałami A oraz B puściłem także zasilanie GND oraz +12V przez skrętkę to po wsze czasy miałem zapewnioną świetlaną przyszłość bez żadnych zakłóceń.


    ja mialem do zrobienia komunikacje na 20m, ale też puściłem zarówno sygnały i GND i VCC jak pisałem wyżej, wszystko działało bezproblemowo

    w toku dyskusji chciałem jednak dowiedzieć jak sprawa wygląda na dłuższe dystanse, bo jednak rs485 pokrywa w teorii 1200m bez reapeterów, ciągnąć zasilanie (DC) na takim dystansie (nawet połowie) to też niezłe zadanie, spadki napięcia na przykład, prościej po prostu zasilać niezależnie.
    każda żyła w kablu to wzrost ceny kabla (wiem że skrętka 'ethernetowa' jest jakimś rozwiązaniem)

    odnośnie optoizolacji na transoptorach (ja będę się zastanawiał, proszę o poprawienie toku myślenia) ...

    każdy sygnał A,B musi wejść do 'swojego' transoptora, a sygnał z układu wychodzi już dalej na płytkę.
    problem w tym, że ten układ (transoptor) też trzeba podłączyć, ze strony wyjściowej nie ma problemu GND (Vcc) całej płytki, ale co po stronie wejścia ?
    np sygnał A podłączamy pod jedną elektrodę diody, a drugą elektrodę do ...(?) no właśnie gdzie?
    na 100% nie do tego samego GND, bo to już by nie była wtedy optoizolacja przecież, musimy chyba mieć jakiś 3 sygnał (np o nazwie) COMMON, tylko czy on ma być gdzieś po środku drogi miedzy 2 transeiverami uziemiony, czy 'wisieć w powietrzu' ??

    powiedzmy dla (pewnego) uproszczenia, że interesuje nas full-duplex, niezależne 2 żyły w każdą stronę, żeby nie pokręcić kwestii przełączania żył w kierunku odbioru i transmisji ... na razie spokojniej :)
  • #27 7644913
    rpal
    Poziom 27  
    kolega nic nie pisze jakie ma startowe ustawienia na pinach od atmega162 odpowiedzialnych za transmisję po rs232. Generalnie jest tak że ich stan jest ignorowany ale bezpieczenij jest ustawić je jako wejściowe, tak TXD jak RXD. Moze to jest powód ?
    Wtrąciłbym jeszcze jedno, w swoim czasie testowałem coś podobnego jak kol.autor z tą tylko różnicą że z PC-tem łaczyłem przez max232. Nie miałem najmniejszych problemów z transmisją PC-uP jak i i uP-uP. Mało tego dwa atmele ganiały z maksymalną prędkością czyli 230400 bodów bez żadnych buforów na swoich we/wy bo poziom napięć był TTL. zatem myślę że problem tkwi w niewykrytym wadliwym połączeniu.
  • #28 7645099
    hotdog
    Poziom 26  
    Zrobił się trochę off top o rs485, ale chciałem tylko 3 grosze wrzucić.

    Najlepszym IMO wyjściem przy stosowaniu optoizolacji jest zasilanie konwertera oraz transoptorów ze wspólnego źródła puszczonego po skrętce (po 4 lub 6 przewodach w zależności od tego czy 2 są używane czy 4 na transmisję). Można też zastosować ADM2483 który ma zintegrowane transoptory i pobiera tylko 2,5mA.

    Jest jeszcze układ MAX1480 który zawiera w sobie transformator i nie trzeba ciągnąć oddzielnego zasilania... ma on jednak 2 wady jest wielki i cholernie drogi. Do tego jest pojedynczy (halfduplex).

    Pozdrawiam
  • #29 7689022
    ja_fryta
    Poziom 19  
    Witam ponownie
    Chcialem rozwinac swoje pytanie dalej
    Miedzy atmega162 a rs232 dalem 5 m kabla i (Vcc, GND, Tx, Rx) i krzaki wrocily
    Wszystko pomiedzy jest polaczone galwanicznie
    Na metrowym ich nie ma a na dluzszzych sie juz pojawiaja
    Zauwazylem tez ze jak podam dodatkowy przewod masy od rs232 do atmega8 (nawet 15m kablem) to krzaki znikaja
    wtf ??

    Na jaka odleglosc mozna przeslac sygnal ttl ?
  • #30 7689679
    acid12
    Poziom 21  
    na 5m na pewno można,
    a skoro przy podaniu dodatkowej masy znikają krzaki i wszystko śmiga, to ja stawiam, że masz złe połączenie GND w 'kablu 5m'
REKLAMA