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

Atmega 8 komunikacja RS z PC

19 Mar 2011 21:26 3608 22
  • Poziom 10  
    Witam,
    posiadam przejściówkę USB > RS232 i chcę się skomunikować z ATMEGĄ 8 i PC.

    Mam taki problem, że jak piszę w konsoli cokolwiek to pojawia się to w konsoli prawidłowo, i po naciśnięciu ENTER pojawia się na LCD podłączonym do ATMEGI.
    Ale jak Atmega wysyła ciąg znaków to dostaję w 80% błędne znaki czyli np:
    "razdwa" zamiast "raz dwa". Proszę o jakąś radę, obawiam się że może to być wina przejściówki USB RS, przejściówka jest na sterowniku pl-2303.

    Kod: vb
    Zaloguj się, aby zobaczyć kod
  • Computer ControlsComputer Controls
  • Poziom 24  
    Schemat, kwarc, daj cokolwiek...
  • Computer ControlsComputer Controls
  • Poziom 10  
    Schematu nie mam. Atmega na wewnętrznym kwarcu 8Mhz niestety. Sądzę że to może być przyczyną, ale nie do końca rozumiem dlaczego właśnie kwarc. Ponieważ gdyby był to kwarc to raczej i odbiór z PC byłby fałszywy. A tak odbiór z PC na LCD atmegi jest OK. A nadawanie z Atmegi na PC jest błędne...
    Any idea?
  • Poziom 24  
    Czym odczytujesz dane z RS?
  • Poziom 10  
    Dane z RS odczytuję za pomocą terminala BASCOMA, lub za pomocą programu COM TEST. W obu przypadkach jest to samo...

    właśnie zrobiłem coś, zmniejszyłem prędkość do 4800 i działa, potem zwiększyłem do 19200 i też działa, a potem zwiększyłem do 38400 i też działa. Na tych prędkościach działa bez zarzutu, czyżby kwarce w przejściówce i atmedze nie współgrały przy 9200?
  • Poziom 42  
    Igor22 napisał:

    właśnie zrobiłem coś, zmniejszyłem prędkość do 4800 i działa, potem zwiększyłem do 19200 i też działa, a potem zwiększyłem do 38400 i też działa. Na tych prędkościach działa bez zarzutu, czyżby kwarce w przejściówce i atmedze nie współgrały przy 9200?


    A może zamiast takiego zdziwienia warto zajrzeć w końcu kiedyś na ostatnią stronę rozdziału UART w nocie PDF procka i porównać procenty błędów dla różnych prędkości i różnych częstotliwości taktowania ?????

    Wtedy wszystko stanie się jasne a na przyszłość kolega będzie już wiedział co od czego zależy, kiedy warto zastosować kwarc i jaki ? a kiedy można sobie go darować bo będzie działać na wewn. oscylatorze.....

    eeeeh.... taka podpowiedź przewija się setki jak nie tysiące razy na elektrodzie ;)
  • Pomocny post
    Poziom 32  
    To wcale nie wina kwarcu czy gen, wewn. ani też procentów od lat wielu robie "RS" na wewn. a przy transmisji 5 bitów to % mogą być jak we flaszce i bedzi edzialac.
    Przejsciówki nie działają na pośrednich wartosciach czyli na 9200 nie bedzie to wspolpracowac.
  • Poziom 10  
    Widać każdy ma trochę racji i składa się to do jednego.
    Mam jednak wrażenie, że kolega asembler dotknął sedna sprawy.
    Dziękuje za zaangażowanie. Pozdrawiam!
  • Poziom 42  
    asembler --> ty jak już coś powiesz ........ .......... to powiesz ;)

    po pierwsze o jakiej ty tu prdędkości 9200 piszesz ? gdzie o tym była mowa? (oj chyba za dużo tych flaszek z %-tami) ;)

    po drugie spójrz sobie na tabelkę z PDF'a do której chyba autorowi nie chce się do końca zajrzeć:
    Atmega 8 komunikacja RS z PC
    toż nieco wyżej napisał on ze zdziwieniem, że:

    Igor22 napisał:

    właśnie zrobiłem coś, zmniejszyłem prędkość do 4800 i działa, potem zwiększyłem do 19200 i też działa, a potem zwiększyłem do 38400 i też działa. Na tych prędkościach działa bez zarzutu, czyżby kwarce w przejściówce i atmedze nie współgrały przy 9200?


    wystarczy teraz skorelować sobie to z tabelką, którą tu specjalnie zamieszczam. Na zielono zaznaczone prędkości transmisji, które będą działać poprawnie przy standardowym U2Xn=0. Na pomarańczowo prędkość 28800 bo tu już jesteśmy na granicy błędu 2% a do tylu procent możemy sobie mniej więcej pozwolić maksymalnie dobierając jakąś prędkość. Najlepiej jednak żeby jej bezwględna wartość była równa 0. A na czerwono te, które nie będą mu poprawnie działać no i nie działały siejąc błędy transmisji - DZIWNE ? patrząc na tabelkę ze zrozumieniem?

    po trzecie faktem jest, że dużego znaczenia nie ma jeśli chodzi o %-błędów w przypadku gdy łączymy ze sobą np dwa takie same procki bo one się niejako zniosą i pomiędzy nimi będzie 0% ..... (stąd może twoje panie asembler doświadczenia że %-błędów może być jak we flaszce :) )

    ale jeśli już łączymy się po RS232 z innym urządzeniem np PC, który najczęściej ma bardzo precyzyjny zegar taktujący RS232 to już %-błędów zaczyna mieć DUŻE ZNACZENIE! A decydując się na %-błędów jak we flaszce - czyli po twojemu to masochizm na własną prośbę ;)

    Bo owszem - masz rację jakaś tam transmisja i przy 5% błędu będzie działać ..... ale ilość błędów zacznie rosnąć zgodnie z tym co tu pisze autor, i wcale nie jako jedyna osoba na świecie potwierdza tę oczywistą prawdę.

    Dodano po 11 [minuty]:

    aha a przejściówki zwykle działają bez problemów na niestandardowych prędkościach jak wspomniane przez ciebie 9200 ..... tyle że trzeba pamiętać o tym aby ustawić taką prędkość po obu stronach a nie tylko po jednej. ;)
  • Poziom 32  
    Spioszki ci jeszcze nie opadły wyraźnie jest napisane 9200 i to jest przyczna nie działania przejściówki. Patrzy wyżej wtwoim poprzednim poście.


    Co do reszty nie ma sensu dyskutować bo masz racje dla początkującego to czarna magia wiec lepiej nie wpuszczać w maliny gdzyz lepiej na kwarcu uruchamiać (sam tak robie) ale jak ktoś chce i nie umie połączyc PC z AVR na wewn. to ja bym w żadnym razie nie zabraniał. Takie połaczenie przy niekrytycznych transmisjach to tylko kwestia programowa.
  • Computer ControlsComputer Controls
  • Poziom 42  
    asembler napisał:
    Spioszki ci jeszcze nie opadły wyraźnie jest napisane 9200 i to jest przyczna nie działania przejściówki. Patrzy wyżej wtwoim poprzednim poście.

    .


    No tak - chyba mi jeszcze nie opadły ;) ... masz rację, że jest napisane 9200 ;) ale może uznałem że to literówka autora i miało być 9600 co wynika ze zdeklarowanej prędkości w kodzie programu. Jednak może i masz rację, że kolega uparł się jednak na 9200 ;)
  • Poziom 32  
    Właśnie po stronie AVR bardzo prosto każdy, ale od strony PC to nie wiem kto.
  • Poziom 11  
    Na wewnętrznym taktowaniu (ATMEGI NIE MAJĄ WBUDOWANEGO KWARCU!!!) raczej nie będzie poprawnie działać - testowałem na 4 egzemplarzach. Wypowiedzi, że błąd będzie mały i komuś poszło radzę włożyć między bajki - możliwe że miał fart co do egzemplarza (zakładając dobrą kalibrację fabryczną, temperatura i napięcie zasilające stabilne itd.)

    Z PC na niestandardowych szybkościach też nie będzie komunikacji (wątpię by dało się to obejść - chyba wszystkie UARTy tak mają). Co innego Atmega---Atmega (oczywiście z zewnetrznymi kwarcami), jeśli ustawisz na obu przykładowo 9317 b/s to pójdzie. Nie zapomnij tylko ustawić flagi: multiprocessor communication.

    Do komunikacji z PC konieczne jest zainwestowanie w rezonator kwarcowy + obowiązkowo dwa kondensatory odsprzęgające, zwykle jakieś 22pF (szczegóły w nocie katalogowej kwarcu).

    A... mialem problemy z komunikacja po RS232 na podobnej przejściówce (Linux) ale nie miałem czasu na zabawę dłużej niż godzinę więc w tej kwestii się nie wypowiadam.

    Powodzenia!
  • Poziom 42  
    percol napisał:
    Na wewnętrznym taktowaniu (ATMEGI NIE MAJĄ WBUDOWANEGO KWARCU!!!)

    Pewnie, że nie mają bo kwarcu się nie wbudowuje ;) ... za to mają wewnątrzny oscylator RC.


    percol napisał:
    raczej nie będzie poprawnie działać - testowałem na 4 egzemplarzach.

    No to raczej nie będzie poprawnie działać ? czy nie będzie poprawnie działać - może się kolega zdecyduje.

    percol napisał:
    Wypowiedzi, że błąd będzie mały i komuś poszło radzę włożyć między bajki

    Ta wypowiedź niewątpliwie nadaje się do włożenia między BAJKI. Poczyta sobie może kolega jeszcze choć troszkę o rejestrze OSCCAL i do czego on służy. Na prawdę może się przydać. A to, że w kolegi testach nie działa RS232 na wewnętrzym oscylatorze to tylko wina hmmm źle napisanego programu??? i nie wiem czego jeszcze.


    percol napisał:
    - możliwe że miał fart co do egzemplarza (zakładając dobrą kalibrację fabryczną, temperatura i napięcie zasilające stabilne itd.)

    O w tym miejscu przyda się wiedza o tym OSCCAL o którym pisałem wyżej.

    percol napisał:
    Z PC na niestandardowych szybkościach też nie będzie komunikacji (wątpię by dało się to obejść - chyba wszystkie UARTy tak mają).

    No i znowu, więc to tylko kwestia wątpliwości i nieudanych testów kolegi? Ale nie ma co się załamywać, początki programowania bywają trudne - to zrozumiałe. Proponuję napisać do mnie na priv albo skontaktować się na Skype to chętnie wytłumaczę i podpowiem co i jak, kiedy warto używać w tym celu zewn. kwarca a kiedy można najspokojniej w świecie korzystać i jak wykorzystać tutaj wiedzę na temat rejestru OSCCAL - ok?


    percol napisał:
    Co innego Atmega---Atmega (oczywiście z zewnetrznymi kwarcami), jeśli ustawisz na obu przykładowo 9317 b/s to pójdzie. Nie zapomnij tylko ustawić flagi: multiprocessor communication.

    O matko! i znowu - widzę, że kolega nienawidzi wewnętrznego oscylatora i uważa go za jakieś zło konieczne. A szkoda bo wiele kolega na tym traci ;)

    percol napisał:
    Do komunikacji z PC konieczne jest zainwestowanie w rezonator kwarcowy + obowiązkowo dwa kondensatory odsprzęgające, zwykle jakieś 22pF

    No to już niestety ale jest jakaś bzdura :( sorki

    percol napisał:
    A... mialem problemy z komunikacja po RS232 na podobnej przejściówce (Linux) ale nie miałem czasu na zabawę dłużej niż godzinę więc w tej kwestii się nie wypowiadam.

    No to może na drugi raz lepiej jednak znaleźć troszkę czasu, żeby coś porządnie zrobić i wtedy podzielić się opiniami zamiast wprowadzać ludzi i wielu początkujących w ten oklepany wszędzie BŁĄD - jakoby bez zewn. kwarca nie dało rady nic zrobić na prockach a szczególnie transmisji RS232 ;)
  • Moderator Mikrokontrolery Projektowanie
    mirekk36 napisał:
    percol napisał:
    Co innego Atmega---Atmega (oczywiście z zewnetrznymi kwarcami), jeśli ustawisz na obu przykładowo 9317 b/s to pójdzie. Nie zapomnij tylko ustawić flagi: multiprocessor communication.

    O matko! i znowu - widzę, że kolega nienawidzi wewnętrznego oscylatora i uważa go za jakieś zło konieczne. A szkoda bo wiele kolega na tym traci ;)

    Oj dużo, dużo .... np. parę setek µA przy zasilaniu bateryjnym w niektórych procesorach (ja jak zwykle procek + bateria :) ).
  • Poziom 11  
    @Mirekk36


    Cytat:

    Pewnie, że nie mają bo kwarcu się nie wbudowuje ;) ... za to mają wewnątrzny oscylator RC.


    Czepianie się słówek. OK, ściśle winno być: "procesory" miast "atmegi".

    Cytat:

    No to raczej nie będzie poprawnie działać ? czy nie będzie poprawnie działać - może się kolega zdecyduje.


    "Raczej" było w znaczeniu: "jak się trafi egzemplarz o małym współczynniku temperaturowym to kto wie?" + precyzyjnie skalibrowany (IMO nikła szansa choć szacowana na podstawie niewielkiej ilości próbek - podane ilu każdy może sobie ocenić czy to wystarczająco dużo czy mało).

    Cytat:

    Ta wypowiedź niewątpliwie nadaje się do włożenia między BAJKI. Poczyta sobie może kolega jeszcze choć troszkę o rejestrze OSCCAL i do czego on służy. Na prawdę może się przydać. A to, że w kolegi testach nie działa RS232 na wewnętrzym oscylatorze to tylko wina hmmm źle napisanego programu??? i nie wiem czego jeszcze.


    Czytało się co nieco o tym rejestrze i co z tego.
    Z doświadczenia wiem, że generatory RC mają kiepską stabilność termiczną i pływają wraz z napięciem zasilania.
    Zrobiłem kilka szybkich prób i się poddałem uznając, że gra nie jest warta świeczki, do tego każdy uC trzeba skalibrować indywidualnie.
    Pytanie jaką uzyskujesz stabilność w granicach temperatur -30/+60 st. C występujące w naszym Kraju - badałeś to? Wyciągniesz <0,2% aby RS niezawodnie hulał?
    Co prawda w ostateczności można rozważać pomiar temperatury uC wbudowanym czujnikiem, a nawet pomiar napięcia zasilania w razie potrzeby (np. dzielnik 2,5:1 (dla uC z Vref 2,56V) lub 5:1 (dla uC z 1,1V Vref) na ADC + Vref wewnętrzny) i próbować kompensować te wpływy tylko po co? Nie prościej użyć kwarc?

    W ogóle nie rozumiem ludzi, którzy "oszczędzają" na kwarcu za symbolicznego zeta + dwie poduszeczki w cenie paru groszy ryzykując stabilną i niezawodną pracą urządzenia. To się nie opłaca.
    Jeśli masz pilota do samochodu na baterię pastylkową to rozumiem, że szukasz każdego uA i pewien zysk możesz mieć. Jednak budując moduł sterujący pracą np. jakiegoś zaworu większej całości (zasilany z sieci = oszczędności na poziomie uA czy nawet mA nie grają roli), ryzykujesz stabilną pracę całej aparatury!

    Swoją drogą, dlaczego program miałby być źle napisany skoro z kwarcem działa poprawnie, a z wewnętrznym oscylatorem pojawiają się błędy? Można się czepiać kalibracji ale nie programu, IMO.
    Masz odmienne zdanie - wyjaśnij po krótce dlaczego. Człowiek uczy się całe życie. ;-)

    Cytat:

    O w tym miejscu przyda się wiedza o tym OSCCAL o którym pisałem wyżej.


    Nie samym OSCCAL człowiek żyje... ;-)
    Napisz jako praktyk: jak rozwiązujesz problem stabilności generowanej częstotliwości? Kalibracja wystarcza, czy mierzysz i kompensujesz wpływ napięcia zasilającego (domniemuję, że szkoda Ci AŻ 5 mA na np. 7805;) ) i temperatury?

    Cytat:

    No i znowu, więc to tylko kwestia wątpliwości i nieudanych testów kolegi? Ale nie ma co się załamywać, początki programowania bywają trudne - to zrozumiałe. Proponuję napisać do mnie na priv albo skontaktować się na Skype to chętnie wytłumaczę i podpowiem co i jak, kiedy warto używać w tym celu zewn. kwarca a kiedy można najspokojniej w świecie korzystać i jak wykorzystać tutaj wiedzę na temat rejestru OSCCAL - ok?


    Dziękuję za ofertę. Nie omieszkam skorzystać gdy będę w potrzebie.
    Wątpliwości biorą się z tego, że czas mnie naglił, a pamięć m.in. z wiekiem szwankuje. Uważam, że jeśli ma się wątpliwości to lepiej to jasno napisać niż wypowiadać się arbitralnie, a czytelnik weźmie sobie na to poprawkę.
    Standardowe sterowniki czy to Windowsa czy to Linuxa (high level) nie pozwalają na ustawienie niestandardowych transmisji. Sprawdziłem szybko, że 8250 (i następcy) pozwala na "special-purpose bit rates", więc można ustawić sobie dowolną szybkość transmisji - sprzęt ze strony PC na to pozwala. Jednak zważ, iż początkujący użytkownik z tym sobie nie poradzi...
    Proszę bardzo, dla linuksowców: "man cfsetospeed" i mają to co standardowo jest dostępne w systemie.
    Dla wtajemniczonych jest ioctl. ;-)

    Cytat:

    O matko! i znowu - widzę, że kolega nienawidzi wewnętrznego oscylatora i uważa go za jakieś zło konieczne. A szkoda bo wiele kolega na tym traci ;)


    Nic podobnego, tam gdzie nie potrzebuję precyzyjnego taktowania używam internal RC, bez kalibracji bo i po co?
    Np. steruję sobie precyzyjnym termostatem z ogniwem Peltiera (PWM), szybkie dojście + stabilność lepsza niż 0,1 st. C (po ustaleniu). Działa czyli można.. ;-)

    Cytat:

    No to już niestety ale jest jakaś bzdura :( sorki


    Możliwe, że to bzdura - jeśli potrafisz dokładnie dostroić uC i masz dobrą (<0,2%) stabilność RC-generatora w szerokim zakresie temperatur, takim jak pisałem, wtedy rzeczywiście jest to bzdura (że "obowiązkowo").

    Cytat:

    "]A... mialem problemy z komunikacja po RS232 na podobnej przejściówce (Linux) ale nie miałem czasu na zabawę dłużej niż godzinę więc w tej kwestii się nie wypowiadam."
    No to może na drugi raz lepiej jednak znaleźć troszkę czasu, żeby coś porządnie zrobić i wtedy podzielić się opiniami zamiast wprowadzać ludzi i wielu początkujących w ten oklepany wszędzie BŁĄD - jakoby bez zewn. kwarca nie dało rady nic zrobić na prockach a szczególnie transmisji RS232 ;)

    [/quote]

    Co ma piernik do wiatraka? Pisałem o przejściówce, że miałem z nią problemy i od ręki mi nie poszła i nic ponadto! Masz doświadczenie - podziel się, proszę bardzo. Myślę, że nie tylko ja będę wdzięczny.
    Poza tym nikt nie powiedział, że NIC się nie da bez kwarca zrobić - nie przesadzaj! Jedziesz już po całości. Nie jesteśmy na mównicy sejmowej, nie przypisujmy innym słów których nie powiedzieli...
  • Poziom 32  
    Żeby uciąć dyskusje na ten temat to powiem jak to robie i ni eobchodzi mnie jakies tam temperaturowa osccalowe i inne skały rezonaturowe.
    Sprawa jest prosta przy uzyciu RC albo zakładam ze on dziala z f taka ja chcę albo program odbierający synchronizuje sie z przebiegiem odbieranym co w jest bardzo proste programowo. Ma tylko taka wadę ze w przypadku małych róznic do tak strzelam bo nie sprawdzalem 10% odbiór jest prawidłowy. natomiast powyżej tej granicy dochodzi do zerwania transmiji i dopiero następne połączenia jest prawidłowe, W granicznym przypadku mozna w ten sposób wysyłac z PC z dowolnym BOD z tym że trzeba się liczyć i to przewidzec programowo że dopiero drugie połaczenia bedzie prawidłowe.
    Oczywiście nie jest to panaceum na wszystko i tego rozwiązanie nie można stosować ot tak sobie własnie z powodu wyżej wymienionej wady.
  • Poziom 42  
    percol napisał:
    @Mirekk36
    Widzę Kolega Mądraliński. ;-)
    ..


    Wow !

    ale riposta. Panie kolego - po pierwsze to się tak nie unoś bo nie miałem zamiaru cię obrażać. Po drugie to daj żesz pan spokój z tą super kalibracją temperaturową i nie wiadomo czym jeszcze? jak np grzaniem się 7805, który ponoć wywali transmisję RS232 na wewn. oscylatorze. Bo tak to zrozumiałem. Nikomu nie wkładam innych słów jak to sugerujesz - sam może piszesz zbyt porywczo.

    Co do tematu jeśli będziesz działał na procku z wewn. oscylatorem w tych samych warunkach temperaturowych to będzie wszystko działało bez zająknięcia. Tyle że ty już hmm sorki ale histeryzujesz z tymi zmianami temperatury. Zmiany mogą wpływać ale tego typu, że wystawiasz układ na działanie skrajnych temperatur np -20 (zima) do +40 (lato) gdzieś np w układzie na zewnątrz. No może nawet w mniejszym zakresie to problemy zobaczysz.

    Ale jesli temperatura otoczenia procka będzie się wachać w granicach kilku stopni to nie przesadzaj i nie wmawiaj że to nie ma prawa działać.

    Reasumując - powiedziałem tylko JEDNO - że bzdurą jest twierdzenie, że zawsze należy użyć zewnętrznego kwarca żeby mieć prawidłową transmisję RS232. Wiec zamiast teraz szukać dziury w całym i czepiać się o hiper kalibracje temperaturowe - spróbuj się to tego odnieść o czym była mowa.
  • Moderator Mikrokontrolery Projektowanie
    Tak dla rozluźnienia Waszej dyskusji, ostatnio testowałem mój układ w temperaturach -24 i +85°C.
    Konkretnie PIC18F67K90 który ma zakresy pracy -40 do +125°C
    Wewnętrzny oscylator (nie kwarc) ma dokładność 2% i jest stabilizowany temperaturowo także wewnętrznie.

    Różnice w zależności od prędkości od 31kHz do 16MHz, były mniejsze niż 0,5% co mnie mile zaskoczyło.

    Źródło zasilania nie podlegało w/w temperaturom, bo chciałem być pewien wyników samego procesora.

    I właściwie taka dokładność bezproblemowo wystarczyłaby mi gdyby nie fakt iż muszę mieć w moim projekcie także zegar czasu rzeczywistego. Stąd do zegara użyłem zewnętrznego kwarcu 32,768kHz.
  • Poziom 11  
    @Asembler

    Wybacz ale takie rozwiązanie to prowizorka, nie nadaje się do rozwiązania komercyjnego (chyba że no-name;) ).

    OK, mam pewne skrzywienie, ponieważ większość moich urządzeń pracuje na RS485, a tam jeśli któryś z klientów zacznie gadać "niestandardowo" to skutki tego mogą (np. gdy brak sumy kontrolnej w jakimś starym firmware) być opłakane... Muszę to brać pod uwagę, stąd nie mogę sobie pozwolić na takie kombinacje i fuszerkę, sorry.

    Co innego RS232 tu jeden gada z drugim, najwyżej się nie dogadają, mały pakiet można wysłać kilka razy ("dostrajając się"), a nuż user się nie kapnie. Wtedy można bawić się w takie mikroukłady z mikropoborem. Więc dać się da z lekką gimnastyką... ;-)

    Dodano po 26 [minuty]:

    @Mirekk36

    Żartem, ale może rzeczywiście niegrzeczne - przepraszam.

    Żadną tam super kalibracją - normalne użytkowanie!
    Jeśli nie masz klimy, a układ może leżeć na Słońcu albo w garażu, samochodzie tudzież czort wie gdzie na zewnątrz, to będą problemy prawda?
    Jeżeli układ ma np. sterować grupowo triakiem z radiatorem (skoki obciążenia) przymocowanym do obudowy w pobliżu ATMEGi, to czy problemy nie mają realnej szansy zaistnieć? Czujesz to?
    Jeśli chcesz np. zapalić/zgasić LED "zdalnie" w pokoju o temp. 20 st. C +/-5 nie powinno być problemów. Jeśli jednak chcesz zaprojektować układ solidnie to bez kwarcu się nie obejdziesz. Inaczej będziesz dochodził dlaczego dziś ATMEGa (leżąca na Słoneczku czy przy kaloryferze) "straciła nagle słuch". Trzeba mieć tego świadomość, zwłaszcza jeśli jest się początkującym konstruktorem.


    P.S.: Jak masz czarną obudowę to na Słońcu możesz rozgrzać ją nawet do 70 st. C (w Polsce latem). Zaś w Suwalskim zimą temperatury rokrocznie spadają poniżej -20 za dnia, a bywa że i dochodzą do -30 (nocą) czasami. Co wtedy? Nie uczmy ludzi robić chałtury...


    @Mirekk36

    I dodam jeszcze drobiażdżek:
    Jak zaczniesz zabawę z niestandardowymi prędkościami to licz się z tym, że musisz wiedzieć z jaką częstotliwością taktowany jest UART w PCciea a z jaką USART Atmegi i znaleźć sensowne dzielniki, bo jeśli "zegarki" są różne to błędy taktowana transmisji bywają ogromne i sobie nie pogadasz (tzw. "wielka kumulacja";) ).


    @Dondu

    Dobra robota! Niezły pic z tymi PICami... ;-)
    Rzeczywiście błąd w sumie niewielki ale dyskwalifikujący do transmisji po RSie (w tym zakresie temperatur, dla purystów;) ).
    Jeśli możesz to podaj jaki jest błąd w zakresie sensownych temperatur: -20..+55 dla f=1 MHz i 8 MHz, to taki przedział minimum dla Polski. ;-)
  • Poziom 42  
    percol napisał:

    Żadną tam super kalibracją - normalne użytkowanie!
    Jeśli nie masz klimy, a układ może leżeć na Słońcu albo w garażu, samochodzie tudzież czort wie gdzie na zewnątrz, to będą problemy prawda?
    Jeżeli układ ma np. sterować grupowo triakiem z radiatorem (skoki obciążenia) przymocowanym do obudowy w pobliżu ATMEGi, to czy problemy nie mają realnej szansy zaistnieć? Czujesz to?
    Jeśli chcesz np. zapalić/zgasić LED "zdalnie" w pokoju o temp. 20 st. C +/-5 nie powinno być problemów. Jeśli jednak chcesz zaprojektować układ solidnie to bez kwarcu się nie obejdziesz. Inaczej będziesz dochodził dlaczego dziś ATMEGa (leżąca na Słoneczku czy przy kaloryferze) "straciła nagle słuch". Trzeba mieć tego świadomość, zwłaszcza jeśli jest się początkującym konstruktorem.


    P.S.: Jak masz czarną obudowę to na Słońcu możesz rozgrzać ją nawet do 70 st. C (w Polsce latem). Zaś w Suwalskim zimą temperatury rokrocznie spadają poniżej -20 za dnia, a bywa że i dochodzą do -30 (nocą) czasami. Co wtedy? Nie uczmy ludzi robić chałtury...


    No i widzisz - ale ja się podpisuję rękami i nogami pod tym co mówisz o tych tutaj jasno przedstawionych warunkach. Tyle tylko że moim zdaniem - a wcale nie musi to być jedynie słuszne i obiektywne zdanie - za bardzo generalizujesz - pisząc, że jak chcesz coś zrobić solidnieto bez kwarcu się nie obejdzie. Bo to własnie zależy od tego co i do jakich potrzeb robimy. Jeśli zatem w twojej praktyce przeważają takie warunki o jakich piszesz - ja sam bym tak robił - bo to co teraz napisałeś to bardzo dobrze i rzetelne przykłady.

    Ale jeśli tworzę układy, które nie będą leżały w czarnych obudowach na słońcu, nie będą zmieniały położenia a to raz nad kaloryferem a raz na balkonie - tylko będę pracowały przez całe swoje życie w spokojnej temperaturze pokojowej i bez efektów przegrzewania się obudowy bo nie ma żadnego 7805 tylko jakaś mała przetworniczka i niewielkie pobory prądu - bo takie jest przeznaczenie tychże urządzeń - to ty też chyba przyznasz - że problemów bez kwarca nie będzie.

    A szczególnie w przypadku początkującego, który majstruje swoje pierwsze układy na płytce stykowej. Co nie oznacza, że nie powienien wiedzieć - jak postępować na przyszłość - projektując układy mające pracować w takich warunkach jakie ty opisałeś - bo wtedy dokładnie !!!! trzeba mieć to wszystko na uwadze.

    Powiem więcej - ja - jak już stosuję gdziekolwiek RS485 to u mnie też zawsze kwarc (najczęściej akurat 11.0592MHz) jest na porządku dziennym.

    Dodano po 3 [minuty]:

    percol napisał:
    @Mirekk36

    I dodam jeszcze drobiażdżek:
    Jak zaczniesz zabawę z niestandardowymi prędkościami to licz się z tym, że musisz wiedzieć z jaką częstotliwością taktowany jest UART w PCciea a z jaką USART Atmegi i znaleźć sensowne dzielniki, bo jeśli "zegarki" są różne to błędy taktowana transmisji bywają ogromne i sobie nie pogadasz (tzw. "wielka kumulacja";) ).


    No ja zdaję sobie akurat z tego świetnie sprawę .... jak widzisz - wcale nie chodziło mi o to, że jestem jakimś zagorzałym zwolennikiem wewn. oscylatora vs rezonatora kwarcowego.

    Po prostu warto wiedzieć co wpływa na dobór kwarca - a nie później czyta się na forach teksty typu:

    " radzę ci zawsze używać kwarca do procka, bo bez niego procek jest niedokładny " .... no i ludzie jak tak później powielają i powielają tą informację nadal nie wiedząc dokładnie o co tu chodzi.
  • Poziom 11  
    Cieszę się, że doszliśmy do porozumienia, a i czytający te wywody nowicjusze coś z tego wyniosą.
    Co złego to nie ja... ;-)
  • Moderator Mikrokontrolery Projektowanie
    percol napisał:
    @Dondu
    Dobra robota! Niezły pic z tymi PICami... ;-)

    Te gratulacje należą się Microchipowi, nie mnie :)

    percol napisał:
    Rzeczywiście błąd w sumie niewielki ale dyskwalifikujący do transmisji po RSie (w tym zakresie temperatur, dla purystów;) ).

    Nie kalibrowałem, tylko sprawdzałem jakie są odchyłki.
    A temperatura dodatnia wynikała z tego, iż urządzenie może być narażone na pozostawienie np. w samochodzie za szybą i wystawione na bezpośrednie działanie słońca przez parę godzin np w Afryce :):):)

    percol napisał:
    Jeśli możesz to podaj jaki jest błąd w zakresie sensownych temperatur: -20..+55 dla f=1 MHz i 8 MHz, to taki przedział minimum dla Polski. ;-)

    Mierzyłem tylko te skrajne by nabyć doświadczenia, niestety nie dysponuję innymi pomiarami i raczej nie będę już przeprowadzał testów.