Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Proszę, dodaj wyj±tek elektroda.pl do Adblock.
Dzięki temu, że ogl±dasz reklamy, wspierasz portal i użytkowników.

Wysyłanie danych miedzy ATmeg± a PC.

filip10 10 Mar 2017 21:21 1392 40
  • #1 10 Mar 2017 21:21
    filip10
    Poziom 9  

    Chciałbym nauczyć się wysyłać dane z mikrokontrolera do PC.
    Tak żeby np. po wci¶nięciu przycisku wypisywać na PC jaki¶ napis.
    Jak to zrobić za pomoc± portu USB?

  • #2 10 Mar 2017 21:28
    dondu
    Moderator Mikrokontrolery Projektowanie

    Możesz tak: http://mikrokontrolery.blogspot.com/2011/03/rs-232-atmega8-komputer-terminal.html
    stosuj±c konwerter USB-TTL (port szeregowy RS-232) za około 1$ z darmow± dosta z Chin (polecam te z układem CH340),


    albo za pomoc± bluetooth: http://mikrokontrolery.blogspot.com/2011/03/Bluetooth-mikrokontrolery-kurs-jak-zaczac.html

  • #3 10 Mar 2017 21:46
    Wojciech.
    Poziom 29  

    Zawsze możesz użyć ATmegi z komunikacj± USB np Atmega32u4.

  • #4 11 Mar 2017 12:10
    filip10
    Poziom 9  

    Nie mam w lapku zł±cza RS-232.
    Nie da się użyć układu z tranzystorami dla USB?
    Je¶li tak, to czy mogę zamienić BC557 na BC547?

  • #6 11 Mar 2017 12:18
    Piotrus_999
    Poziom 39  

    filip10 napisał:
    Nie da się użyć układu z tranzystorami dla USB?

    Nie - przynajmniej nie na Twoim poziomie wiedzy jeszcze. Musiałby¶ zaimplementować stos i emulację samego fizycznego USB.

    Wojciech. napisał:
    Zawsze możesz użyć ATmegi z komunikacj± USB np Atmega32u4.
    Taaaak - a czy Kolega @Wojciech. kiedy¶ implementował stos USB, że poleca to komu¶ bardzo pozc±tkuj±cemu, czy tylko teoretyzuje.

  • #7 11 Mar 2017 12:19
    BlueDraco
    Specjalista - Mikrokontrolery

    Może zacznij, szanowny Autorze w±tku, od zrozumienia odpowiedzi, któr± uzyskałe¶ od kol. Dondu. Wpinasz modułek za 70 centów w USB notebooka i trzema drucikami ł±czysz go z ATmega, bez żadnych tranzystorów.

  • #10 11 Mar 2017 14:03
    Wojciech.
    Poziom 29  

    @Piotrus_999 Nie było nic powiedziane o metodzie programowania więc proponuję arduino z bibliotekami kontrolera USB.

  • #12 15 Mar 2017 15:42
    filip10
    Poziom 9  

    Więc maj±c już ten konwerter, cz podpięcie na krzyż wej¶cia TXD, RXD i zasilania + skopiowany program z datasheeta wystarczy do przetestowania?
    Można dane odbierać w dowolnym programie (np. notatnik) czy tylko w Hyper Terminal'u?
    W konwerterze pin VCC ma być zwarty do 3 V czy 5V?

  • #14 15 Mar 2017 16:13
    filip10
    Poziom 9  

    Tak o zworkę. uC zasilam z 5 V.

  • #16 15 Mar 2017 16:39
    filip10
    Poziom 9  

    A jak jest z tym programem testowym i terminalem?

  • #18 15 Mar 2017 17:41
    idepopizze
    Poziom 30  

    filip10 napisał:
    Można dane odbierać w dowolnym programie (np. notatnik) czy tylko w Hyper Terminal'u?


    Transmisje szeregow± odbierasz w jakim¶ terminalu.
    Nie nadaje się do tego notatnik ani inne word'y

  • #19 15 Mar 2017 18:58
    filip10
    Poziom 9  

    Skleiłem taki kod:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Terminal skonfigurowany tak:
    Wysyłanie danych miedzy ATmeg± a PC.
    ***zmieniłem na 2 bity stopu***
    ale nic nie pojawia się w terminalu.
    Co kilka sekund miga dioda w konwerterze.

  • #23 15 Mar 2017 20:33
    filip10
    Poziom 9  

    Teraz w terminalu w statusie miga na żółto ikona RXD (4 razy) co kilka sekund.
    Ale dalej nie wy¶wietla się żaden tekst.

  • #24 15 Mar 2017 20:41
    Piotrus_999
    Poziom 39  

    filip10 napisał:
    UBRRH = (unsigned char)(baud>>8);
    UBRRL = (unsigned char)baud;


    Naprawdę? Datasheet się kłania. Naprawdę my¶lisz że po prostu się wpisuje do rejestru prędko¶ć?

  • #25 15 Mar 2017 20:45
    idepopizze
    Poziom 30  

    @filip10
    Nie s±dzisz że jednak powiniene¶ trochę sam poczytać co i jak z tym wysyłaniem danych zanim się za to weĽmiesz ?

  • #26 15 Mar 2017 21:29
    filip10
    Poziom 9  

    W tabeli w datasheet dla CPU = 8 MHz jest wyliczona warto¶ć 51.
    Czyli to powinno wygl±dać tak: USART_Init(51);?
    Mimo tej zmiany dalej w terminalu nic się nie wy¶wietla.

  • #28 15 Mar 2017 23:01
    filip10
    Poziom 9  

    Robię to na też podstawie ksi±żki Pana M. Kardasia i nie czaje co jest Ľle.
    Przecież funkcje skopiowane s± z pdfa.
    Podpowiedz chociaż co jest nie tak, bo się będę męczył jak debil kolejny dzień z tym.

  • #29 16 Mar 2017 02:34
    niveasoft
    Poziom 34  

    Nie podoba mi się Twoja postawa ani porównanie bo debil dawno miałby to gotowe.

    Nikt z tu doradzaj±cych Ci tutaj się z wiedz± nie urodził tylko j± zdobył. Sposób w jaki chcesz wiedzę uzyskać Ty mnie osobi¶cie odpycha i odpowiedzi bym Ci nie udzielił.
    Zdob±dĽ się na konkretne pytanie techniczne.

  • #30 16 Mar 2017 09:24
    filip10
    Poziom 9  

    Program mam dalej taki sam ale tym razem się prawie udało.
    Tekst się wy¶wietla ale zamiast znaku s± "krzaki", dla wybranego Ascii lub Ansi.
    Dziwne, że bez zmiany kodu teraz się uruchomiło...
    Jak zmienić ten tekst na znak?

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME