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



Teraz jest 17 kwi 2026, o 18:35


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 
Autor Wiadomość
PostNapisane: 2 mar 2014, o 09:33 
Offline
Nowy

Dołączył(a): 01 mar 2014
Posty: 14
Pomógł: 0

Witam!!!

Mam problem z uruchomieniem transmisji Bluetooth z wykorzystaniem USART.

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



funkcja uart_getc() i USART_Init( __UBRR ) :

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


Korzystam z biblioteki z zielonej książki i modułu BTM-222(skonfigurowany na tryb slave i prędkość 19200).
Sprawdziłem już wszystkie połączenia, moduł BT i dalej nie mogę dojść co jest nie tak.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 mar 2014, o 10:29 
Offline
Nowy

Dołączył(a): 23 lut 2014
Posty: 20
Lokalizacja: Szczecinek
Pomógł: 3

A nadawanie działa? Terminal pokazuje co mu wyślesz?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 mar 2014, o 10:41 
Offline
Użytkownik
Avatar użytkownika

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

A w mkuart.h masz wszystko skonfigurowane jak trzeba.

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 mar 2014, o 08:54 
Offline
Nowy

Dołączył(a): 01 mar 2014
Posty: 14
Pomógł: 0

Już wszystko działa :D ale próbuje identyczny program uruchomić na Attiny 2313 i zamiast poprawnych znaków wysyła krzaki.
Prędkość podałem z tablic.
Jak skonfigurować rejestr UCSRC.

Dziękuje za zainteresowanie problemem :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 mar 2014, o 10:28 
Offline
Nowy

Dołączył(a): 23 lut 2014
Posty: 20
Lokalizacja: Szczecinek
Pomógł: 3

W nocie pdf do ATtiny2313, w przykładzie inicjalizacji uarta wygląda 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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 mar 2014, o 10:45 
Offline
Nowy

Dołączył(a): 01 mar 2014
Posty: 14
Pomógł: 0

Skonfigurowałem rejestr tak jak to kolega Rychu zasugerował i po odpaleniu programu z niebieskiej książki do kalibracji OSCCAL widzę:

Obrazek



taktowanie na 16000000 i z tablic UBBR=51



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 mar 2014, o 11:39 
Offline
Nowy

Dołączył(a): 23 lut 2014
Posty: 20
Lokalizacja: Szczecinek
Pomógł: 3

A spróbuj tak:

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  
PostNapisane: 3 mar 2014, o 19:27 
Offline
Nowy

Dołączył(a): 01 mar 2014
Posty: 14
Pomógł: 0

niestety nic się nie zminiło!!!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 mar 2014, o 22:13 
Offline
Nowy

Dołączył(a): 23 lut 2014
Posty: 20
Lokalizacja: Szczecinek
Pomógł: 3

Niestety nie mam jak przetestować bo nie posiadam tego procka, ale według kilku przykładów przykładów i po przeanalizowaniu pdf'a, inicjalizacja dla standardowych ustawień transmisji powinna wyglądać tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

O UBRR, jeżeli jeszcze nie czytałeś:
http://mirekk36.blogspot.com/2013/01/rs232-ubrr-jak-prawidowo-obliczac-trick.html



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 mar 2014, o 10:46 
Offline
Nowy

Dołączył(a): 01 mar 2014
Posty: 14
Pomógł: 0

Dzięki za odpowiedź ale problem leży chyba gdzie indziej.
Skonfigurowałem rejestry zgodnie z nota aplikacyjna PDF, prędkości do funkcji USART_Init(void) podałem z tablic.
Próbowałem wysyłać liczby ale zamiast otrzymywać odpowiednie znaki w ASCII zupełnie inne znaki.
Może procesor wysyła znaki poprawnie ale putty żle to odczytuje?
Czy może procesor jest uszkodzony?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 mar 2014, o 10:57 
Offline
Moderator
Avatar użytkownika

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

Ja podpowiem tak, po pierwsze to najpierw sprawdź sobie komunikację przez zwykły kabel a nie przez Bluetooth ponieważ wprowadzasz sobie dodatkową niewiadomą i tym trudniej znaleźć ci problem.

Gdy już będzie ci to działać na kablu to wtedy zapewniam cię że 100x łatwiej dojdziesz do tego jak zrobić to przez Bluetooth

z opisów jakie można tu znaleźć wynika tylko jedno

