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



Teraz jest 14 wrz 2025, o 23:55


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 78 ]  Przejdź na stronę 1, 2, 3  Następna strona
Autor Wiadomość
 Tytuł: USART
PostNapisane: 26 kwi 2014, o 12:07 
Offline
Użytkownik

Dołączył(a): 13 lut 2014
Posty: 31
Pomógł: 0

Dlaczego w terminalu nie wyświetla mi się literka A kiedy wykonałem odpowiedni program. W funkcji głównej zainicjalizowałem usart kopiując fragment kodu z noty, a następnie stworzyłem pętle while, w której jest:

USART_Transmit('A');
USART_Transmit(0x0d);

Na koniec wpisałem definicję nadawania z noty Pdf.

Używam procesora atmega32 i programu putty. Problem w tym, że gdy wszystko się poprawnie skompiluje, to w terminalu nic się nie wyświetla. Mając włączony terminal gdy odłącze mikrokontroler z usb to wyskakuje błąd, że nie ma połączenia, więc wnioskuję że jest dobre połączenie między mikrokontrolerem z terminalem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 12:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Rozumiem, że pisząc o USB masz na myśli źródło zasilania dla układu.

Dobrze by było jakbyś pokazał:
1. Schemat
2. Inicjalizacja USART razem _UBRR
3. Funkcję USART_tramsmit

Bez tego ciężko się odnieść i trzeba zgadywać.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 13:22 
Offline
Użytkownik

Dołączył(a): 13 lut 2014
Posty: 31
Pomógł: 0

Korzystam z programatora UsbASP który zasila procesor na płytce stykowej. Myślę, że obejdzie się bez schematu, ponieważ podłączyłem tylko odpowiednie wejścia złącza kanda z pinami mikrokontrolera. Inne programy działają więc połączenie jest ok.




Inicjalizacja USART:


void USART_Init( unsigned int baud )
{

UBRRH = (unsigned char)(baud>>8);
UBRRL = (unsigned char)baud;

UCSRB = (1<<RXEN)|(1<<TXEN);

UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);
}






Funkcja USART_tramsmit


void USART_Transmit( unsigned char data )
{

while ( !( UCSRA & (1<<UDRE)) );

UDR = data;
}



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 13:39 
Offline
Użytkownik

Dołączył(a): 23 sty 2014
Posty: 111
Pomógł: 0

Miałem ten sam problem z EVB 5.1 i terminalem PuTTy, nie wyświetlało się nic.
Używam teraz Realterm, i wszystko działa ok.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 13:42 
Offline
Użytkownik

Dołączył(a): 13 lut 2014
Posty: 31
Pomógł: 0

Używam terminala putty. Spróbuje tym, o którym mówisz.

------------------------ [ Dodano po: 7 minutach ]

Niestety Realterm nie działa na moim komputerze. Możecie polecić jakieś inne?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 13:56 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

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

Czemu ustawiasz bit USBS na wartość jeden?
Celowo chcesz wysyłać dwa bity stopu ?
Jeśli tak to musisz w terminalu też ustawić dwa bity stopu. Bo domyślnie jest jeden

To też jest niepotrzebne.
(3<<UCSZ0)
Nie ruszaj bitów UCSZx. Domyślnie są ustawione na ramkę 8 bitową.

Tak na prawdę, jesli schesz tylko wysyłać dane to potrzebujest tylko tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Rejestru UCSRC nie trzeba ruszać.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 13:59 
Offline
Użytkownik

Dołączył(a): 24 kwi 2013
Posty: 454
Pomógł: 30

A jakiej przejściówki USB-USART używasz?
Sprawdzałeś czy działa jak ją odłączysz od atmegi, zewrzesz jej piny TX z RX i coś wysyłasz z konsoli?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 14:13 
Offline
Użytkownik

Dołączył(a): 13 lut 2014
Posty: 31
Pomógł: 0

Z płytki stykowej przeniosłem procesor na uruchomieniową i ona chyba ma wbudowaną przejściówkę, która jest sprawna. Czy na płytce uruchomieniowej trzeba coś dopiąć do procesora czy wystarczy go tylko w niej umieścić żeby komunikował się z komputerem?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 14:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

evb5.1 napisał(a):
trzeba coś dopiąć do procesora czy wystarczy go tylko w niej umieścić żeby komunikował się z komputerem?


No wiesz to zależy. Dlatego były pytania o schemat i przejściówkę.
1. Różnica między RS232C a TTL. Nie wiemy co wychodzi z z Twojej płytki. Z samego proca napewno poziomy TTL.
2. Nie wiemy jaka przejściówka. Czy wychodzą z niej poziomy TTL czy RS232C.

To jest bardzo duża różnica. Jeśli przejściówka ma na wyjściu poziomy RS232C to nie można tego ot tak podłaczyć do proca.
TTL to sygnały 0V i 5V a RS232C to -12V i +12V.

Zobacz czy na plytce masz układ MAX232

A poza tym popraw te inicjalizację USART. USBS ma być na zero. Jeśli używasz normalnego terminala.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 14:36 
Offline
Użytkownik

Dołączył(a): 13 lut 2014
Posty: 31
Pomógł: 0

Inicjalizację poprawiłem. Na płytce nie mam MAX232 ale jest FT232. Są tam wyprowadzone piny FT232. Obok tego jest wyjście na kabel do usb. Czyli gdy podłączam kabel usb to już nie trzeba podłączyć tych wyprowdzeń pinów FT232?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 14:39 
Offline
Użytkownik

Dołączył(a): 24 kwi 2013
Posty: 454
Pomógł: 30

