Elektroda.pl
Elektroda.pl
X
Arrow Multisolution Day
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[ATMEGA]Bascom . RS485 , LCD i zakłócenia

adambehnke 17 Kwi 2010 20:56 12020 65
  • #31 17 Kwi 2010 20:56
    mirekk36
    Poziom 42  

    A czy ja piszę, że jest niewłaściwy ????? Ten generator co masz nadaje się do odblokowania procka gdy fusami ustawiłeś taktowanie na zewnętrzny generaotr TTL, ale jeśli ustawiłeś niechcąco na zewnętrzny oscylator RC (bo też przecież można - tylko trza czytać notę PDF ;) ) - to wtedy taki generator jak twój może nie uruchomić procka na wejściu XTAL1

  • Arrow Multisolution Day
  • #32 17 Kwi 2010 20:58
    atom1477
    Poziom 43  

    Ja myślę że mimo tego uruchomi procka.

  • Arrow Multisolution Day
  • #33 17 Kwi 2010 21:00
    mirekk36
    Poziom 42  

    Ja robiłem próby i czasem generator TTL potrafił dobrze taktować procka gdy fuski były ustawione na "Ext. Osc. RC" a czasem nie i pomagało tylko podłączenie zewn oscylatora RC.

  • #34 17 Kwi 2010 21:03
    atom1477
    Poziom 43  

    Chm, no to dziwne. Z budowy wejścia XTAL1 wyszło by że zawsze powinno to zadziałać.
    No to w takim razie można by spróbować podłączyć te elementy RC.

  • #35 17 Kwi 2010 21:08
    adambehnke
    Poziom 24  

    Jestem pewnie natrętny (a właściwie zdesperowany) , ale czy nie Macie w swoich zbiorach jakiegoś prostego-sprawdzonego schematu takiego oscylatora?
    Czy z tym zewnętrznym oscylatorem chodzi Wam może o rezystor i kondensator?

  • #36 17 Kwi 2010 21:32
    atom1477
    Poziom 43  

    Chodzi o rezystor i kondensator. Zewnętrzny kompletny generator RC w niczym przecież by się nie różnił od generatora CMOS, TTL, generatora na procesorze czy generatora kwarcowego ;)
    Tylko że właśnie zobaczyłem że ATMega256 nie ma czegoś takiego jak External RC Oscillator.

  • #37 17 Kwi 2010 21:59
    adambehnke
    Poziom 24  

    No to mam pozamiatane .

  • #38 17 Kwi 2010 22:13
    atom1477
    Poziom 43  

    No niby programator równoległy Ci zostaje. Ale ja niestety żadnego nigdy nie zbudowałem więc żadnego Ci nie polecę.

  • #39 17 Kwi 2010 22:15
    adambehnke
    Poziom 24  

    Zauważyłem że atmega troszkę mocniej się grzeje niż zwykle .
    Dam sobie spokój i zmienię procesor bo zaraz się nerwicy nabawię .

  • #40 17 Kwi 2010 22:22
    atom1477
    Poziom 43  

    No właśnie o to miałem pytać.
    Ale dużo mocniej? 50*C osiąga?

  • #41 17 Kwi 2010 22:23
    adambehnke
    Poziom 24  

    nie , ma dokładnie 41 stopni (zmierzyłem to innym układem z DS18B20).
    Chyba wiem co zrobię. Mam kilkanaście błędów na PCB i nie ukrywam mocno mnie drażnią. Przeprojektuję płytkę ,wyrzucę co zbędne oraz dołożę to co mi brakuje i zamówię nową :D .Przy okazji nie będę musiał walczyć z wylutowywaniem padłej atmegi. Zresztą ta miała już na koncie z 4k programowań jak nie lepiej.

  • Pomocny post
    #42 18 Kwi 2010 06:27
    J_Bravo
    Poziom 27  

    Jeszcze jedno. Na czas wyświetlania grafik wyłącz wszystkie przerwania.

  • Pomocny post
    #43 18 Kwi 2010 10:04
    atom1477
    Poziom 43  

    Wyświetlanie grafik trwa długo i nie można wtedy wyłączać przerwań. To znaczy można, ale wtedy cała reszta programu przestanie działać.

  • #44 18 Kwi 2010 10:15
    adambehnke
    Poziom 24  

    W sumie wyłączenie przerwań nie wpłynie u mnie znacząco na działanie programu gdyż nie mam jakichś funkcji w programie którym niewielkie opóźnienie by zaszkodziło. Tyle tylko że ubiłem procesor i zajmie kilka dni zanim go zmienię.

    Zawinił program Khazama. A używam go tylko dlatego że obsługuje USB-aps.
    Zapewne się orientujecie jakiego programatora i programu użyć aby programowanie było najszybsze. U mnie ładowanie 120-140k do procka trwa z 20 sekund. A przy większym programie wolę nie myśleć.Oczywiście program w Bascom-ie niestety.

  • Pomocny post
    #45 18 Kwi 2010 16:41
    J_Bravo
    Poziom 27  

    adambehnke:
    programator ze strony: http://psoc.pl/?10,usb-isp-prog-i
    USB-ISP Prog I programuje się bezpośrednio z pod Bascoma. Szybko i bezbłędnie.

    atom1477:
    wlasnie o to chodzi. podczas wyświetlania włącza sie przerwanie i LCD idzie w krzaki.

  • #46 18 Kwi 2010 19:11
    atom1477
    Poziom 43  

    J_Bravo napisał:
    atom1477:
    wlasnie o to chodzi. podczas wyświetlania włącza sie przerwanie i LCD idzie w krzaki.

    Nie chodzi o to. Chodzi o to że coś jest źle w kodzie skoro przerwanie powoduje pójście LCD w krzaki.
    Przerwanie samo w sobie nie może powodować iście LCD w krzaki bo na tym polega idea przerwania żeby nie zakłócało działania programu głównego. A jeżeli zakłóca, to tylko z powodu jego złego wykorzystania.
    Ale w tym przypadku nie wiadomo czy tak jest. Nawet trochę wiadomo że tak nie jest bo adambhenke przyznał że przerwań ma mało i wywołują się one rzadko. A mimo to krzaki na LCD pojawiają się od razu.

  • #47 18 Kwi 2010 21:27
    adambehnke
    Poziom 24  

    Mi się jednak po dłuższym zastanowieniu wydaje że problemem może być ten mój nowy moduł. Zapomniałem dodać że miałem wcześniej podłączony co prawda PC poprzez RS485 (poprzez FT232RL/Max485) i problemów nie miałem. A po podłączeniu nowego urządzenia (dokładnie jest to modem GSM) pojawiły się problemy. Czy jest możliwe aby po linii RS przechodziły zakłócenia jakie może wywoływać modem GSM(dokładnie telefon siemens M50) ? Ja jestem skłonny w to uwierzyć. Zamówię jutro nową płytkę wraz z dwoma lub nawet trzema nowymi modułami na RS485 i wtedy to przetestuję. No chyba że nie uda mi się dzisiaj dokończyć płytek (żonka mi coś się rozchorowała-właśnie wróciłem ze szpitala) to zamówię we wtorek.

  • #48 18 Kwi 2010 21:38
    atom1477
    Poziom 43  

    Ja na mojej słynnej 2-stronnej płytce pod ARMa po której ludzie na elektrodzie osiwieli i do tego wyłysieli jak ją zobaczyli, RS485 nie działał nawet na 5m.
    Żadne terminatory i inne cuda nie pomagały jak nie miałem uziemionej masy.
    Więc u Ciebie ten moduł też może powodować problemy. Ale taki moduł z telefonu to inna sprawa. Nawet jak Chiński to chyba jakieś normy EMI spełnia, w przeciwieństwie do mojej płytki.
    Po drugie to u mnie nie działał sam RS485 (to znaczy miałem przekłamania w danych). Ale obydwa urządzenia już tak.
    A u Ciebie jest odwrotnie. Jak by nie było coś z tym modułem może być. W końcu zakłócenia GSM nie kończą się na płytce modułu GSM.
    Rozumiem że masz tam moduł GSM sterowany przez UARTa i procesor konwertujący to na RS485 (sterujący kierunkiem transmisji)?

  • #49 18 Kwi 2010 22:03
    adambehnke
    Poziom 24  

    Tak dokładnie steruję go poprzez UART atmegą 128 i potem przesyłam poprzez MAX485CN .Kierunkiem transmisji steruje oczywiście atmega.Generalnie urządzenie jest cały czas na nasłuchu.Nawet jak przyjdzie jakieś połączenie lub sms to także siedzi cicho.Odpowiada dopiero po odebraniu odpowiedniej komendy poprzez RS. I dziwne że dane rozpoznaje i przesyła bezbłędnie.Praktycznie 99/100 komend rozpoznaje poprawnie. Nawet mój moduł w którym jest wyświetlacz graficzny sprawiający problemy wysyła i rozpoznaje odebrane dane poprawnie. Problem jest właśnie tylko w momencie kiedy nacisnę jakiś klawisz menu i program wykona skok do procedury ładującej obrazek.W tym momencie ekran bieleje. I sprawdzałem 1000 razy i dzieje się tak nawet kiedy sieć RS milczy o to w obu kierunkach.Tak jakby tem moduł gsm powodował swoją obecnością jakieś stałe zakłócenie czy coś w tym stylu. W sumie jak Chcecie mogę wrzucić jego schemat i kod. Ale nie jest ukończony jeszcze i wygląda ...

    Tu Macie schemat modułu z telefonem(problem na nim jest taki że pracująca w nim atmega 128 jest w adapterze DIP i na schemacie są tylko złącza pod nią(ale ładnie opisane).:

    [ATMEGA]Bascom . RS485 , LCD i zakłócenia

    A właśnie zapomniałem o tym. Problem występował nawet jeśli podłączyłem ze sobą same tylko moduły ten z LCD i GSM przewodem o długości może z 20 cm. Więc problemem jest na 100000% ten nowy moduł lub też jest jakiś błąd w module z LCD. Ale jak podłączam jakikolwiek inny moduł w miejsce tego GSM to problem znika. I o co w tym chodzi...

  • #50 18 Kwi 2010 22:18
    atom1477
    Poziom 43  

    No to prosta sprawa: odłącz moduł GSM od tego modułu.

  • #51 18 Kwi 2010 22:30
    markosik20
    Poziom 33  

    adambehnke napisał:
    Problem jest właśnie tylko w momencie kiedy nacisnę jakiś klawisz menu i program wykona skok do procedury ładującej obrazek.W tym momencie ekran bieleje.


    I to jest dowód na błąd w programie. Skąd wiesz że RS milczy? Może lecą jakieś śmieci a twoja funkcja obsługująca tego nie uwzględnia? Podłącz się pod Rx i sprawdź co się tam dzieje..albo najlepiej sprawdź co się dzieje na magistrali RS485.
    Osobiście złożyłem dużo układów na RS485 w rożnych konfiguracjach i miałem tylko jeden przypadek problemu sprzętowego gdzie po prostu max485 za krótko się przełączał z nadawania na odbiór.
    Samego RS485 dosyć ciężko zakłócić.

  • #52 18 Kwi 2010 22:36
    adambehnke
    Poziom 24  

    Wiem że milczą gdyż podglądam sobie co się dzieje w sieci poprzez terminal na pc dzięki FT232RL/MAX485. Dodatkowo podpięłem sobie Ledy aby widzieć co się dzieje w sieci jak zaczęły dziać się cyrki z LCD. Nie kłócę się że nie mam błędu w programie. Możliwe że jest ale w tym momencie procek w tym urządzeniu jakoś się na mnie obraził i mnie "olewa" jak go chcę przeprogramować i muszę mu połamać kulasy i wlutować nowego w jego miejsce.

    Odłączenie modułu to prosta sprawa. Tylko że jest mi potrzebny :) A jak zrobię nowy to zapewne od strony elektronicznej w ten sam sposób.

  • #53 18 Kwi 2010 22:53
    atom1477
    Poziom 43  

    Chodzi mi o odłączenie modułu GSM od procesora. Sam procesor niech siedzi dalej i nadaje po RSie.

  • #54 18 Kwi 2010 23:12
    adambehnke
    Poziom 24  

    To muszę jeszcze lekko zmienić program w module gsm gdyż jeśli program wykryje że modem gsm nie odpowiada to będzie przeprowadzał sekwencję włączania telefonu ,czekania na pytanie o pin itp. i nie wyjdzie z tej procedury dopóki telefon nie zostanie poprawnie uruchomiony.Czyli program będzie zatrzymany niejako. Ale jak mówię sprawdzę wszystko jak naprawię moduł główny.

  • #55 24 Kwi 2010 18:01
    adambehnke
    Poziom 24  

    Wymieniłem procesor w jednostce głównej i mogę przystąpić do testów.

    Chyba jednak nie rozumiem zasady działania sieci rs485.

    Mam w swoim systemie jednostkę główną, zasilacz oraz moduł gsm. Wszystkie mają wbudowane układy MAX485CN.
    Kiedy do modułu głównego podepnę zasilacz to komunikuja się aż miło patrzeć. Ale kiedy podepnę sobie moduł gsm , transmisja siada całkowicie i nie komunikują się nawet dwa urządzenia które działały poprawnie.
    Sprawdzałem płytkę modułu gsm chyba ze 100 razy. Testowałem ścieżki na płytce elektrycznie i wszystko jest ok. Zmieniłem nawet w programie modułu aby cały czas był tylko na nasłuchu i problem nadal jest nie rozwiązany.


    Edit:


    Mam rozebrany moduł gsm.
    Testuje sobie z odłączonym telefonem i procesorem. Ćwiczę sobie teraz komunikację tylko na kostce MAX485CN.
    Zatem:
    zrobiłem sobie taki układzik testowy wykonany tylko z kostki MAX485. Mam ją podłączone do sieci RS485 i mam bardzo dziwny efekt. Otóż w sieci jest w tej chwili tylko jedno urządzenie które nadaje co kilka sekund poleceniem Print słowo "test".
    Czyli jeśli do sieci podłączyłem kostkę MAX485 i podpięte mam linia A i B to na wyjściu TxD powinienem odebrać to co akurat jest nadawane w sieci. Ale tak nie jest.
    Nadaję z prędkością 9600 i podglądam sobie efekty w terminalu na PC. Dziwne bo na wyjściu Txd otrzymuje jakieś śmieci. Co prawda za każdym razem te same ale śmieci.
    Dla testu sprawdziłem sobie co idzie linią A i B i po przyłożeniu końcówki testowej z Coma z PC do linii B na terminalu ukazało się dokładnie to co akurat nadaje. Ale niestety na wyjściu z kostki TxD nadal mam śmieci. O co tutaj chodzi? Dodam że testowałem to na trzech kostkach MAX.

  • #57 24 Kwi 2010 21:03
    adambehnke
    Poziom 24  

    Mam wlutowane rezystory 560R. Transmisję przywróciłem dzięki własnie tym rezystorkom.Teraz walczę z kodem modułu gsm.Jestem coraz bliżej. Jak coś rozgryzę dalej to napiszę.

    Ale czy każdy mój moduł wyposażony w RS485 musi mieć te rezystorki? Czy wystarczy że zaopatrzyłem w nie mastera?

  • #58 24 Kwi 2010 21:50
    markosik20
    Poziom 33  

    adambehnke napisał:
    Dziwne bo na wyjściu Txd otrzymuje jakieś śmieci.


    A co "wisi" na TxD ?
    Podciągnięcie wystarczy zrealizować na jednym MAX485.

  • #59 24 Kwi 2010 21:57
    adambehnke
    Poziom 24  

    Nic nie wisi.Mam podpiete tylko Com-a z PC.

  • #60 24 Kwi 2010 22:11
    markosik20
    Poziom 33  

    adambehnke napisał:
    Nic nie wisi.Mam podpiete tylko Com-a z PC.


    Oczywiście COM jest na poziomie TTL ?