1. albo źle ustawiasz fusebity w procku (pokaż jak masz ustawione - dokładne wartości - jakiś zrzut ekranu)
2. albo źle coś kompilujesz - pokaż czy prawidłowo przechodzi ci kompilacja
3. albo źle dobierasz parametry transmisji w putty i procku

i zapomnij o tym że coś tam procesor wysyła a putty źle odczytuje - bo pewnie że źle odczytuje jeśli masz błędy takie jak wyżej. Samo z siebie nic się nie dzieje. Tak samo jestem gotów się założyć po objawach że wcale procesor nie jest uszkodzony, daję sobie nawet głowę obciąć ;)

_________________
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  
PostNapisane: 4 mar 2014, o 20:37 
Offline
Nowy

Dołączył(a): 01 mar 2014
Posty: 14
Pomógł: 0

Tak jak podpowiedziałeś Mirku odpaliłem transmisje po kablu.

Więc po kolei:

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


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

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


2.FUSY

ObrazekObrazek

3.kompilacja:

**** Build of configuration Release for project 07_UART ****

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

Building target: 07_UART_kalibracja.elf
Invoking: AVR C Linker
avr-gcc -Wl,-Map,07_UART_kalibracja.map -mmcu=attiny2313 -o "07_UART_kalibracja.elf" ./MKUART/mkuart.o ./main.o
Finished building target: 07_UART_kalibracja.elf

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

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

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

Invoking: Print Size
avr-size --format=avr --mcu=attiny2313 07_UART_kalibracja.elf
AVR Memory Usage
----------------
Device: attiny2313

Program: 594 bytes (29.0% Full)
(.text + .data + .bootloader)

Data: 52 bytes (40.6% Full)
(.data + .bss + .noinit)


Finished building: sizedummy


**** Build Finished ****

4.ustawienia Putty
Obrazek

5.to co widze zamiast "aaaaaaaaaa":(
Obrazek

Gdzie popełniam błąd?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 mar 2014, o 21:06 
Offline
Moderator
Avatar użytkownika

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

po pierwsze co to jest ?

(0<<USBS)

podpowiedź to jest niestety bzdura (skasuj ten zapis)

po drugie - używasz jakiejś starej wersji MkAvrCalculator - to jest SZROT a fusebity masz źle ustawione, dlaczego nie korzystasz z zakładki "Fusy uproszczone" ?

po trzecie - putty masz źle skonfigurowane - wiesz co to jest Flow Control XON/XOF ? jeśli nie wiesz to dlaczego tego używasz? skąd wziąłeś taki przykład ustawień ?

po czwarte dlaczego nie skorzystasz z ustawiania rejestru UBRR za pomocą wzoru z książki albo z bloga

http://mirekk36.blogspot.com/2013/01/rs ... trick.html

a wyżej już ktoś o tym ci pisał .... jednak nie reagujesz na podpowiedzi
------------------------------------------------------------------------------

zdecydowanie użyj najnowszej wersji MkAvrCalculator ze strony www.atnel.pl

_________________
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  
PostNapisane: 5 mar 2014, o 08:51 
Offline
Nowy

Dołączył(a): 01 mar 2014
Posty: 14
Pomógł: 0

Dziękuje za odpowiedź,

Konfiguracje bitu "USBS" ustawiłem na podstawie noty aplikacyjnej //1 bit stopu
Obrazek

Zmieniłem w fusebitach na wewnętrzny oscylator RC na 8000000MHz (dlaczego eclipse tego nie zrobił?).
W puttym nic nie ustawiałem, już tak miałem (zmieniłem Flow Control na "none")
Zmieniłem jeszcze definicje __ubbr

Obrazek

Transmisja zadziałała poprawnie ale po ustawieniu fusebitow przez mkAVR Calculator.
Dlaczego eclipse nie ustawiał Częstotliwości taktowania poprawnie?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 mar 2014, o 14:20 
Offline
Użytkownik
Avatar użytkownika

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

ALEKS napisał(a):
Dlaczego eclipse nie ustawiał Częstotliwości taktowania poprawnie?


Oczywiście, że ustawił wszystko poprawnie. To jest jedynie środowisko, on ustawił sobie zmienną, na podstawie której kompilator będzie wiedział np jak ustawić opóźnienia. Fusów to on Ci kolego nie ustawi. :) Ty mu tylko sygnalizujesz z jaką prędkością działa, nie jest ważne dla niego czy to zewnętrzny kwarc czy wewnętrzny oscylator, a jedynie prędkość aby móc dokonać stosownych obliczeń i poprawnie skompilować program.

_________________
sig off ;(



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

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