@evb5.1
Ale skąd mamy wiedzieć jaki jest schemat połączeń tej twojej płytki i czy FT232 jest w jakikolwiek sposób podłączony do Atmegi?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 14:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Skoro jest FT232 To znaczy, że płytka ma swoją własną przejściówkę.
Możesz podpiąć się do niej przez USB, zainstalować drivery do FT232. Będziesz miał colejny port szeregowy w komputerze.

Drivery od producenta:
http://www.ftdichip.com/Drivers/D2XX.htm



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 14:47 
Offline
Użytkownik

Dołączył(a): 13 lut 2014
Posty: 31
Pomógł: 0

Już to zrobiłem ale efekt jest taki jak poprzednio tzn. w terminalu nic się nie pokazuje, a gdy odłączam całą płytkę z usb to wyskakuje informacja o odłączeniu w terminalu



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 14:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Ale co jest?
Zainstalowane drivery w kompie do przejściówki na EVB czy piny procesora podłączone do układu EVB.

Słuchaj to jest tak:
Między procem a USB muszisz mieć przejściówkę (z sygnałami szeregowymi o poziomach TTL). Czy ona będzie na EVB czy będzie na zewnątrz to nie ma znaczenia, ale musi być.
Oczywiście musi działać.

Czy teraz jest podłaczone tak:
komputer <---> prejściówka na EVB <---> procesor ?

Jeśli tak jest to na jakim porcie COM w komputerze (numer portu) działa przejściówka?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 14:53 
Offline
Użytkownik

Dołączył(a): 24 kwi 2013
Posty: 454
Pomógł: 30

Pewnie komunikujesz się z samą przejściową, a nie z procem.
Sprawdź miernikiem czy odpowiednie piny FT232 dochodzą do proca (pewnie nie).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 15:01 
Offline
Użytkownik

Dołączył(a): 13 lut 2014
Posty: 31
Pomógł: 0

Jest podłaczone tak:
komputer <---> prejściówka na EVB <---> procesor

Przejściówka działa na COM3

------------------------ [ Dodano po: 1 minucie ]

Jak sprawdzić miernikiem czy odpowiednie piny FT232 dochodzą do proca ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 15:04 
Offline
Użytkownik

Dołączył(a): 24 kwi 2013
Posty: 454
Pomógł: 30

Otworzyć dokumentację proca i ft232, sprawdzić na których pinach mają TX/RX i sprawdzić czy się łączą.
Do tego evb też pewnie jest jakaś instrukcja. A skoro zrzynali od Atnela, to pewnie są tam odpowiednie zworki, albo i nie...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 15:13 
Offline
Użytkownik

Dołączył(a): 13 lut 2014
Posty: 31
Pomógł: 0

Sprawdziłem brzęczykiem i piny TX i RX mikrokontrolera są połączone z wyprowadzeniami TX i RX ft232



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 15:15 
Offline
Użytkownik

Dołączył(a): 24 kwi 2013
Posty: 454
Pomógł: 30

A w prawidłowej kolejności (TX z RX)?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 15:17 
Offline
Użytkownik

Dołączył(a): 13 lut 2014
Posty: 31
Pomógł: 0

TX jest połączone z RX



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 15:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2013
Posty: 844
Lokalizacja: Przemyśl
Zbananowany użytkownik

Pomógł: 43

evb5.1 wklej całego maina, mam ten zestaw to sprawdzę u siebie. Jeśli chodzi o sprzęt to akurat UART jest prawidłowo wykonany i nigdy nie miałem z nim problemów (sprzętowych).

_________________
Klimatyzacja Przemyśl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 16:28 
Offline
Użytkownik

Dołączył(a): 13 lut 2014
Posty: 31
Pomógł: 0

kod programu bez plików nagłówkowych:





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


Kody wklejamy przy pomocy syntax=c - Różowo-zielony J.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 16:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Usuń to:

Cytuj:
UCSRC = (1<<URSEL)|(3<<UCSZ0);



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 16:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 lut 2013
Posty: 600
Pomógł: 47

A co ta funkcja inicjujaca robi wewnątrz main?

_________________
https://www.instagram.com/myfirstquadcopter/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 16:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Oj Ty tam przekazujesz jeszcze zmienną 8bitową jako ten baud. Źle, nie zmieści się.
Musi być 16 bitowa. Przecież nawet wykonujesz przesunięcie dalej:

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



Kod wklejaj przez SYNTAX C



Ostatnio edytowano 26 kwi 2014, o 16:43 przez sq8dsr, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 16:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 lut 2013
Posty: 600
Pomógł: 47

Z tego co widzę to kolega zamiast wywołać funkcje inicjujaca wewnątrz main to umieścił jej treści.

_________________
https://www.instagram.com/myfirstquadcopter/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 16:48 
Offline
Użytkownik

Dołączył(a): 13 lut 2014
Posty: 31
Pomógł: 0

To gdzie ma być ta funkcja inicjująca?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 16:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

evb5.1 napisał(a):
To gdzie ma być ta funkcja inicjująca?


Kolego, definicji i ciała funkcji nie umieszcza się w innej funkcji.
Tylko się ją w innej funkcji wywołuje.

Zobacz:

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 16:56 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 lut 2013
Posty: 600
Pomógł: 47

Definicje funkcji inicjujacej umieść poza funkcją main a tylko jej wywołanie w main.

_________________
https://www.instagram.com/myfirstquadcopter/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: USART
PostNapisane: 26 kwi 2014, o 16:58 
Offline
Użytkownik

Dołączył(a): 13 lut 2014
Posty: 31
Pomógł: 0

Teraz dobrze?


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



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: 78 ]  Przejdź na stronę 1, 2, 3  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 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