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



Teraz jest 25 wrz 2024, o 22:23


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 16 ] 
Autor Wiadomość
PostNapisane: 3 sty 2013, o 16:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Witam!
Czy ktoś z szanownych kolegów robił może już taką komunikację. Jakieś wskazówki, porady na co zwrócić uwagę.
Z tego co wyczytałem najgorzej będzie zrobić proga dla slave?

Pozdro

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sty 2013, o 16:19 
Offline
Moderator
Avatar użytkownika

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

developer85 napisał(a):
Z tego co wyczytałem najgorzej będzie zrobić proga dla slave?


No troszkę będzie z tym roboty, sam nie robiłem tego ale można w necie znaleźć różne gotowe biblkioteki ze Slave I2C sprzętowym - nie powinno być źle. Można je albo zaadaptować albo podpatrzeć i przerobić pod siebie. Na pewno gdzieś takie po drodze widziałem gdy interesowałem się kiedyś tym tematem.

_________________
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: 3 sty 2013, o 16:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Jestem własnie zmuszony użyć I2C do takiej specyficznej komunikacji bo mam tylko dwa "kabelki" wolne. Ok poszperam w necie i jeśli coś będzie nie teges to napisze:)

------------------------ [ Dodano po: 20 minutach ]

Wpadł mi jeszcze jeden pomysł do głowy: ewentualnie zastosować procka w dwoma UART-mi? i problem transmisji z głowy:)

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sty 2013, o 17:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

zawsze możesz zrobić uarta programowego

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



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

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

developer85 napisał(a):
Wpadł mi jeszcze jeden pomysł do głowy: ewentualnie zastosować procka w dwoma UART-mi? i problem transmisji z głowy:)


Ja zawsze jak miałem się zabrać za komunikację I2C master/slave to kończyło się to zwykle właśnie na UART ;) .... nawet metodą programową jak słusznie wyżej podpowiada SunRiver. Wszystko zależy do czego i jaka ma być to transmisja na tym kanale że tak powiem. Jeśli TYLKO coś wysłać to UART programowy może okazać się zbawieniem ;) i będzie TYLKO jedna linia ;)

_________________
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: 3 sty 2013, o 17:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

dzięki za podpowiedzi:)

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sty 2013, o 08:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Pewnie że mam wolnego INT0-a, generalnie pomysł z programowym UART-em mnie zadowala w pełni.
Ale jeśli Antystatyczny chcesz się pobawić to czemu nie, przyda się nie tylko nam ale myślę wielu urzytkownikom.

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sty 2013, o 21:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sie 2012
Posty: 52
Lokalizacja: Toruń
Pomógł: 1

Witam.
developer85 napisał(a):
Czy ktoś z szanownych kolegów robił może już taką komunikację. Jakieś wskazówki, porady na co zwrócić uwagę.
Z tego co wyczytałem najgorzej będzie zrobić proga dla slave?

Pozdro

Komunikacja mikroprocesorów atmega magistralą sprzętową TWI jest bajecznie łatwa pod warunkiem zastosowania odpowiedniej biblioteki dla atmegi-master i odpowiedniej biblioteki atmegi-slave(może być ich kilka), i tu właśnie przychodzi z pomocą pan Manfred Langemann autor tych bibliotek. Ja tylko dodam, że u mnie komunikacja z atmegami po TWI działa w dwie strony bez problemów - oczywiście dostosowałem(w niewielkim stopniu) te biblioteki od swoich potrzeb. Porty SDA i SCL są ustawiane automatycznie przez sprzętowe TWI. Atmegi zasilam tak jakbym korzystał z ADC. Przy atmega-master port SDA jest podłączony przez rezystor 4,7kOm do plusa zasilania, i port SCL jest podłączony przez rezystor 4,7kOm do plusa zasilania. Przy atmega-slave takich rezystorów niema. Wszystkie porty SDA są połączone ze sobą, wszystkie porty SCL są połączone ze sobą, wszystkie masy procesorów atmega są połączone ze sobą. Korzystam z procesorów Atmega8(docelowo trzy: 1 master i 2 slave) taktowanych "wewnętrznie RC" 8MHz docelowo będą kwarce.

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


TWI_Slave.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_Master.h
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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


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


Przykłady jak zastosować biblioteki w swoich programach zamieszczone sa w plikach *.c przez ich autora, więc nie powinno być kłopotów z dostosowaniem do swoich potrzeb.
Mam nadzieje, że pan Mirek kiedyś o sprzetowej magistrali TWI zrobi poradnik video.

Piotr



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sty 2013, o 22:20 
Offline
Użytkownik

Dołączył(a): 26 lip 2012
Posty: 291
Lokalizacja: okolice Opola
Pomógł: 20

Bardzo nie podoba mi się w pliku General.h ta struktura, zabiera ona niepotrzebnie miejsce we flashu, więc można to spokojnie odrobinkę przerobić.

Po 2 to co rozumiesz poprzez słowo poradnik na temat i2c :?
Bo napisać kilka funkcji typu send_i2c(), receive_i2c(), init() itp. to i przy[....cenzura.... mirekk36 ... hola hola panie kolego - tu u nas na forum trochę inne zasady panują ok? .... ] napisze wg noty procesora a można je spokojnie "scalić" z bibliotekami uartu (mam na myśl zastosowanie np. buforu cyklicznego itp.)
Ja bardziej byłbym właśnie za poradnikiem odbioru - nadawania pomiędzy prockami (chodzi mi o to jak napisać protokół transmisji, ew. zadbać o brak przekłamań np CRC).

[uwaga! celem tego forum nie jest pokazywanie jaki to ja jestem mądry .... tu wchodzą początkujący dla których - może być to problem i to poważny. więc zamiast pisać takie rzeczy - lepiej jest pomóc i np pokazać taki kod napisany własnymi łapkami, jakiś poradnik zrobić na forum]
Bo właśnie napisanie kodu wg. noty kat. to żaden problem, ale zadbanie o to aby było to uniwersalne, szybkie , spójne jest rzeczą trudniejszą.


[ bardzo proszę i gorąco kolegę - o dostosowanie wypowiedzi do tonu naszego forum OK - tylko to się u nas najbardziej liczy i tak już zostanie na zawsze - dobrze ? ]

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 sty 2013, o 00:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sie 2012
Posty: 52
Lokalizacja: Toruń
Pomógł: 1

No i posypały się gromy na mnie. No, cóż ja też jestem początkujący, języka C uczyłem się sam z internetu a na ile go umiem - to jet dobre pytanie. Kiedyś potrzebowałem komunikacji między atmegami przez TWI to szukałem, szukałem, i szukałem aż znalazłem to co wyżej opublikowałem i co mi zadziałało, więc podzieliłem się tym co znalazłem, kto potrzebuje to skorzysta, kto chce na podstawie noty katalogowej sam dochodzić jak stworzyć komunikacje to proszę bardzo to czynić. Ja procedury z tych bibliotek traktuje jak "gotowe klocki lego" i je dla własnych potrzeb zestawiam nieco je modyfikując. I z nich buduje komunikację na szynie TWI. Z pliku "General.h" używam tylko
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
resztę usuwam, a zamieściłem ten plik , bo był w komplecie. Nigdy nie twierdzę, że jestem mądrzejszy od szanownych kolegów, wręcz przeciwnie sam potrzebuje pomocy, dlatego bardzo bym był ciekawy poradnika video o magistrali TWI "od a do z".

Piotr



Ostatnio edytowano 5 sty 2013, o 01:17 przez p_zag, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 sty 2013, o 00:04 
Offline
Moderator
Avatar użytkownika

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

p_zag ---> czy ty przypadkiem nie zrozumałeś TOTALNIE opacznie tych uwag???? przecież skierowałem je do autora tego postu (TYLKO do niego) czyli do kolegi krafin. Więc co ty piszesz ??? jakie gromy na ciebie ??? eeeh ;)

_________________
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 sty 2013, o 00:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sie 2012
Posty: 52
Lokalizacja: Toruń
Pomógł: 1

Ups!....



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 sty 2013, o 11:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

p_zag - dzięki wielkie za podzielenie się kodem. generalnie też tego szukałem żeby jak to ująłeś "skorzystać z gotowych klocków" bo moja wiedza na temat C nie jest na poziomie żeby samemu zrobić z datasheeta biblioteki!!!
Tak, że jeszcze raz dzięki wielkie:)

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2013, o 00:40 
Offline
Użytkownik

Dołączył(a): 26 lip 2012
Posty: 291
Lokalizacja: okolice Opola
Pomógł: 20

Bardzo przepraszam, ale naprawdę nie chodziło mi o pokazanie jaki jestem mądry, czy co gorsza o obrażanie kogoś.
Po prostu "nie wyczułem" jeszcze atmosfery tego forum, a czytając forum elektroda.pl oraz podobne nabiera się bardzo złych nawyków.

Dlatego jeszcze raz bardzo przepraszam.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2013, o 09:08 
Offline
Moderator
Avatar użytkownika

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

krafin napisał(a):
........ oraz podobne nabiera się bardzo złych nawyków.


Na prawdę chodziło mi tylko o to aby właśnie zaskoczyć o co u nas chodzi ;) cieszę się i dlatego myślę, że dalej już wszystko będzie dobrze.

_________________
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: 6 sty 2013, o 18:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sie 2012
Posty: 52
Lokalizacja: Toruń
Pomógł: 1

Witam
Jak by kogoś interesował ten temat to na stronie http://www.mikrocontroller.net/topic/87597#new jest ciekawy artykuł o nazwie "AVR TWI Master und Slave Funtionen in C", co prawda po niemiecku, ale z pomocą tłumacza z goole.pl można co nie co zrozumieć. Tu jest źródełko -> "TWI_Master-Slave_C_Functions.zip" właśnie z tej strony.
Dla tych co lubią asemblera też coś się znajdzie http://www.mikrocontroller.net/topic/31404#new -> "TWI / I2C einf. MASTER SLAVE Beispiel(Assembler) ATmega8", ale i tu też jest coś w języku C.

Piotr



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 2 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