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.

Atmega8 rs232 max232 bascom

RCmodelarz 25 Maj 2008 01:04 10162 12
  • #1 25 Maj 2008 01:04
    RCmodelarz
    Poziom 9  

    Witam

    Już drugą noc spędzam nad tym i nic :( problem mam raczej po stronie komputer>max232, ponieważ po zwarciu styków za maksem i wysłaniu czegoś przez terminal dane nie wracają z powrotem na terminal. Kompletnie zero reakcji. Dodam, że komputer to pentium 3 na płycie z 2 portami COM i windows xp. Program w procku wygląda tak:

    Code:

    $regfile = "m8def.dat"
    $crystal = 1000000
    $baud = 9600

    Do
      Print "tekst"
      Waitms 5
     Loop
    End


    Program prosty i musi coś wysyłać. Jedynie obawiam się o taktowanie - mam ogryginalnie ustawione fuse - bity i bardzo niechętnie je zmieniam, gdyż programuję przez avdrude i nie dość, że trzeba podać wartość w hex to jeszcze trzeba dobrze zinterpretować datasheet..

    Przerabiałem sam układ z max'em wiele razy. W tej chwili mam opcję z zestawu uruchomieniowego ZL1AVR z tą różnicą, że kondensatory 1uF polarne zamiast 10uF. Próbowałem ten sam schemat z foliowymi 0,1uF i to samo. Sam układ wydaje się działać: Na gnieździe rs232 w płytce mam na pinie 2 ok. 10V a na 3 dziwne 0 niewiadomego pochodzenia (nap. między pinem 3 a masą układu daje 0, napięcie pinu 2 między masą układu ok. 10, a nap. między pinem 2 i 3 daje ok. 8V )
    od strony procka podobnie - 0 i 5V

    Kabel kupiłem niby null modem i w akcie desperacji rozebrałem go, rozlutowałem i puściłem tylko 3 ważne żyły (2,3 masa) z przeplotem. Ponieważ mam tylko 3 żyły to łączenie 6 z 1 i 4 oraz 7 z 8 rozwiązałem we wtyczce od strony komputera. Dalej nic. Nawet długość kabla zredukowałem do ok. 100cm, tak w razie czego.

    Czy dobrze rozumuję, że wklejając tekst do hyper terminala przy zwartych stykach max'a od strony proca tekst powinien się pojawić jako przychodzący? bo jeśli to jest "echo" to tego właśnie nie ma i dlatego obstawiam problem z komunikacją a nie procesorem. Próbowałem nawet program, który robi jednocześnie coś innego i silnik kręci się na pwm'ach z płynną regulacją, program w tym czasie wysyła tekst i nic.. Więc procesor działa


    Jeśli ktoś miał podobny problem to proszę o pomoc bo już 2 dni straciłem a w czwartek robot musi jeździć.. Jeśli ktoś z Was posiada SPRAWDZONY schemat takiego układu z dokładną wartością kondensatorów (widziałem wersję 0.1u , 1u i 10u ) to będę wdzięczny za przesłanie. Mogę zeskanować mój schemat na życzenie.

    1 12
  • Arrow Multisolution Day
  • #2 25 Maj 2008 08:30
    ZbeeGin
    Poziom 38  

    Przy takich ustawieniach błąd taktowania USART wynosi ponad 7% zatem proponuję zmienić baud rate na 4800.

    Spróbuj najpierw we wtyczce DB9 od strony komputera zewrzeć piny 2-3 i zrobić loopback. Jeśli teraz nie ma echa to coś z tym Twoim RS-232 jest nie tak.
    Z tym, że domyślnie hyper terminal nie daje echa. Jeśli piszesz a znaki się pojawiają to RS-232 odbiera dane. Aby być jednak pewnym we właściwościach włącz opcję lokalnego echa. Jeśli teraz pisząc w oknie terminala otrzymujesz dwa takie same znaki to znaczy, że loopback działa poprawnie.

    Spróbuj także na innym programie terminala, bo hyper terminal jest nieco zakręcony.

    Sprawdź także, czy wpiąłeś się do właściwego portu.

    0
  • Arrow Multisolution Day
  • #3 25 Maj 2008 10:05
    RCmodelarz
    Poziom 9  

    ZbeeGin napisał:
    Przy takich ustawieniach błąd taktowania USART wynosi ponad 7% zatem proponuję zmienić baud rate na 4800.

    Spróbuj najpierw we wtyczce DB9 od strony komputera zewrzeć piny 2-3 i zrobić loopback. Jeśli teraz nie ma echa to coś z tym Twoim RS-232 jest nie tak.



    ha! nie wpadłem na to, żeby zewrzeć z tej strony. Zwarłem 2 i 3 w moim kablu i mam echo! czyli 10% sukcesu już za mną.. To świadczy o tym, że kabel zlutowałem dobrze. Używam programu Termite 1.8.

    Co do baud rate - wczoraj w nocy udało mi się odpalić atmegę 16 (a właściwie znaleźć błąd...) i teraz jest taktowana kwarcem 16mhz. Dlatego myślę, że baud w tym momencie mogę dać nawet większy. Tak czy inaczej teraz trzeba rozwiązać inny problem - dlaczego nie ma echa gdy zwieram wejście z wyjściem za maksem? Najlepiej by było, gdyby ktoś udostępnił mi działający schemat do którego mogę zrobić płytkę i dalej kombinować mając pewność, że elektrycznie układ jest poprawny. Google zwracają pełno różnych schematów, ale każdy inny. Sprawdzałem ten z noty katalogowej i nie działa :/

    0
  • Pomocny post
    #4 25 Maj 2008 10:21
    ZbeeGin
    Poziom 38  

    RCmodelarz napisał:
    ha! nie wpadłem na to, żeby zewrzeć z tej strony. Zwarłem 2 i 3 w moim kablu i mam echo! czyli 10% sukcesu już za mną.. To świadczy o tym, że kabel zlutowałem dobrze.

    Niekoniecznie. W dalszym ciągu mogłeś polutować 2-2 3-3. :)

    RCmodelarz napisał:
    Tak czy inaczej teraz trzeba rozwiązać inny problem - dlaczego nie ma echa gdy zwieram wejście z wyjściem za maksem? Najlepiej by było, gdyby ktoś udostępnił mi działający schemat do którego mogę zrobić płytkę i dalej kombinować mając pewność, że elektrycznie układ jest poprawny.

    http://www.btc.pl/pdf/zl2avr.pdf
    Tylko uwaga. W płytce jest gniazdo Female (żeński), zatem do połączenia tutaj używa się przedłużki DB9-DB9. Zatem piny 2 i 3 są podłączone odwrotnie.

    Sprawdź jeszcze czy na pinach 2 i 6 MAX-a masz napięcia odpowiednio dodatnie i ujemne.

    0
  • #5 25 Maj 2008 10:52
    RCmodelarz
    Poziom 9  

    Dziękuję za odpowiedzi. Zgodnie ze schematem zrobiłem projekt płytki. Zamieniłem wtyczkę na męską i w schemacie zamieniłem 2 z 3 oraz zrobiłem potrzebne mostki. Załączam wszystko "do sprawdzenia" i gdy będzie dobrze wrzucę plik z eagle'a (ktoś może mieć z tego pożytek)

    Proszę jeszcze o informację: Czy kondensatory to muszą być koniecznie 10uF polarne? Czy zamiast nich mogę dać 1uF polarne lub 10uF foliowe? A może 100n foliowe wystarczą? Widziałem w internecie wiele schematów i w każdym inna wersja..


    Schemat:
    Atmega8 rs232 max232 bascom

    Płytka z elementami:
    Atmega8 rs232 max232 bascom

    Same ścieżki:
    Atmega8 rs232 max232 bascom

    0
  • #6 25 Maj 2008 11:14
    Tomasz.W
    Poziom 35  

    RCmodelarz napisał:
    ....Czy kondensatory to muszą być koniecznie 10uF polarne? Czy zamiast nich mogę dać 1uF polarne lub 10uF foliowe? A może 100n foliowe wystarczą? Widziałem w internecie wiele schematów i w każdym inna wersja...
    To 10µ to sporo za dużo. W notach katalogowych dla układu MAX232 podane są dwie wartości :
    MAX232 :arrow:
    MAX232A :arrow: 0,1µ

    0
  • #7 25 Maj 2008 11:17
    RCmodelarz
    Poziom 9  

    Tomasz.W napisał:
    RCmodelarz napisał:
    ....Czy kondensatory to muszą być koniecznie 10uF polarne? Czy zamiast nich mogę dać 1uF polarne lub 10uF foliowe? A może 100n foliowe wystarczą? Widziałem w internecie wiele schematów i w każdym inna wersja...
    To 10µ to sporo za dużo. W notach katalogowych dla układu MAX232 podane są dwie wartości :
    MAX232 :arrow:
    MAX232A :arrow: 0,1µ



    No właśnie dlatego się pytam. Czyli zaraz zabiorę się za płytkę, wstawię na początek 1u elektrolity i sprawdzę jak to działa

    0
  • #8 26 Maj 2008 00:01
    gorsomir
    Poziom 13  

    to co napisze może wydać się głupie ale skoro używasz win Xp to możesz mieć zablkowane porty COM-a spróbuj je odblokować np useerportem
    Pozdro

    0
  • #9 26 Maj 2008 07:51
    snow
    Poziom 28  

    gorsomir napisał:
    to co napisze może wydać się głupie ale skoro używasz win Xp to możesz mieć zablkowane porty COM-a spróbuj je odblokować np useerportem


    Przecież odczyt portu mu działa, nie wiem czy czytałeś co napisał wcześniej.


    Spróbuj może jeszcze dać kondensator 100nF i jakiś elektrolit na zasilanie MAX'a. Poza tym wg schematu masz połączenie proste więc kabel musisz mieć krosowany. Z czego zasilasz procek i MAX'a? Miałem przypadek że zasilacz nie wyrabiał i był problemy z poprawną transmisją.

    0
  • #10 26 Maj 2008 10:06
    RCmodelarz
    Poziom 9  

    Witam Wszystkich

    Działa!

    Wstyd się przyznać.. Po prostu musiałem wcześniej robić gdzieś błędy przy montowaniu na pająka pomimo, iż robiłem to chyba z 10 razy.. Tak czy inaczej po zmontowaniu płytki układ ruszył od razu i w tej chwili działa bardzo ładnie na kondensatorach 1uF elektrolitach. Dziękuję wszystkim za pomoc

    0
  • #11 26 Maj 2008 12:12
    Balu
    Poziom 38  

    A COMy nie bywają chyba zablokowane... (co innego lpt). Ja tam używam COMów od zawsze i nigdy nie używałem userport'a ani giveio;>

    0
  • #12 26 Maj 2008 20:22
    RCmodelarz
    Poziom 9  

    Czy ktoś jest zainteresowany plikami z eagle'a do tego układu? Mogę zamieścić. Działają bo u mnie chodzi super :)

    0
  • #13 20 Lis 2008 18:32
    elektronik999
    Poziom 26  

    Właśnie może mogłbyś zamieścić pliki do eagle. Byłbym wdzieczny

    0