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



Teraz jest 13 lut 2026, o 17:48


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 16 ] 
Autor Wiadomość
PostNapisane: 26 cze 2015, o 21:45 
Offline
Nowy

Dołączył(a): 13 kwi 2013
Posty: 13
Pomógł: 0

Witam.
Odkryłem dzisiaj dziwny problem ze swoim układem. Układ mierzy temperaturę i wysyła przez moduł BTM222 do komputera. Układ wcześniej był złożony i działał. Zamówiłem płytki fabryczne i po lutowaniu chcąc usunąć cynę czyściłem go alkoholem izopropylowym - po tym zabiegu nic nie chciało działaś a na płytce pojawił się osad. Wygrzałem wszystko HOTAIRem i udało się nawiązać łączność z komputerem. Problem pojawia się gdy wysyłam dane (zwykły string) do komputera. Pierwsze miałem program napisany w Bascomie i czasem przeszła część poprawnie a czasem wyskakiwały krzaczki. Napisałem prosty program w C i problem ten sam.
Wcześniej na PCB siedział ATmega88PA były problemy z programowaniem go w mkAVRCalculator, ale z poziomu AVR Studio program poszedł. Myślałem, że coś z nim jest nie tak i zamieniłem go na ATMEGA8L - problem pozostał, po przerobieniu programu.
Kwarc 7372800, fusebity ustawione na zewnętrzny kwarc 3-8MHz (próbowałem na wewnętrznym 8MHz problem ten sam), w programie również wszystko dobrze ustawione na domyślne 19200bodów, tak samo w konsoli.
Najnowszy program:

[ ile razy mam przypominać , że F_CPU nie umieszcza się w kodzie i że szczególnie na tym forum tego nie robimy gdy prezentujemy własne kody. Tym bardziej, że kolega już od dawna jest na naszym forum - mirekk36 ]


Cytuj:
#define F_CPU 7372800 // ---> tego nigdy nie piszemy w kodzie !


Kod:
#include <avr/io.h>
#include <util/delay.h>

void Bluetooth_Init(void)
{
   UBRRH = 0;
   UBRRL = 25;
   UCSRB = (1<<RXEN)|(1<<TXEN);
   UCSRC = (1<<URSEL)|(1<<UCSZ0);
}
void USART_Transmit( unsigned char data )
{
   while ( !( UCSRA & (1<<UDRE)) )
   UDR = data;
}

int main(void)
{
   Bluetooth_Init();
    while(1)
    {
      USART_Transmit('A');
      _delay_ms(1000);
    }
}

Rezultat:
Obrazek
Nie mam pojęcia co może być nie tak czy ten moduł BTM222 się uszkodził, czy po drodze coś jest nie tak, mikrokontroler pracuje przy 5V i jest przejściówka na 3,3V. Jedynie tutaj może coś być nie tak, ale jak pisałem wcześniej układ działał. Co może być nie tak?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 cze 2015, o 23:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

1. Odłącz moduł BTM222 od procesora. Połącz razem sygnały Rx i Tx w tym module. Odpal program Putty i sprawdź echo, czyli napisz w Putty jakiś tam dowolny tekst wciśnij enter. Jeśli wszystko jest OK z modułem powinieneś linijkę niżej zobaczyć to co napisałeś wyżej. To jest jedna z metod na szybkie sprawdzenie tego modułu.
2. Pokaż schemat lub chociaż zdjęcia układu (płytki, połączeń), który zrobiłeś. Dzięki temu może ktoś będzie Ci w stanie pomóc.
3. F_CPU nie umieszcza się w kodzie programu zobacz jak się to robi w Atmel Studio czy w Eclipse: https://youtu.be/UhcyBpM57vo?t=3099 Jeśli tego jeszcze niezrobiłeś to nadrób zaległości, bo są to chyba podstawy podstaw. ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 cze 2015, o 09:37 
Offline
Nowy

Dołączył(a): 13 kwi 2013
Posty: 13
Pomógł: 0

Akurat przewidziałem na PCB wyjście na sygnały RXD, TXD przed pinami uC. Ustawię piny procesora jako wejścia w stanie wysokiej impedancji i wtedy spróbuję podpiąć komputer i przesłać na dane przez Bluetooth. Robiąc zwarcie na liniach chyba nie powinien się uszkodzić uC jeśli jest ustawiony jako wejście w stanie wysokiej impedancji.
Dam znać jak poszły testy.
Przyzwyczajenie z Bascom i asembler każde ładować wszystko w kodzie i szczerze lubię to rozwiązanie, o od razu widzę jakie jest taktowanie i nie muszę szukać w ustawieniach, tym bardziej kiedy pokazuję komuś lub gdzieś publikuję, wszyscy widzą. Dlaczego tak się nie robi?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2015, o 11:21 
Offline
Nowy

