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

Problem Konwerter Atmega16 i rs485

Sylwa1 08 Paź 2006 22:10 1426 2
REKLAMA
  • #1 3098622
    Sylwa1
    Poziom 12  
    Witam! Wykonałem konwerter z UART (Atmega16) na rs485 (sn75176). Podpiołem nózki sn75.. DE i RE razem do potru np D.6 + pull up(na kazdym innym jest to samo) w celu sterowania nadawanie - odbiór i zauwazyłem ze mi się program wiesza, po odpieciu DE i RE wszystko zaczyna działać tzn. cała reszta programu. Co jest nie tak?

    Bity są skonfigurowane następująco:
    fuse bit C : 1 BODLEVEL
    B : 1 BODEN
    KL : 10 CK
    A987 :1111 XTAL
    M : 1 OCD
    J : 1 JTAG
    I : 0 SPI
    H : 0 CKOPT

    Jestem nowy w tym temacie "rs485" takze proszę o wyrozumiałość.
  • REKLAMA
  • #2 3186176
    mszczygi
    Poziom 12  
    Witam.
    A skonfigurowałeś pin uC z którego sterujesz kierunkiem nadawanie/odbiór jako wyjściowy ?
    Podawanie bitów konfiguracyjnych AVR-a nic nie wyjaśnia.
    Gdybyś je błędnie zaprogramował to uC by w ogóle nie działał.
    Pozdrawiam
  • #3 3206422
    andre65
    Poziom 14  
    Pin sterujacy WE/WY MUSI byc silnopradowy tzn nie mozna go skonfigurować jako INPUT + PULLUP (DDR.x=0, PORT.x=1) ale MUSI byc skonfigurowany jako OUTPUT (DDR.x=1). Wtedy zawartoscia rejestru PORT.x sterujemy kierunek przepływu danych: PORT.x=0 daje nam odbiór a PORT.x=1 nadawanie.

    Niespełnienie tych wymogów powoduje, że stan na pinie x jest bliżej nieokreślony (napięcie ok 2..3V) i to powoduje, że na porcie RX procka mamy też stan 2..3V co jest traktowane jako permanentne wyzwolenie początku odbioru... no i układ "wisi".

    Dodam, że musisz linie wejściową odbiornika RX ustawić jako INPUT + PULLUP (DDR.x=0, PORT.x=1) a nadajnika TX ustawić jako OUTPUT (DDR.x=1) oraz ustawić na nim 1 jako stan pasywny.

    Pozdro
REKLAMA