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



Teraz jest 10 mar 2026, o 11:59


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 26 lis 2013, o 14:27 
Offline
Nowy

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

Witam,
od kilku dni próbuje wysłać dane za pomocą UART na moim Atmega32. Szukałem podpowiedzi w internecie, jednak bez skutku. Skonfigurowałem prędkość transmisji, ramka danych ustawiona na 8bit, 2 bity stopu, bez parzystosci. Jednak przed danymi musze wysłać 25bitów LO i 3 bity HI. Potrzebuje uzyskać taki sygnał do komunikacji poprzez protokoł DMX512. Chce za pomocą uC sterować urządzeniami, które wykorzystują ten protokół. Wymaga on przed rozpoczęciem transmisji 25bitów Break (LO) i 3bity Mark After Break (HI), następnie zostaje wysyłana dopiero standardowa ramka danych UART. Jest początkującym jeżeli chodzi o transmisje sygnałów.

Obrazek

probowalem w ten sposob to zrobic:

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



jednak domyslam sie ze to nie tak powinno wygladac.

Czy jeżeli wyśle na UDR "0x00" to UART wyśle mi ramke danych z bitem startu, polem danych (0000 0000) i dwoma bitami stopu? czy poprostu ustawi stan 0 na linii transmisyjnej?

Proszę o pomoc



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

Dołączył(a): 07 kwi 2013
Posty: 418
Lokalizacja: Rzeszów
Pomógł: 102

Uzyskanie pożądanego efektu nie jest oczywiście możliwe w podany sposób, wysłając BAJTY danych (nie pojedyncze bity).
Tak jak napisałeś wysłanie jakiejkolwiek wartości (również zerowej) jest realizowane jako przesył całej ramki danych protokołu RS232.

Wiem, że nie jest to najlepszy sposób, ale jeśli miałbym coś podpowiedzieć to na początku po prostu ustawiłbym odpowiednie stany na linii portu wyjściowego (PD1), a następnie włączyłbym nadajnik UART'a i kontynuował nadawanie.
Jednak tak jak mówię, nie jest to sposób zbyt optymalny...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 lis 2013, o 19:41 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Według moich źródeł wystarczy break na 24 bity (24*4us=96us, 96us>92us). I tak się składa, że oba oba początkowe impulsy mogą być dłuższe, ale wracając do kodu to proponuję zmieniać konfigurację USARTa przed wysłaniem break i po. Przed wysłaniem konfigurujesz na 83kbps (można dać 1 bit stopu, ale przy 2 też powinno spokojnie działać) i wysłać 0 a po tym ustawić na 250kbps.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 lis 2013, o 22:00 
Offline
Nowy

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

Krauser napisał(a):
Według moich źródeł wystarczy break na 24 bity (24*4us=96us, 96us>92us). I tak się składa, że oba oba początkowe impulsy mogą być dłuższe, ale wracając do kodu to proponuję zmieniać konfigurację USARTa przed wysłaniem break i po. Przed wysłaniem konfigurujesz na 83kbps (można dać 1 bit stopu, ale przy 2 też powinno spokojnie działać) i wysłać 0 a po tym ustawić na 250kbps.


podoba mi się to rozwiązanie, spróbuje to zrobić właśnie w ten sposób.

Zastanawwiam sie równiez nad zastosowaniem Timera. Predkosc transmisji wynosi 250kbps wiec czas jednego bitu to 4us. Ustawiajac timer na 100us wysle stan niski (break) przy wylaczonym TXEN , nastepnie 12us (MAB) HI, a potem ustawic ten pin mikrokontrolera jako wyjscie TX i puscic ramke po UART. Nie jestem pewny czy jest to możliwe.



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: 4 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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