Dołączył(a): 13 kwi 2013
Posty: 13
Pomógł: 0

Zrobiłem tekst o którym pisałem. Ustawiłem piny na wejścia w stanie wysokiej impedancji i zwarłem TXD z RXD podłączyłem Putty na 19200 i co prawa wpisane znaki wracały, ale jako krzaczki.
Schemat wygląda tak (R5: 3,3k R6: 6,8k):
Obrazek
Czy to może być wina modułu BTM, jeszcze zastanawiam się nad przejściówką z bramką i dzielnikiem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2015, o 11:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Aby sprawdzić moduł BTM-222 odłącz go całkiem od jakichkolwiek nóżek procesora. Połącz Rx z Tx i sprawdź echo jeszcze raz, to musi działać prawidłowo. Czy skonfigurowałeś ten moduł, tzn zgodnie z poradnikiem? http://atnel.pl/bluetooth-atb-btm-222.html

Co do konwersji...
Zobacz jak się to prawidłowo robi: http://mirekk36.blogspot.co.uk/2015/05/konwerter-poziomow-33v-ttl.html
Łatwo, prosto i przyjemnie!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2015, o 12:01 
Offline
Nowy

Dołączył(a): 13 kwi 2013
Posty: 13
Pomógł: 0

Ale nie mogę odciąć całkowicie, bo musiałbym ciąć ścieżki a to są fabryczne płytki. Właśnie bardzo dziwnie się to zachowuje tak jakby pracował na innych ustawieniach, ale nigdy nic nie konfigurowałem - pracuje na domyślnych.
Moje rozwiązanie z bramką nie jest w niczym gorsze, może droższe o kilka groszy.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2015, o 12:03 
Offline
Moderator
Avatar użytkownika

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

K.G. napisał(a):
Nie mam pojęcia co może być nie tak czy ten moduł BTM222 się uszkodził,

Nie uszkodził - masz niedopasowanie prędkości UART pomiędzy prockiem i kompem albo i po drodze BTM

_________________
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: 28 cze 2015, o 14:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

A posiadasz jakąś przejściówkę USB/RS232 TTL?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2015, o 14:16 
Offline
Moderator
Avatar użytkownika

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

dokładnie, albo problem z przejściówką

_________________
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: 28 cze 2015, o 15:27 
Offline
Nowy

Dołączył(a): 13 kwi 2013
Posty: 13
Pomógł: 0

Chwilka opiszę dokładniej sytuację. Nie ma żadnych przejściówek mam moduł Bluetooth na USB kupiony paruję moduł i łączę się z nim przez odpowiedniego COMa z poziomy Putty.
Z drugiej strony moduł BTM222 jest podłączony przez bramkę i dzielnik prosto do mikrokontrolera.
Mikrokontroler ma ustawiony kwarc oraz prędkość transmisji, moduł jest nowy i nigdy nie był konfigurowany, więc jedzie na 19200 bodów. Na komputerze w Putty również uruchamiam na 19200 bodów. Na dodatek ten moduł działał wcześniej na tej samej płytce (tzn. ta sama mozaika, tyle że teraz jest fabryczna), problem pojawił się po umyciu płytki na początku nie działało nic nawet diody z modułu się nie świeciły, jak podgrzałem i przejechałem po wszystkich polach lutowniczych zaczął działać, wylutowałem i dałem inny uC - nic nie pomogło.
Dodam jeszcze że jak pisałem w Bascomie to po wpisaniu trzech Printów to pierwszy był zniekształcony drugi przeszedł a trzeci np zmienna zerowa również przeszła, chyba dalej jeszcze opróżnienie 10us między Printami. Najgorsze jest to że jak coś zmieniłem to nie działało a dodatkowo po wysyłaniu jednego stringa w stylu Print "dfgfgasgfsgdfgfg" przechodził dobrze kiedy zresetowałem uC co już w ogóle mnie zdziwiło.
Nie rozumiem tego zastanawiam się czy nie uszkodziła się ta bramka lub wejście modułu. Dodam jeszcze, że myślałem, że winą jest ten odbiornik Bluetooth z komputera stacjonarnego, więc przetestowałem to na laptopie gdzie mam wbudowany i problem był ten sam - nawet w innym terminalu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2015, o 16:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Skoro nie masz przejściówki, którą mogłbyś podłączyś się bezpośrednio do modułu i go przetestować, a zarazem nawet echo Ci pokazuje, że coś jest nie tak, to nie wiem jak można Ci pomóc.
Pozostaje sprawdzenie połączeń, bo z tego co piszesz to moim zdaniem wszystko na to wskazuje. Może coś tam jednak nie łączy? Jeśli chcesz zrób kilka zdjęć płytki z tym modułem tak aby było widać połączenia i zobaczymy jak to fizycznie wygląda. Może robisz tam jakiegoś małego babola?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2015, o 16:49 
Offline
Nowy

