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

[ATmega8] rs232 i Visual C# komunikacja w dwie strony.

sopeleek 27 Lut 2014 19:56 3414 14
  • #1 27 Lut 2014 19:56
    sopeleek
    Poziom 11  

    Witam, próbuje stworzyć aplikacje w Visual C# która miałaby wysyłać i odbierać dane z mikrokontrolera atmega8. Udało mi się podłączyć i napisać wstępnie program na avr, w realterm wszystko gra. Prosta aplikacja którą stworzyłem działa poprawnie przy wysyłaniu (przy wysłania liczby 5 zmiana stanu diody). Niestety nie mogę poradzić sobie z odbiorem.

    kod obsługujący zdarzenia:

    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    wygląda na to ze powyższe zdarzenie nigdy nie jest wywołana ponieważ również funkcja DisplayText nigdy nie zostaje wywołana.
    Jeżeli wysyłanie działa poprawnie to ustawienia portu powinny być poprawne tylko błąd w kodzie?
    Dodam, że układ pracuje z ft232 na kwarcu 8MHz, a BAUDRATE = 250000.

    0 14
  • #2 28 Lut 2014 09:27
    pox
    Poziom 11  

    serialPort1.ReadLine(); - czeka do momentu wystąpienia znaków kończa lini, czyli jeżeli twój avr nie wyśle na końcó tych znaków to w twojej aplikacji nic nie zobaczysz.

    Zastąp to metodą ReadExisting() lub też inną metodą np: Read(Byte[], Int32, Int32).

    0
  • #3 28 Lut 2014 10:44
    sopeleek
    Poziom 11  

    Niestety tak również nie działa, metoda dispalyText również się nie wykonuje, nawet gdy jej wykonanie jest przed SerialPort1.Read.

    0
  • #4 28 Lut 2014 15:14
    cepelia
    Poziom 20  

    moja metoda którą odbieram dane pomiarowe z MEMS

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    zasadniczo to jest kod w vb.net ale nie powinieneś mieć problemów ze zrozumieniem...

    polecam przykłady aplikacji terminalowych...

    0
  • #5 28 Lut 2014 23:30
    pox
    Poziom 11  

    Spróbój jeszcze tak:

    Kod: csharp
    Zaloguj się, aby zobaczyć kod


    To musi działać.
    Jeżeli dalej będzie problem zewrzyj RX I TX w FT232 i wyślij jakieś dane na serialport.

    0
  • #6 01 Mar 2014 11:46
    sopeleek
    Poziom 11  

    pox napisał:
    Spróbój jeszcze tak:
    Kod: csharp
    Zaloguj się, aby zobaczyć kod


    To musi działać.
    Jeżeli dalej będzie problem zewrzyj RX I TX w FT232 i wyślij jakieś dane na serialport.

    ten sposób również nie zadziałał, a po zwarciu TX i RX przestało działać wszystko, tzn nie działa ani odbiór ani wysyłanie, nawet po ponownym rozwarciu.

    0
  • #7 01 Mar 2014 15:09
    LordBlick
    VIP Zasłużony dla elektroda

    Mam wrażenie, że chodziło tylko i wyłącznie o połączenie wyprowadzeń FT232 RX i TX ze sobą... W pierwszym wpisie tematu zabrakło schematu lub chociażby zdjęcia układu, co jest źródłem wielu nieporozumień w odpowiedziach.

    0
  • #8 01 Mar 2014 17:18
    sopeleek
    Poziom 11  

    LordBlick napisał:
    Mam wrażenie, że chodziło tylko i wyłącznie o połączenie wyprowadzeń FT232 RX i TX ze sobą... W pierwszym wpisie tematu zabrakło schematu lub chociażby zdjęcia układu, co jest źródłem wielu nieporozumień w odpowiedziach.

    tak właśnie zostało to połączone, schemat uznałem za zbędny ponieważ oprócz zwykłego zasilania atmegi jest tylko TX i RX do wyprowadzeń 2 i 3, a ft232 kupiłem jako gotowy zmontowany układ.
    [ATmega8] rs232 i Visual C# komunikacja w dwie strony.

    0
  • #9 01 Mar 2014 19:29
    LordBlick
    VIP Zasłużony dla elektroda

    Ten konwerter nadal występuje na liście urządzeń ? Można jednak użyć do testów gotowy program https://sites.google.com/site/terminalbpp/ - wtedy wykluczymy (lub potwierdzimy..) problemy ze sprzętem/systemem.
    W dalszej perspektywie może okazać się istotny sposób zasilania µC, stad nadal sugeruję jakiś prosty opis lub zdjęcie.

    0
  • #10 01 Mar 2014 23:14
    sopeleek
    Poziom 11  

    Konwerter występuje na liście, ale wygląda na to że przestał poprawnie działać, wcześniej wszystko poprawnie działało na realterm, teraz nie także na bpp. Na innym mikrokontrolerze objawy są takie same.
    Poniżej zamieszczam schemat układu.:
    [ATmega8] rs232 i Visual C# komunikacja w dwie strony.

    0
  • #11 03 Mar 2014 09:32
    pox
    Poziom 11  

    Nie wiem czemu, ale nie mogę otworzyć tego schematu.
    Jak masz zasilany uC?
    Czy nie zamieniłeś RX z TX przy podłączeniu do uC?

    Jak masz skonfigurowany port w C#?

    Czy po wysłaniu jakichkolwiek danych na port miga ci dioda na FT232?
    I może zmniejsz prędkość.

    0
  • #12 03 Mar 2014 12:19
    sopeleek
    Poziom 11  

    oto konfiguracja portu:
    [ATmega8] rs232 i Visual C# komunikacja w dwie strony.

    zmniejszyłem jak widać prędkość do 9600, efekt nadal ten sam, na ft232 obie diody migają.

    0
  • #14 03 Mar 2014 19:41
    sopeleek
    Poziom 11  

    tak, zmniejszylem oczywiscie.

    0
  • #15 04 Cze 2014 14:33
    sopeleek
    Poziom 11  

    Problem stanowił ft232, po wymianie na inny wszystko zaczęło działać.

    Postanowiłem jednak odświeżyć temat ponieważ napotkałem się na jeszcze jeden problem.
    Przy wysyłaniu jakiegoś kilka razy jakiegoś ciągu znaków np: "dioda"
    Odbiór jest następujący (zarówno w VC# jak i w RealTerm).

    Code:
    dioda
    
    dioda
    dddddddddioda
    dioda
    dioda
    dioda
    ddddddddddddiodadd

    tak wiec kilka razy jest ok, a nieraz wysłana zostaje wielokrotnie 1 litera, natomiast krotność poprawnych danych i niepoprawnych jest przypadkowa (nie udało mi się ustalić żadenej prawidłowości).

    Kod dla avr odpowiadający za wysyłanie:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Proszę o pomoc

    0
  Szukaj w 5mln produktów