Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Computer ControlsComputer Controls
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Port I/O cyfrowych - Komunikacja mikrokontrolera z PC przez kabel ethernet (UDP)

21 Nov 2014 13:29 1734 9
  • Level 7  
    Siema!

    Mam do wykonania projekt portu 16 I/O cyfrowych uwzględniający takie założenia projektowe jak:
    - standard napięciowy TTL/LVTTL (dobrze napisałem to w ogóle?),
    - komunikacja między PC a uC w protokole UDP,
    - prędkość transmisji sięgająca 19.200 bps (w trybie UDP),
    - zasilanie 12V.
    Dodatkowo wypadałoby napisać program na kompie, w którym definiowałbym i ustawiał wejścia/wyjścia i opcjonalnie odczytywał ich wartości.

    Dział wybrałem nieprzypadkowo, ponieważ nt. mikrokontrolerów mam lekkie pojęcie, a już komunikowanie ich z PC, interpretacja wymienionych założeń i sklecenie wszystkiego w całość + napisanie dokumentacji uważam za niewykonalne w przeciągu dwóch miesięcy (mam czas do końca stycznia).

    Forumowiczów pilnie BŁAGAM, o jakieś pozycje w literaturze, internecie czy też rady, propozycję odnośnie doboru mikrokontrolera.
  • Computer ControlsComputer Controls
  • Helpful post
    MCUs specialist
    Najprościej zapewne będzie to sklecić z płytki STM32F0DISCOVERY i modułu ESP-01.
  • Computer ControlsComputer Controls
  • Helpful post
    MCUs specialist
    Wystarczy ATmega8 + ENC28J60, ale optymalnie ze względu na ilość portów ATmega16 + ENC28J60. Do tego jeszcze stos uIP, parę dni i sprawa załatwiona.
  • Helpful post
    MCUs specialist
    No właśnie zasugerowałem rozwiązanie, które nie wymaga stosu TCP/IP ani nawet lutowania... ;)
  • Helpful post
    Level 40  
    Ciekawe też są moduły oparte o Wiznet W5100 lub W5500.
  • Level 7  
    Wziąłem się do roboty. Otóż zdecydowałem się na mikrokontroler ATmega8L-8PU i moduł Wiz107SR. W tej chwili nie ogarniam jak mógłbym w ogóle utworzyć aplikację do ustawiania i sprawdzania I/O, zatem wolałem zabrać się za coś łatwiejszego - konwerterze znaków z klawiatury na kod ASCII. Istota działania jest prosta: programuję uC, włączam terminal (jaki do komunikacji UDP?) i po naciśnięciu np. "a" na układzie zaczynają świecić się odpowiednie diody, których wartość binarna odpowiada kodowi ASCII znaku.

    Problem polega na wszystkim. Otóż zaprogramowałem uC jak w listingu poniżej:

    Code: text
    Log in, to see the code


    1. Nie wiem czy dobrze zaprogramowałem.
    2. Jest jakaś rażąca różnica pomiędzy Wiz107SR a Wiz107SR-TTL? Ten pierwszy ma interfejs RS232, a drugi UART. Ja posiadam ten pierwszy i podłączyłem go do uC jak należy tzn. RXD do TXD na krzyż.
    3. Czy nie myślicie, że skopałem sprawę nie dokupując do modułu zestawu uruchomieniowego WIZ107SR-EVB?
  • Level 7  
    Czy może mi ktoś pomóc w skomunikowaniu jakimkolwiek ATmegi8L z modulem ethernet WIZ107SR? Mam już zestaw uruchomieniowy i moduł komunikuje się z PC, ale nie wiem co dalej mogę zrobić żeby skomunikować PC z ATmegą.
  • Level 7  
    https://www.youtube.com/watch?v=vpo-4C_0EEA&index=3&list=PLvBNmp4sXJoP-7PajXOqFLChsjXw97DAT

    Na powyższym video gościu od 03:05 pokazał co i jak poustawiać w Config Tool-u, żeby uruchomić transmisję w trybie UDP. Niestety nie udało mi się dokonać takiej samej transmisji jak autorowi filmu, bo przejściówka USB-RS232 mi na kompie nie śmiga, ale za to zastąpiłem ją mikrokontrolerem zaprogramowanym jak w listingu, który zamieściłem 6-go stycznia. ATmega odbierała pakiety danych z zakładki UDP w Herculesie tak jak to Azjata z Youtube.com zademonstrował.

    Dziękuję wszystkim forumowiczom za odpowiedzi i użytkownikowi leszko84 za uwagę i udostępnienie bibliotek Eagle WIZ105SR i WIZ107SR. Na pewno komuś jeszcze się przydadzą.

    Biorę się za pisanie właściwego programu portu I/O cyfrowych.