Dołączył(a): 13 kwi 2013
Posty: 13
Pomógł: 0

Tak wygląda płytka. Czerwony okrąg pokazuje w którym miejscu mam wyprowadzone goldpiny. Myślałem wylutować bramki i zrobić zwarcie między TXD a RXD lub wymienić te bramki.
Najchętniej bym wywalił to i polutował na nowej płytce, bo mam jeszcze jedną, ale jednak moduł kosztuje 50zł.
Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2015, o 18:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Spokojnie, nie jest tak źle. Masz jakiś multimetr?
1. Zmierz napięcie pomiędzy 7 i 14 nóżką tego 74hc14.
2. Na kondensatorze C9
3. Pomiędzy nózkami 17, a 18 i 19 modułu BTM-222
4. W jakim celu nóżkę 1 z 74hc14 podłączyłeś do masy?
5. Na zdjęciu jakoś dziwnie wygląda to połączenie nózek 1, 2, 10, 17 i 29. Jak masz możliwość to popraw je.

A tak w ogóle to na moje oko tam gdzie masz kondensator C10 powinien być wlutowany rezystor R5 i odwrotnie tam gdzie jest rezystor R5 powinien być kondensator C10.

Możesz to sprawdzić? Ewentualnie zrób jeszcze zdjęcie gołej płytki tak aby było widać ścieżki przy module BTM-222 i 74hc14.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2015, o 18:50 
Offline
Moderator
Avatar użytkownika

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

Dla mnie - robić coś na prockach i nie mieć przejściówki jakiejś do RS232 to po prostu - no zgroza i już ;) ..... a możliwości jest tyle że szok - można nawet samemu zrobić .... Ale widać niektórzy wolą zamiast tego się masochizować bez przejściówek ;)

_________________
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: 28 cze 2015, o 19:01 
Offline
Nowy

Dołączył(a): 13 kwi 2013
Posty: 13
Pomógł: 0

Kolego Niveasoft powiedz mi co mi więcej pomoże przejściówka i jak to ująłeś ATmega8 czy ATtiny2313? Nie potrafisz czytać ze zrozumieniem: urządzenie już działo na prototypie, zamówiłem płytki wlutowałem nowe części i po umyciu pojawił się problem. ATmega która tam jest wlutowana jest pod kontrolą i wysyła dane - niekiedy poprawnie, na echo nie reaguje więc co pomoże Twoja przejściówka? Efekt będzie dokładnie ten sam.
K.G. napisał(a):
Luuudzie. Trzymajcie mnie :P Taki marazm i bezradność mnie rozbraja :P
Kolego rusz głową. Pomyśl co zrobiłby McGyver!
Miałbym to gotowe już wczoraj Hahahaha :D

Kolego wybacz, ale widzę po tym jak piszesz i po ilości emotikon, że jesteś młody i masz bujną wyobraźnię - jak byłem w Twoim wieku też mogłem powiedzieć, że rozwiążę problemy z którymi inni się nie radzili przez wieki, ale w dorosłym życiu już pokazuję co się zrobiło a nie to co by się zrobiło gdyby.

mirekk36 napisał(a):
Dla mnie - robić coś na prockach i nie mieć przejściówki jakiejś do RS232 to po prostu - no zgroza i już ;) ..... a możliwości jest tyle że szok - można nawet samemu zrobić .... Ale widać niektórzy wolą zamiast tego się masochizować bez przejściówek ;)


Przejściówek to akurat mam kilka i programuję od dawna w kilku językach, ale tutaj wiedziałem że problem jest po stornie elektroniki, tylko nie wiedziałem co zrobiłem nie tak, bo za swój program dałbym sobie rękę odciąć.

anshar problem chyba jest załatwiony, tak jak słusznie zauważyłeś pomyliłem kondensator C10 z rezystorem R5. Najlepsze jest to, że w dokumentacji mam dobrze a pracownicy firmy produkującej płytki zamienili mi napisy tworząc opis, a ja szybko lutując patrzyłem na opis zamiast do swojej dokumentacji. W efekcie stworzyłem filtr górnoprzepustowy o stosunkowo niskiej fg który jednak lekko zepsuł sygnał. Stary elektronik a tak dałem się nabrać.

anshar zaoszczędziłeś mi kilka godzin pracy w dniu jutrzejszym - bardzo serdecznie Ci za to dziękuję.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2015, o 19:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

No i super! Polecam się na przyszłość! :D



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

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