Skocz do zawartości

Atmega16A, btm-222 nie wysyła znaku


Pomocna odpowiedź

Napisano

Witam.

Mam problem z działaniem modułu BTM222. Podłączenie modułu jest poprawne, scrossowane wyjścia RXT i TXD modułu i mC, zasilanie też ok, fusebity mC ustawione dobrze. Po podłączeniu zasilania bt222 miga dioda sygnalizująca podłączenie zasilania, i jest wykrywalny przez laptopa (urządzenia są sparowane).

Na Atmegę mam wgrany program, który w założeniu powinien wysyłać na komputer literę A co sekundę w nowej linii. Do komunikacji wykorzystuję Putty przez COM31 z prędkością 9600, bez bitu parzystości, z jednym bitem stopu. Niestety w terminalu nic się nie dzieje.

Dodam jeszcze, że po wpisywaniu danych do terminala świeci dioda od przesyłania danych, czyli jakaś komunikacja (Laptop->btm222) chyba istnieje..

#define F_CPU 16000000UL // rezonator kwarcowy 16 Mhz
#include <avr/io.h>
#include <util/delay.h>
#define FOSC 16000000
#define BAUD 9600
#define MYUBRR FOSC/16/BAUD-1

int main( void ) {


	USART_Init ( MYUBRR ); 


while(1) {
	USART_Transmit('A');
	USART_Transmit(0x0d);	//enter
	USART_Transmit(0x0a);	//nowa linia
	_delay_ms(1000);
}
}

void USART_Init( unsigned int ubrr)
  {
  UBRRH = (unsigned char) (ubrr>>8);
  UBRRL = (unsigned char)ubrr;
  UCSRB = (1<<RXEN)|(1<<TXEN);// włączenie odbiornika RX i nadajnika TX
  UCSRC = (1<<URSEL)|(0<<USBS)|(3<<UCSZ0); // transmisja 8N1
  }

void USART_Transmit( unsigned char data ) {
while( !( UCSRA & (1<<UDRE)));
UDR = data;
}

Macie jakieś pomysły??

Próbowałeś zmieniać prędkość komunikacji modułu BTM przez komendy AT?

Najpierw najlepiej spróbuj zrobić pętle i podpiąć moduł do komputera i z komputera wysyłać dane które odbierasz następnie też tym samym komputerem przez bluetooth.

  • Lubię! 1

FuckTycznie 😉 czytałem wcześniej datasheet bt222.. tylko nie wiem czemu byłem pewien, że domyślna prędkość to 9600 😕 coś sobie najwidoczniej ubzdurałem.. Jutro to zmienię i sprawdzę czy jest ok.

[ Dodano: 26-10-2012, 09:29 ]

Zmieniłem baud na 19200 i teraz wygląda to trochę inaczej.. Mianowicie btm222 wysyła do terminala znaki (typu FF FF F8 H2 FF (?)) co kilkanaście sekund.. to moja pierwsza próba zdalnej komunikacji z mC i nie bardzo wiem o co chodzi.

A co do komend AT to nic nie zmieniałem bo raczej nie ma takiej potrzeby.. a poza tym nie mam portu COM przy kompie ani przejściówki.. a przez port bluetooth chyba się nie da(?)

A próbowałeś ustawiać baud także w menedżerze urządzeń w windowsie? Jak sparujesz btm'a, to pojawia się wirtualny port, dla którego można zmieniać baud także z poziomu windowsa - być może tamta wartość odbiega od tego, co ustawiłeś w każdym innym miejscu? Pamiętam, że też sporo się kiedyś napociłem przy uruchamianiu tego modułu, miałem podobne hieroglify w terminalu, a okazało się, że problemem było właśnie jakieś "nie halo" z baudem w tamtym miejscu. PS polecam PuTTy;)

Baud w ustawieniach urządzeń był faktycznie inny.. zmieniłem na 19200 i teraz wygląda to lepiej bo wyświetla mi tą literę A w terminalu ale w ten sposób:

A (1 sekunda..)

A (1 sekunda..)

A (1 sekunda..)

(5 sekund nic..)

A (1 sekunda..)

A (1 sekunda..)

A (1 sekunda..)

(5 sekund nic..)

.

.

Ja już wymiękam 😉 jakieś pomysły??

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...