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

Nie działa komunikacja RS232 na SPARTAN3 z układem xc3s200 i MAX232

euler 12 Maj 2008 20:26 3848 7
REKLAMA
  • #1 5133661
    euler
    Poziom 11  
    Posty: 11
    Witam

    Jestem posiadaczem platformy zl9pld i modułu dip zl10pld z wbudowanym układem xc3s200 (zestaw opisany w elektronice praktycznej ) . Mam spory kłopot z rs232 - dokładniej mówiąc nie działa. Znalazłem w książce Majewski Zbysiński "Układy fpga" program który ma realizować echo (co otrzyma z rs`a od razu wysyła z powrotem na rs232 ) program jest w vhdl . Do tego programu dopoisałem plik z rozszerzeniem .ucf przypisujące odpowiednim pinom (p40in oraz p43) odpowiednie linie z max232 . Niestety program nie działa . Komputer jest połączony z układem za pomocą 3 żyłowego przewodu (2-3przeplot i 5 gnd) i raczej tu wszystko jest ok (po zwarciu 2 z 3 ) realizowane jest echo tak wiec port rs w kompie i kabel jest ok . Proszę o pomoc i propozycje dlaczego komunikacja nie działa

    pozdrawiam
  • REKLAMA
  • Pomocny post
    #2 5134306
    firefox_PL
    Poziom 17  
    Posty: 235
    Pomógł: 21
    Ocena: 2
    na wszelki wypadek wrzuć kod programu, ewentualnie możesz przetestować mój kod z którego cały czas korzystam i działa wszystko pięknie, moduł top jest tak zrobiony, że realizuje właśnie echo, więc tylko dopisz ucf (i możliwe że zmień parametry generowanego zegara dla modułów nadajnika i odbiornika) i testuj
    Załączniki:
    • UART.ZIP (3.4 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • Pomocny post
    #3 5134564
    tomasz_kwasniewski
    Poziom 17  
    Posty: 163
    Pomógł: 18
    Ocena: 5
    W tej ksiązce jest babol, zrobiony tam zegar generuje czetotliwosc 4,8kHz a nie 9,6kHz. Sprawdz tez moze czy na plytce nie masz juz skorosowanej 2-3, ja tak mialem na Spartan-3 Starter Kit, wtedy musisz zrobic sobie kabelek laczony 1 do 1. Zalaczam moduly odbiornika, nadajnika, dzielnika_clk ktrore zrobile do swojej pracy dyplomowej. RS smiga bez problemu z mozliwoscia wyboru jedenj z 4 czestotliwosci.
    Załączniki:
    • rs232.zip (3.66 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #4 5137689
    euler
    Poziom 11  
    Posty: 11
    Już działa :D Problem stanowił podwójny przeplot . Dziękuje wszystkim za pomoc. Mam jeszcze taki mały kłopot że kod znaku który wysyłam nie zgadza sie z kodem znaku który odbieram (naciskam klawisz c otrzymuje 0e a nie 63 ) czy o czymś zapomniałem ? dołączam kod w vhdl:

    library ieee;
    use ieee.std_logic_1164.all;

    entity echo is port (
    rxd: in std_logic;
    txd: out std_logic
    );
    end echo ;

    architecture echo_arch of echo is
    begin
    txd <= rxd ;
    end echo_arch ;

    pozdrawiam serdecznie
  • REKLAMA
  • #5 5138199
    firefox_PL
    Poziom 17  
    Posty: 235
    Pomógł: 21
    Ocena: 2
    szczerze powiedziawszy to twój kod nie do końca realizuje echo, bardziej przypomina to zwarcie kabelków we wtyczce a nie rzeczywisty odbiór i odesłanie danych, natomiast powodu odbioru złych danych do końca nie rozumiem, ponieważ pomiędzy tymi dwoma kodami (w zapisie binarnym) nie ma żadnej zależności
    0x0E : 00001110
    0x63 : 01100011
  • #6 5138229
    tomasz_kwasniewski
    Poziom 17  
    Posty: 163
    Pomógł: 18
    Ocena: 5
    Skad wysylasz to c, z PC i odbierasz na PC?
  • REKLAMA
  • #7 5144358
    euler
    Poziom 11  
    Posty: 11
    Tak wysyłam z PC z klawiatury i odbieram na PC. Dla ustawień :

    Date bit = 8 , Paryty = none , Stop bits = 0 otrzymuje :

    wysyłam odbieram
    a 4f 00
    b 27 00
    c 4e 00
    d 13 00
    1 67 00
    2 33 00
    dla

    Date bit = 7 , Paryty = none , Stop bits = 0 otrzymuje :

    wysyłam odbieram
    a 0f 00
    b 0f 00
    c 0e 00
    d lub r 03 00

Podsumowanie tematu

LABEL_AI_GENERATED
Problem dotyczył braku działania komunikacji RS232 na platformie zl9pld z modułem dip zl10pld wyposażonym w układ FPGA xc3s200 oraz konwerter MAX232. Użytkownik korzystał z programu w VHDL realizującego echo danych przesyłanych przez RS232, jednak nie uzyskiwał poprawnej komunikacji. Wskazano, że w książce Majewski Zbysiński "Układy FPGA" zastosowano błędny generator zegara o częstotliwości 4,8 kHz zamiast 9,6 kHz, co mogło powodować problemy. Zwrócono uwagę na możliwe zwarcie linii 2 i 3 w interfejsie RS232 na płytce Spartan-3, które wymagało zastosowania kabla 1:1 zamiast przeplotu. Po usunięciu podwójnego przeplotu komunikacja zaczęła działać, jednak pojawiły się problemy z niezgodnością kodów znaków wysyłanych i odbieranych (np. wysłanie 'c' skutkowało odebraniem 0x0E zamiast 0x63). Dyskusja wskazała, że prosty kod VHDL przypisujący txd
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA