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



Teraz jest 16 sty 2025, o 23:02


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 18 ] 
Autor Wiadomość
 Tytuł: atmega8, rfm70
PostNapisane: 30 lis 2012, o 19:42 
Offline
Nowy

Dołączył(a): 30 lis 2012
Posty: 4
Pomógł: 0

Witam,

Od kilku dni staram się uruchomić rfm70 z atmega8 ale narazie nic nie działa.

Bazuje na bibliotekach od Pana Mirka a dokładniej programie służącym do przesyłania dzwięku, posiadam też tą zieloną książke. Ale do rzeczy...

Po jednej stronie atmega8 po drugiej stronie atmega8L, używam także programowej obsługi spi (tak jak w bibliotekach na płycie załączonej
do książki), używam przerwania INT1 w atmega8, oba układy zasilane z USB z tym, że napiecie jakim zasilam układy to 3,6V(zastosowałem dwie diody impulsowe 1N4148 do obniżenie napięcia z 5V). Jeden układ pracuje z kwarcem 12MHz natomiast drugi z kwarcem 6MHz, różnica w częstotliwości taktowania wydaje mi się, że nie powinna mieć znaczenia. Sprawdziłem milion razy wszystkie połaczenia i wszystko jest dobrze.

W bibliotekach nie zmieniałem nic poza tym że, wydzieliłem inicjalizacje spi oraz przerwania INT1. Sprawdziłem i przerwanie się wykonuje po nadejściu zbocza opadającego gdy rfm70 odłaczony. Sprawdziłem także i funkcja Send_Packet zwraca wartość 0 czyli tak jakby zapis danych do bufora rfm70 dochodziła do skutku. Natomiast nic nie dzieje się po drugiej stronie, tzn nie dochodzi do przerwania od INT1 gdy rfm70 podłaczony.

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

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

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

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


[ przede wszystkim uwaga - proszę na przyszłość umieszczaj kody programów w znacznikach [ syntax = c ] zamiast [ code ], wyedytuj ten post i zobacz jak to jest poprawione teraz ok ? - mirekk36 ]

Z góry dziekuje wszystkim za odpowiedzi.

Pozdrawiam,
Kamil



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 lis 2012, o 23:14 
Offline
Moderator
Avatar użytkownika

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

a teraz pytania i sugestie.

1. wysyłasz niby jakieś tam dziwne ps2_frame[] a co w tej tablicy jest ? zastanowiłeś się ? bo piszesz że nic nie działa a co to znaczy że nic nie działa ?

2. spróbuj na początek odbierać w pollingu a nie na przerwaniach - po co sobie utrudniać życie jeśli jeszcze tego nie robiłeś wcześniej

poza tym trudno mi to przeanalizować jak nie mogę na stole odpalić kodu i sprawdzać na żywym organizmie. Jeśli wciąż ci nie będzie wychodziło - to musisz niestety pokusić się o zestawienie tego dokładnie na dwóch prockach tak jak w ćwiczeniach (2x ATmega32) i sprawdzić sobie najpierw kod z DVD z książki żeby mieć w ogóle porównanie - wtedy zawsze łatwiej przerabiać gdy wiadomo czego można się spodziewać

_________________
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: 30 lis 2012, o 23:39 
Offline
Użytkownik

Dołączył(a): 14 maja 2012
Posty: 518
Pomógł: 6

nie mogę znaleźć, gdzie ustawiasz kanały w nadajniku i odbiorniku,
ale może są w obu rfmach ustawione są te same domyślne i nie w tym tkwi błąd,
SPI rfm70 pracuje max na 8MHz, może to przyczyna, szkoda, że się na tym nie znam i zabieram głos :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 gru 2012, o 00:13 

Pomógł: 0

Przeglądał kolega biblioteki rmf70 od Mirka? 48linijka pliku rmf70.c



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 1 gru 2012, o 00:18 
Offline
Użytkownik

Dołączył(a): 14 maja 2012
Posty: 518
Pomógł: 6

rezasurmar napisał(a):
Przeglądał kolega biblioteki rmf70 od Mirka? 48linijka pliku rmf70.c

no zdążyłem sie poprawić, ale to przez to, że w pierwszym przykladzie na rfm70 Mirek ustawił
kanały i wpuścił mnie w kanał :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 gru 2012, o 01:19 

Pomógł: 0

Zawsze trzeba patrzeć na źródła jeszcze :).



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 1 gru 2012, o 11:46 
Offline
Nowy

Dołączył(a): 30 lis 2012
Posty: 4
Pomógł: 0

@mirekk36
W sensie tego bufora ps2_frame, jeśli to jest tablica globalna to powinny tam być zera... Jak widać w kodzie, stwierdzam że nie odbiera żadnych danych ponieważ nie zapala się dioda na PB0, a powinna się zapalić gdy procesor wejdzie w przerwanie INT1. Takie pytanie jeszcze... Jeśli ta funkcja Send_Packet zwraca 0 to powinienem mieć pewność że komunikacja z rfm70 jest poprawna?

Niestety nie mam na stanie dwóch atmega32 żeby sprawdzić przykładowy program. Będę próbował dziś w wersji z odpytywaniem a jeśli nic z tego nie wyjdzie to pewnie się pofatyguje do sklepu po atmega32.

@wireless
SPI jest programowe przy 12MHz więc wątpie żeby 8MHz clk było przekroczone...

edit:
Napisałem coś takiego w dla nadajnika:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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

Efekt mnie niestety nie zaskoczył... W nadajniku dioda nie gaśnie, tzn że wysyłanie przebiega ponoć prawidłowo...
Natomiast w odpiorniku dioda się nie zaświeca więc nie zoastaje odebrana prawidłowa ramka...
A i dla pewności wszelkiej zmieniłem zegary w nadajniku i odbiorniku na 4MHz wewnętrzengo oscylatora.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 gru 2012, o 13:07 
Offline
Użytkownik

Dołączył(a): 14 maja 2012
Posty: 518
Pomógł: 6

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

tak jest w odbiorniku
gdzie
unsigned char rx_tmp[20];
uint8_t len1;

w nadajniku wysyłam tak:
Send_Packet( W_TX_PAYLOAD_NOACK_CMD, "nadajnik", 8)

i to działa na atmega88
skoro nawet ja to uruchomiłem, to musisz to uruchomić na 8L, szkoda forsy i czasu na 32,
pokaż rfm70.h



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 gru 2012, o 13:34 
Offline
Moderator
Avatar użytkownika

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

Panowie - nie wiem jak was - ale nawet w książce pisałem - że mnie ZAWSZE wkurza jak gdzieś w necie znajduję przykład jakichś tam transmisji (nie ważne jakich) ..... gdzie ludziska z uporem maniaka dla testu wysyłają takie np dane:

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


do jasnej anielki - i co ? jak później to testujecie sobie czy poprawnie się odebrało co ? no proszę mi powiedzieć jak ?

a kolega widzę, że jeszcze "lepiej" wymyślił :( - nie ma to jak przesłać sobie milion zer, i ciekawe jak potem sprawdzasz czy te milion zer do ciebie przyleciało. Tzn nie chodzi mi już o tą ilość - ale o zera! na ZEUSA! no proszę się zastanowić - ale mi już ręce opadają :(

tylko nie zrozum mnie kolego źle, że ja się teraz tu na ciebie wkurzam czy coś :( nie nie nie

proszę tylko o to abyś zrozumiał ile czasu poświęciłem a to aby pokazać ludziom - tobie też i omówić ŁATWE, podkreślam ŁATWE dla człowieka, łatwe dla oka sposoby aby oceniać szybko czy transmisja jest ok.

przecież tych swoich ZER ani nigdzie nie wyświetlisz za bardzo, ani jak ? no nie widzę nawet w tym kodzie jakiegoś sprawdzenia - a ty mi mówisz że nie działa.

POMYŚL jeszcze raz proszę, zajrzyj też do książki .... czy nie prościej przesyłać sobie dla pierwszych testów po prostu łańcuchy znakowe ???? STRINGI ???? a to dlatego że można je od razu wyświetlić w całości i zobaczyć - poczuć czy to na terminalu, czy to na LCD itp itd zamiast tworzyć jakieś dodatkowe dziwne procedury sprawdzające czy paczka dziwnych danych binarnych doszła poprawnie, gdzie najczęściej jeszcze popełnia się 100 dodatkowych błędów w takiej procedurze sprawdzającej - czyli wprowadza do układu równań z 10 niewiadomymi jeszcze 100 dodatkowych niewiadomych.

kurczę toż po co ja tworzyłem funkcję

Kod:
my_receive_packet()


no po co ? po to żebyś ty i każdy mógł jak najszybciej sobie właśnie taki string przesłać i zobaczyć, dodatkowo na płycie DVD dołączonej do książki w materiałach video z ćwiczeń masz nawet FILMIK

Cytuj:
rfm70.avi


zobacz sobie pod koniec tego filmu - jak pokazuję transmisję pomiędzy terminalami .... i co ? jakieś binarki lecą ? nie !!! piękne stringi.

Tylko nie mów proszę że ty tego nie możesz sprawdzić bo np nie masz przejściówki USB/RS232 albo układu MAX232 .... bo jeśli nie masz - to lepiej (bez urazy proszę) ale nawet nie bierz się za ćwiczenia z mikrokontrolerami.

przejściówka USB/RS232 albo chociaż na MAX232

jest jak:

młotek dla szewca
nożyczki dla krawcowej
czy grzebień dla fryzjera


proszę bardzo wyżej kolega wireless napisał ci nawet prostą linię:

Kod:
Send_Packet( W_TX_PAYLOAD_NOACK_CMD, "nadajnik", 8)


i co wysyła ??? jakieś dziwolągowate dane binarne ??? zera ??? nie - łańcuch tekstowy / string = "nadajnik"

więc proszę przede wszystkim tak podejść do testowania komunikacji a od razu będzie milion kłopotów mniej dobrze ???

i przepraszam, że może się trochę uniosłem - ale to nie na ciebie - tylko wręcz na samego siebie - że jakoś to moje ględzenie w książce niezbyt dobrze trafia do wszystkich - może jednak za słabo naciskałem na omówienie tej transmisji ASCII ...

ale obiecuję poprawę - teraz rozpoczynam serię poradników VIDEO w necie - i tam będę już wszystkich PIŁOWAŁ ;) jeśli chodzi o transmisję ASCII a nie durną w tym przypadku binarkę.

------------------------ [ Dodano po: 2 minutach ]

kamilson napisał(a):
Będę próbował dziś w wersji z odpytywaniem a jeśli nic z tego nie wyjdzie to pewnie się pofatyguje do sklepu po atmega32..


poczekaj poczekaj - bo zapomniałem że przecież kolega wireless już sobie poradził z tym zagadnieniem na mniejszych prockach i na szczęście też się tutaj udziela - więc myślę ze skorzystaj też szczególnie z jego porad i uda ci się także na tych prockach , które masz - ale zacznij od ASCII a nie przesyłania sobie stada dzikich zer ok ? ;) ..... proszę

_________________
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: 1 gru 2012, o 15:26 

Pomógł: 0

Sam dodam od siebie że przy uruchamianiu RFM 12B użyłem w nadajniku attiny 861, oczywiście też mi na początku nie działało ale źle ustawiłem kanały w plikach .h robiąc dokładnie krok po kroku wg książki mirka ruszyło od strzału. Właśnie testowałem na stringach ładnie się wyświetlały na lcd i pojawiały w terminalu znakowym.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2012, o 16:15 
Offline
Nowy

Dołączył(a): 30 lis 2012
Posty: 4
Pomógł: 0

Mam przejściówke rs232/usb, i tak jak wireless polecił skleciłem taki oto kod:
Nadajnik:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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


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


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


Nie działa;/
Zabieram się za podpinanie rs232 i zobacze co zwracają kolejne funkcje... bo już nie mam innych pomysłów...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2012, o 16:49 
Offline
Użytkownik

Dołączył(a): 14 maja 2012
Posty: 518
Pomógł: 6

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


tak mam podłączony rfm70 na atmega88 (na 8 chyba jest tak samo)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2012, o 17:05 
Offline
Nowy

Dołączył(a): 30 lis 2012
Posty: 4
Pomógł: 0

Ale to jest programowe SPI wiec obojetne pod jakie piny się podłączy...
Sytuacja wygląda tak, że mój odbiornik już wydrukowałem na płytce a nadajnik na stykowej zrobiłem...
I cały czas się tego trzymałem. Ale kiedy już nie miałem pomysłu to postanowiłem zamienić softy... I działa;)
Ciekawe w sumie dlaczego nie działa odbiór na płytce stykowej...hm



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2012, o 17:37 
Offline
Użytkownik

Dołączył(a): 14 maja 2012
Posty: 518
Pomógł: 6

no to dobrze, bo za słaby jestem, żeby Ci dalej pomagać :D
masz rację co do tego SPI



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 maja 2013, o 17:15 
Offline
Nowy

Dołączył(a): 14 maja 2013
Posty: 9
Pomógł: 0

Takie mało pytanko mam.
Mam zamiar dokonać transmisji przy użyciu podobnego układu jak wyżej omawiany.
Zastanawiam sie nad tym jak zgrabnie połaczyć rfm73 do płytki stykowej.
Mam wersje rfm ze złączem na goldpinach. Raster 1.27 jak sądze.

Potrzebuje taśmy bądź czegoś podobnego, tak żeby wyprowadzić sygnały z rfm do płytki stykowej.
Czy mógłby ktoś wskazać mi, gdzie mogę coś takiego kupić w Warszawie, bądź podać link do zakupu przez internet?

P.S. lub inną radę, która pozwoli mi podłączyć ten moduł do płytki w schludny sposób.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 maja 2013, o 17:57 
Offline
Moderator
Avatar użytkownika

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

maritex.pl i goldpin z rastrem 1.27 mm

_________________
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: 17 maja 2013, o 19:44 
Offline
Użytkownik

Dołączył(a): 14 maja 2012
Posty: 518
Pomógł: 6

a oto dowód, że Mirek zawsze mówi prawdę ;)

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 cze 2013, o 10:44 
Offline
Nowy

Dołączył(a): 14 maja 2013
Posty: 9
Pomógł: 0

Minęło trochę czasu, a ja chciałbym wrócić do tematu. Dziękuję za odpowiedzi. Prosiłbym jeszcze o polecenie taniej lutownicy, która pozwoli mi lutować takie precyzyjne rzeczy. Z naciskiem na niską cenę, bo nie spodziewam się używać jej bardzo dużo, a fundusze mocno ograniczone.



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

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