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

ATMEGA32 + FT232RL - Brak komunikacji z PC przez program C#

fogielek1234 09 Mar 2016 18:30 1080 8
REKLAMA
  • #1 15509075
    fogielek1234
    Poziom 10  
    Witam.
    Mam problem z komunikacją pomiędzy PC i Atmega32. Kupiłem moduł FTDI FT232RL. Wygląda on dokładnie tak:
    ATMEGA32 + FT232RL - Brak komunikacji z PC przez program C#

    Napisałem taki program dla Atmegi32
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod



    oraz taki kod w języku C#
    Kod: C#
    Zaloguj się, aby zobaczyć kod

    Jednak ani diody podpięte do PORTA nie świecą się ani w konsoli nic się nie wyświetla. Atmega ze sobą gada pięknie, komputer ze sobą gada pięknie. Podłączenie Atmegi z tym modułem to tylko Tx-Rx i Rx-Tx tak jak powinno być. Kiedy wysyłam coś z Atmegi na komputer dioda sygnalizująca odczyt na tym module zapala się, kiedy komputer wysyła coś do Atmegi dioda sygnalizująca zapis zapala się. Jestem raczej przekonany, że gdzieś jest błąd w kodzie jeżeli chodzi o deklaracje ramki. Może źle napisałem bit parzystości chociaż sprawdzałem już wszystkie możliwości Parity w konstruktorze. Proszę o pomoc ponieważ siedzę już nad tym bardzo długo. Pozdrawiam
  • REKLAMA
  • Pomocny post
    #2 15509084
    grko
    Poziom 33  
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    To jest źle. Nie tak sie oblicza wartość UBRR. Proponuję otworzyć datasheet.
  • REKLAMA
  • #3 15509128
    fogielek1234
    Poziom 10  
    Wstawiłem do UBRRL wartość 51 zgodnie z datasheet i nadal nie rozmawiają ze sobą.
  • #4 15509153
    grko
    Poziom 33  
    To może użyj na początek jakiegoś terminala aby wyeliminować potencjalny błąd w aplikacji w C#.
    Fusebity masz ustawione na oscylator zewnętrzny ?
  • #5 15509299
    fogielek1234
    Poziom 10  
    Fusebity mam ustawione na oscylator wewnętrzny
    Takie rzeczy wyświetla terminal gdy wysyłam znak 'A' z Atmegi.
    ATMEGA32 + FT232RL - Brak komunikacji z PC przez program C#
  • REKLAMA
  • Pomocny post
    #6 15509503
    tmf
    VIP Zasłużony dla elektroda
    Przejrzyj dokumentację procka i archiwum - na wewnętrznym generatorze w przypadku ATMega RS232 niekoniecznie będzie działał poprawnie. Powodem jest zbyt niska dokładność tego oscylatora. Jeśli masz FT232 to ma on możliwość wyprowadzenia zegara, z którego możesz taktować MCU. Pokazany objaw świadczy o tym, że baudrate interfejsu jest nieco inny niż spodziewany.
  • REKLAMA
  • #8 15510165
    fogielek1234
    Poziom 10  
    Dziękuje bardzo za wszystkie pomocne podpowiedzi. Błąd był złożony ze złego zdefiniowania baundrate oraz ze złą częstotliwością oscylatora wewnętrznego. Szkoda, że przez takie podstawy zmarnowałem mnóstwo godzin ale tak to już bywa u początkujących. Dziękuje jeszcze raz za szybką i miłą pomoc w zamian wysyłam efekt swojej pracy. :)
    ATMEGA32 + FT232RL - Brak komunikacji z PC przez program C#
REKLAMA