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



Teraz jest 29 mar 2026, o 10:28


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 2 sty 2016, o 14:26 
Offline
Użytkownik

Dołączył(a): 27 wrz 2015
Posty: 33
Pomógł: 0

Po co opóżnienia w postaci loop_1(1) i loop_1(2).

------------------------ [ Dodano po: 13 minutach ]

Chodzi mi o kod mirka



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sty 2016, o 19:09 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Dlatego, że w komunikacji I2C występują zależności czasowe. Przykładowo START to zmiana stanu liniii SDA z wysokiego na niski i po określonym czasie (nie od razu) zmiana SCL ze stanu H na L. Procesor działa dużo szybciej i jeśli zmieniałby stany wyjść bez opóźnień to układ dołączony do magistrali I2C nie byłby w stanie poprawnie rozpoznać poleceń. Jeśli chcesz wiedzieć co kryje się za daną funkcją to kliknij prawym klawiszem i wybierz Open Declaration


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sty 2016, o 19:22 
Offline
Użytkownik

Dołączył(a): 27 wrz 2015
Posty: 33
Pomógł: 0

Widziałem przebiegi w notach ale skąd mam wiedzieć kiedy stosować opóżnienie czy jest to w nocie????



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sty 2016, o 19:28 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Układy dostosowane są do różnych maksymalnych prędkości 100 kHz, 400 kHz, 1 MHz. Ta informacja jest w dokumentacji każdego układu. Ogólne informacje o I2C są w dokumencie I2C-bus specification and user manual. Dobra wiadomość jest taka, że każdy układ może pracować z dowolną, ale niższą prędkością

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sty 2016, o 19:48 
Offline
Użytkownik

Dołączył(a): 27 wrz 2015
Posty: 33
Pomógł: 0

Przeglądałem ten kod mirka ale jest tam pełno naładowanych tych opóżnień więc nie jestem wstanie dojść kiedy wstawiamy opóżnienie i pomiędzy czym???



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sty 2016, o 19:50 
Offline
Moderator
Avatar użytkownika

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

hostinger napisał(a):
Widziałem przebiegi w notach ale skąd mam wiedzieć kiedy stosować opóżnienie czy jest to w nocie????

Jak kiedy ? ... zobacz wpisz sobie w googla

i2c timing

i kliknij szukaj - przełącz się na grafikę i popatrz:
https://www.google.pl/search?q=i2c+timi ... IA#imgrc=_

odwiedź kilka tych stron - przecież te czasy są właśnie opisane w notach i to nie jest tak - że ktoś wie albo nie wie kiedy stosować opóźnienia - ZAWSZE trzeba je stosować jeśli korzystasz z procka. Zawsze masz podane MINIMALNE konieczne czasy opóźnień - dla danego układu, dla danej prędkości transmisji

Wydłużać te czasy zwykle możesz ale poniżej schodzić już nie da rady

------------------------ [ Dodano po: kilkunastu sekundach ]

hostinger napisał(a):
Przeglądałem ten kod mirka ale jest tam pełno naładowanych tych opóżnień więc nie jestem wstanie dojść kiedy wstawiamy opóżnienie i pomiędzy czym???

No bo właśnie nie analizujesz tego z notą PDF dla i2c

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

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

W notach są takie wykresy z porysowanymi przebiegami i zaznaczonymi czasami a gdzieś w pobliżu jest tabelka z opisami tych czasów i ich wartością min. / średnia / max. Niektóre z czasów można nie uwzględniać, jak są mniejsze niż szybkość generowana przez procesor. A niektóre należy obowiązkowo uwzględnić.

Poniżej masz przykładowe takie wykresy i tabelkę. Dla startu masz na przykład na wykresie pokazany czas tsu.sta i w tabeli jest podane że jest to Start Setup Time i dla zasilania 5V minimalny ten czas to 0.25us.

ObrazekObrazek

A 0.25us to czasy dłuższe niż czas między kolejnymi instrukcjami przy zegarze kilka MHz. Więc aby zachować ten warunek musi zostać dodane opóźnienie.

--
Pozdrawiam,
Robert

------------------------ [ Dodano po: 6 minutach ]

I właśnie uwzględnianie czasów i zależności między sygnałami jest tajemnicą dobrze napisanej biblioteki. Bo nawet jak tego nie zrobisz poprawnie masz szansę uruchomić jakiś układ X. Ale po zmianie jego na Y może okazać się że nie działa. Bo X działał poprawnie nawet przy nie spełnieniu warunków a Y musi koniecznie mieć ten warunek spełniony.
Mirek wszystkie swoje biblioteki ma dobrze przygotowane i przetestowane na wielu układach różnych producentów, więc możesz być pewny, że przebiegi czasowe są dobrze dobrane do wymagań.


Autor postu otrzymał pochwałę


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

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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO