Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 12 lip 2025, o 05:49


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
    Autor Wiadomość
    PostNapisane: 2 lis 2013, o 12:08 
    Offline
    Nowy

    Dołączył(a): 02 lis 2013
    Posty: 2
    Pomógł: 0

    Witam serdecznie!
    Testuję najprostszą komunikację uC-PC przez RS232: wysyłam znak z komputera, dopisuję wykrzyknik i wysyłam z powrotem ;)
    Gdy nadaję z samego uC to transmisja przebiega pomyślnie. Gdy odbieram i dopisuję mam pewien błąd - pojawia się znak podkreślenia "_" (0x5F). Teraz dzieje się magia:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    W takim przypadku otrzymuję x_!

    Gdy natomiast dopiszę sobie to tak:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    To otrzymuję x!_

    Kod do nadawania/odbierania mam z noty katalogowej (zmieniony tylko 2 na 1 bit stopu).
    Mam Atmegę8, taktowaną wewnętrznym oscylatorem 8MHz, złożoną wg schematu: uC-MAX232-PC, bez żadnych przejściówek. Nadaję 9600 bodów, ramkę 8b, 1bit stopu, bez parzystości - ustawienia uC zgadzają się na terminalu (używam RealTerm i moim własnym, napisanym w C# - w obu przypadkach ten sam błąd).
    Sprawdzałem połączenia, kombinowałem ze zmianą UBRR. Napięcie na wejsciu/wyjściu maxa od strony pc to -+ 10V. Po zwarciu kabli dochodzących do Rx i Tx atmegi otrzymuję na terminalu ładne echo, więc to musi być wina procka.
    Bardzo proszę o pomoc.

    Pozdrawiam,
    Kamil



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 lis 2013, o 15:12 
    Offline
    Nowy

    Dołączył(a): 02 lis 2013
    Posty: 2
    Pomógł: 0

    O ja głupi, string musi kończyć się nullem! Wielkie dzięki, przepraszam za tę gafę :D



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 lis 2013, o 12:56 
    Offline
    Nowy

    Dołączył(a): 11 lis 2013
    Posty: 2
    Pomógł: 0

    Witam
    Dopiero co zacząłem ogarniać temat komunikacji uC->PC przez RS232.
    Schemat mojego połączenia:
    Obrazek

    Kod:

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Do wstawiania kodu używamy znacznika 'syntax' zamiast znacznika 'code', poprawiłem - Sonix

    Przykład wzięty z poradnika Mirkka.
    Niestety na terminalu Putty dostaję taki krzaki:
    Obrazek
    Co może być tego przyczyną?
    Dodam że kodowanie w Eclipse to Cp1250. Kodowanie w Putty to Win 1250.
    Używam przejściówki:
    http://www.cabletech.pl/pl/6343-kabel-k ... 232--db9m-
    Bardzo proszę o pomoc.



    Ostatnio edytowano 11 lis 2013, o 13:14 przez jarO, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 lis 2013, o 13:11 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 05 sty 2013
    Posty: 272
    Pomógł: 3

    Bumszakalakacz napisał(a):
    Mam Atmegę8, taktowaną wewnętrznym oscylatorem 8MHz, złożoną wg schematu: uC-MAX232-PC, bez żadnych przejściówek. Nadaję 9600 bodów, ramkę 8b, 1bit stopu, bez parzystości - ustawienia uC zgadzają się na terminalu (używam RealTerm i moim własnym, napisanym w C# - w obu przypadkach ten sam błąd).
    Sprawdzałem połączenia, kombinowałem ze zmianą UBRR. Napięcie na wejsciu/wyjściu maxa od strony pc to -+ 10V. Po zwarciu kabli dochodzących do Rx i Tx atmegi otrzymuję na terminalu ładne echo, więc to musi być wina procka.
    Bardzo proszę o pomoc.

    Pozdrawiam,
    Kamil


    Chcesz zabić procesor rozumiem?! Odłącz to natychmiast! Procesor potrzebuje standardu TTL 0-5V a nie RS232 +/- 12 V !!

    Tutaj w opisie nowego modułu masz również opisaną RÓŻNICĘ pomiędzy tymi standardami:

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 lis 2013, o 14:23 
    Offline
    Nowy

    Dołączył(a): 11 lis 2013
    Posty: 2
    Pomógł: 0

    Consola:

    **** Clean-only build of configuration Release for project ADC ****

    make clean
    rm -rf ./myuart/myuart.o ./main.o ./myuart/myuart.d ./main.d ADC.eep ADC.hex ADC.lss sizedummy ADC.elf


    **** Build Finished ****

    **** Build of configuration Release for project ADC ****

    make all
    Building file: ../myuart/myuart.c
    Invoking: AVR Compiler
    avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega32 -DF_CPU=1000000UL -MMD -MP -MF"myuart/myuart.d" -MT"myuart/myuart.d" -c -o "myuart/myuart.o" "../myuart/myuart.c"
    Finished building: ../myuart/myuart.c

    Building file: ../main.c
    Invoking: AVR Compiler
    avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega32 -DF_CPU=1000000UL -MMD -MP -MF"main.d" -MT"main.d" -c -o "main.o" "../main.c"
    Finished building: ../main.c

    Building target: ADC.elf
    Invoking: AVR C Linker
    avr-gcc -Wl,-Map,ADC.map -mmcu=atmega32 -o "ADC.elf" ./myuart/myuart.o ./main.o
    Finished building target: ADC.elf

    Invoking: AVR Create Extended Listing
    avr-objdump -h -S ADC.elf >"ADC.lss"
    Finished building: ADC.lss

    Create Flash image (ihex format)
    avr-objcopy -R .eeprom -O ihex ADC.elf "ADC.hex"
    Finished building: ADC.hex

    Create eeprom image (ihex format)
    avr-objcopy -j .eeprom --no-change-warnings --change-section-lma .eeprom=0 -O ihex ADC.elf "ADC.eep"
    Finished building: ADC.eep

    Invoking: Print Size
    avr-size --format=avr --mcu=atmega32 ADC.elf
    AVR Memory Usage
    ----------------
    Device: atmega32

    Program: 522 bytes (1.6% Full)
    (.text + .data + .bootloader)

    Data: 14 bytes (0.7% Full)
    (.data + .bss + .noinit)


    Finished building: sizedummy


    **** Build Finished ****

    __UBRR:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Putty:
    Speed: 9600
    Data bits: 8
    Stop bits: 1
    Parity: None
    Flow control: None

    Taktowanie z wewnętrznego zegara 1MHz.

    ------------------------ [ Dodano po: 34 minutach ]

    Problem rozwiązany.
    Zmieniłem taktowanie na 8MHz na zegarze procka oraz ustawiłem taką samą prędkość w ustawieniach projektu.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 lis 2013, o 15:48 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27415
    Lokalizacja: Szczecin
    Pomógł: 1043

    Ciekawe ile jeszcze razy będzie trzeba przypominać początkującym, żeby zaglądali do noty PDF, ostatnia strona rozdziału UART w dowolnej nocie dowolnego procka AVR i proszę pierwsza tabela dla taktowania 1MHz

    Obrazek

    z której widać jak na dłoni że procent błędów przekracza 2,5% a więc przy tak ŚLIMACZYM tempie taktowania procka nie ma co się dziwić że są KRZAKI

    panie kolego zwiększ sobie taktowanie fusebitami do 8MHz - i wtedy zajrzyj do tabeli dla 8MHz i sprawdź czy będzie można użyć prędkości 9600 ok ?

    wtedy zrozumiesz raz na zawsze jak się dobiera taktowanie procka do potrzeb transmisji RS232

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO