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



Teraz jest 28 mar 2026, o 23:00


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 21 gru 2015, o 22:17 
Offline
Użytkownik

Dołączył(a): 08 mar 2014
Posty: 398
Lokalizacja: Głogów
Pomógł: 11

Witam wszystkich forumowiczów. Nie mogę poradzić sobie z komunikacją TWI między mega32 a attiny2313. w medze sprzetowy TWI i biblioteka z BB a w attinym USI. Chciałem użyć gotowej biblioteki do slave jednak nie potrafię tego uruchomić. Bardzo Proszę o pomoc.
Testuje to na płytkach testowych. Master z mega32 na płytce ATB a Slave z attiny2313 na AVT3500. Podłączenia to +5V, GND, C0 atmegi z B7 attiny, C1 atmegi z B5 attiny. Zasilanie z programatora 5V.
Slave wysyła w pętli co 3ms bajt o stałej wartości i master powinien tą liczbę odebrać i wyświetlić na lcd jednak nic nie wyświetla.

kod sleva attiny:
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.



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


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



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



Załączam orginalną bibliotekę:



Dodam że próbowałem najpierw napisać kod obsługi SPI według noty jednak bezskutecznie, dlatego postanowiłem znaleźć gotowca tylko na TWI a nie SPI bo takie znalazłem. Był bym bardzo wdzięczny za pomoc w uruchomieniu tej komunikacji.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 gru 2015, o 22:21 
Offline
Użytkownik

Dołączył(a): 08 mar 2014
Posty: 398
Lokalizacja: Głogów
Pomógł: 11

Witam, po nie udanych próbach postanowiłem zmienić komunikacje na SPI bo wydaje mi się prostsza. Napisałem prostą funkcjie transpisji SPI w trybie MASTER korzystająć z USI w attiny2313 która działa. Czy ktoś mógłby mnie naprowadzić jak zmienić bity w rejestrach aby USI pracował w trybie SLAVE a nie MASTER?

kod mastera:
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: 27 gru 2015, o 22:48 
Offline
Użytkownik

Dołączył(a): 08 mar 2014
Posty: 398
Lokalizacja: Głogów
Pomógł: 11

Koledzy pomóżcie. Próbuje wysyłać dane po SPI programowo w trybie SLAVE. SCK od mastera podłączyłęm do wejścia INT0 w medze32. w pętli głównej chcę wysyłać jakąś liczbę a master ma ją odczytać i wyświetlić na LCD. Z tego co nabazgrałem wyświetla albo tylko 0 albo tylko 255.
Tak wygląda funkcja wysyłająca zmienną po spi w pętli głównej:

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


Sygnał SCK odczytuje sprawdzając flagę przerwania i to działa. Połączenia są na 100% pewne, może ma ktoś jakieś sugestie w czym leży problem?


Po przerobieniu kodu otrzymuje komunikacje i przy wartości 0,1,255 jest ok, ale przy innych wartościach dostaje połowę wartości czyli np wysyłam 128 otrzymuje 64 itp.
Sygnał SCK sprawdzam zboczem narastającym, może w tym jest problem?

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: 28 gru 2015, o 14:02 
Offline
Użytkownik

Dołączył(a): 08 mar 2014
Posty: 398
Lokalizacja: Głogów
Pomógł: 11

Już działa wysyłanie i odbieranie pojedyńczych bajtów. Jednak nie mam pojęcia jak wysyłać kilka różnych bajtów lub jak wstawić opóźnienie do pętli głównej.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Domyślam się że należy sprawdzać stan linii CS jednak mimo to gdy w pętli głównej dam opóźnianie 10ms to dostaje 0.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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