ATNEL tech-forum https://forum.atnel.pl/ |
|
Biblioteka MK_I2C - mam problem https://forum.atnel.pl/topic22782.html |
Strona 1 z 2 |
Autor: | RychuER [ 10 sty 2020, o 11:57 ] |
Tytuł: | Biblioteka MK_I2C - mam problem |
Witam, mam pewien problem z biblioteką MK_I2C, przy próbie uruchomienia jej w trybie Master dla ATtiny4313 dla wartości 100kHz przy taktowaniu 14745600 Hz dostaje wartość -1. Co robię nie tak? Oto moje ustawienia biblioteki: #define I2C_MODE 0 #define USE_SOFT_I2C 1 // soft I2C only for MODE = 0 (Master) #define iSCL PB7 #define iSDA PB5 #define SCL_PORT PORTB #define SCL_DIR DDRB #define SCL_PIN PINB #define SDA_PORT PORTB #define SDA_DIR DDRB #define SDA_PIN PINB |
Autor: | mirekk36 [ 10 sty 2020, o 12:12 ] |
Tytuł: | Re: Biblioteka MK_I2C - nie działa |
Może najpierw warto sprawdzić w nocie PDF swojego procka czy masz w ogóle TWI(I2C) ? czy tylko USI ? |
Autor: | RychuER [ 10 sty 2020, o 12:14 ] |
Tytuł: | Re: Biblioteka MK_I2C - nie działa |
Liczyłem, że może uda się mi uruchomić bibliotekę w trybie Master ale softwarowym. Teraz zauważyłem że jednak to się nie uda. Nie ma możliwości modyfikacji kodu w celu dostosowania go do trybu master dla małych mikrokontrolerów? |
Autor: | mirekk36 [ 10 sty 2020, o 12:32 ] |
Tytuł: | Re: Biblioteka MK_I2C - nie działa |
A co za problem żeby to działało w trybie I2C Software ? Żaden problem. Co więcej procek ma USI a więc też da się to pewnie wykorzystać ------------------------ [ Dodano po: kilkunastu sekundach ] Przy okazji jak robisz I2C Soft to po co sprawdzasz ustawienia Bitrate ? to jest tylko dla trybu sprzętowego |
Autor: | RychuER [ 10 sty 2020, o 12:36 ] |
Tytuł: | Re: Biblioteka MK_I2C - nie działa |
Można prosić o jakieś wskazówki jak uruchomić to w trybie Master dla tego ATtiny? Chodzi oczywiście o tryb soft. |
Autor: | mirekk36 [ 10 sty 2020, o 12:55 ] |
Tytuł: | Re: Biblioteka MK_I2C - nie działa |
ustawić tryb software I2C i to wszystko nic więcej nie trzeba robić. Tylko nie zaglądaj tam do tej funkcji która pokazuje ci -1 bo ona nie jest do soft i2c |
Autor: | RychuER [ 10 sty 2020, o 12:58 ] |
Tytuł: | Re: Biblioteka MK_I2C - nie działa |
#define USE_SOFT_I2C 1 I to tyle? Żadnej dodatkowej inicjalizacji? |
Autor: | mirekk36 [ 10 sty 2020, o 13:05 ] |
Tytuł: | Re: Biblioteka MK_I2C - nie działa |
Ja nie za bardzo rozumiem o czym kolega pisze? Pomijam już że w otrzymanym pliku ZIP jest przykładowy kod. I nie wiem też skąd pytanie o to czy nie trzeba inicjalizować ? Jak to nie - skoro jest funkcja do inicjalizaji ... Oczywiście że trzeba inicjalizować |
Autor: | RychuER [ 10 sty 2020, o 13:07 ] |
Tytuł: | Re: Biblioteka MK_I2C - nie działa |
Trochę się nie zrozumieliśmy, ale już wiem wszystko Dzięki za pomoc |
Autor: | mirekk36 [ 10 sty 2020, o 13:14 ] |
Tytuł: | Re: Biblioteka MK_I2C - nie działa |
a no to powodzenia - powinno spokojnie śmigać. |
Autor: | RychuER [ 10 sty 2020, o 14:21 ] |
Tytuł: | Re: Biblioteka MK_I2C - nie działa |
A więc jednak nie musiałem nie zrozumieć wszystkiego... Bibliotekę uruchamiam w ten sposób: język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. Następnie w main.c definiuje sobie adresy urządzeń slave oraz uruchamiam I2C dla 100kHz: język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Chciałbym móc odczytać dane z czujników INA219A, jednak jak widać w terminalu powyżej zawsze wartość wynosi 255 bez znaczenia czy kanał wyjściowy pobiera prąd czy też nie. Czy jest ktoś w stanie wytłumaczyć mi mocno łopatologicznie jak powinienem wykorzystać ten czujnik? Oraz link do dokumentacji czujnika: http://www.ti.com/lit/ds/symlink/ina219.pdf |
Autor: | gumeni [ 10 sty 2020, o 17:09 ] |
Tytuł: | Re: Biblioteka MK_I2C - nie działa |
Wygląda na to, że nie przesyłasz adresu rejestru, z którego chcesz odczytać wartość. Podajesz jedynie adres układu INA219. W define widzę, że zdefiniowałeś adres rejestru ale z niego nie skorzystałeś. |
Autor: | RychuER [ 10 sty 2020, o 17:30 ] |
Tytuł: | Re: Biblioteka MK_I2C - nie działa |
Adres z którego chciałbym odczytać dane do zmienna o nazwie registerPointer, a w #define dodałem sobie polecenia read oraz write, wartość tych definicji to adres urządzenia + 1 lub 0 w zależności od tego czy chce coś czytać czy zapisywać jednak wciąż dostaje tylko maksymalne wartości dla danego typu zmiennej np 255 jeśli czytam tylko bajt. |
Autor: | gumeni [ 10 sty 2020, o 17:38 ] |
Tytuł: | Re: Biblioteka MK_I2C - nie działa |
Okej faktycznie nie zauważyłem, wydaje mi się, że kod powinien wyglądać tak: język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. A wartość INA1_read = INA1_ADRESS + 1 i raczej język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. Reasumując: |
Autor: | RychuER [ 10 sty 2020, o 17:48 ] |
Tytuł: | Re: Biblioteka MK_I2C - nie działa |
Zastosowałem się do Twoich rad, jednak wartość wciąż wynosi 255. Nie potrafię znaleźć nigdzie dobrego przykładu uruchomienia tego czujnika :/ |
Autor: | gizmo5418 [ 10 sty 2020, o 18:10 ] |
Tytuł: | Re: Biblioteka MK_I2C - nie działa |
Układ czujnika jak ma podpięte nogi adresowe A0 i A1 ? Poczytaj po tym linkiem. Masz ładnie wszystko opisane. http://www.jarzebski.pl/arduino/czujniki-i-sensory/cyfrowy-czujnik-pradu-mocy-ina219.html Musisz sobie zaglądnąć do biblioteki. Co prawda jest to arduinowa biblioteka, ale wyciągniesz z niej sposób obsługi układu. |
Autor: | RychuER [ 10 sty 2020, o 18:12 ] |
Tytuł: | Re: Biblioteka MK_I2C - nie działa |
Jeśli chodzi o podłączenie układu to wykorzystuję pierwsze 4 adresy dostępne w nocie katalogowej (chodzi mi o sposób podłączenia ich w układzie), korzystałem już z tej strony niestety opisany tam kod dotyczy Arduino :/ |
Autor: | gumeni [ 10 sty 2020, o 18:19 ] |
Tytuł: | Re: Biblioteka MK_I2C - nie działa |
język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. powinno być uint16_t Tak jak kolega wyżej napisał, musisz nam teraz dostarczyć informacji na temat hardware. Wrzuć jakiś schemat, zdjęcia itp. Korzystasz z własnego projektu płytki, czy kupiłeś jakieś gotowce? Najlepiej odłączyć pozostałe 3 INA219 i zająć się najpierw obsługą jednego. Wykomentuj także obsługę ich w kodzie. Wrzuć obecny kod. |
Autor: | gumeni [ 10 sty 2020, o 18:48 ] |
Tytuł: | Re: Biblioteka MK_I2C - nie działa |
Autor: | gumeni [ 10 sty 2020, o 19:25 ] |
Tytuł: | Re: Biblioteka MK_I2C - nie działa |
Niestety nie mam dostępu do biblioteki Mirka Zobacz czy w funkcji i2c_read_word jest dodawane 1 do adresu. ------------------------ [ Dodano po: 15 minutach ] Jaki masz spadek napięcia na R13? |
Autor: | gizmo5418 [ 10 sty 2020, o 19:41 ] |
Tytuł: | Re: Biblioteka MK_I2C - nie działa |
W takim wypadku, czyli pisząc obsługę układu, bardzo przydatny jest analizator stanów logicznych lub oscyloskop. Jak na dłoni by było widać, co wysyłasz do układu - adres, nr. rejestru i co jest zwracane. Jak jesteś w posiadaniu choć jednej z tych rzeczy, to podpinaj i szukaj błędu.... |
Autor: | gumeni [ 10 sty 2020, o 19:44 ] |
Tytuł: | Re: Biblioteka MK_I2C - nie działa |
Zgadzam się z gizmo5418 |
Autor: | RychuER [ 10 sty 2020, o 20:17 ] |
Tytuł: | Re: Biblioteka MK_I2C - nie działa |
Właśnie zabieram się za sprawdzenie linii SDA i SCL. |
Autor: | mirekk36 [ 10 sty 2020, o 22:04 ] |
Tytuł: | Re: Biblioteka MK_I2C - nie działa |
Przede wszystkim ... przede wszystkim to trzeba zrozumieć i piszę o tym już w Bluebooku, że nie ma na świecie jednej UNIWERSALNEJ biblioteki i2c do wszystkich scalaków/urządzeń świata. Ja nie mam czasu na wnikanie w PDF'a tych scalaków INA ale od przestudiowania noty bym zaczął. Następnie sprawdził gotowe funkcje w bibiotece do przesyłania danych i ew dopasował je do scalaka jeśli zajdzie taka potrzeba. Jedyne co mogę powiedzieć to w tej bibliotece nie podaje się żadnych oddzielnych adresów do zapisu i do odczytu tylko jeden bazowy adres a biblioteka sama dba o najmłodszy bit mówiący o operacji read/write. Jeszcze raz powiem w Bluebooku opisuję dokładnie o co chodzi i pokazuję właśnie DWA różne przykłady scalaków oraz wyjaśniam różnice komunikacji między nimi, na co zwracać uwagę i jak postępować ... Trzeba tylko poczytać. |
Autor: | tonygryps [ 10 sty 2020, o 22:35 ] |
Tytuł: | Re: Biblioteka MK_I2C - nie działa |
Mirku ten scalak spokojnie da się odczytać twoimi funkcjami i2c_read_buf i i2c_write_buf wiem bo napisałem sobie bibliotekę do niego i działa bez problemu . Autor wątku albo podaje zły adres układu albo odczytuje zły rejestr albo źle zainicjalizował ten scalak. |
Autor: | RychuER [ 10 sty 2020, o 23:18 ] |
Tytuł: | Re: Biblioteka MK_I2C - nie działa |
Jest szansa abyś mógł podzielić się jakimiś wskazówkami lub kodem? |
Autor: | mirekk36 [ 11 sty 2020, o 00:20 ] |
Tytuł: | Re: Biblioteka MK_I2C - nie działa |
tonygryps napisał(a): Mirku ten scalak spokojnie da się odczytać twoimi funkcjami i2c_read_buf i i2c_write_buf wiem bo napisałem sobie bibliotekę do niego i działa bez problemu . No proszę Ale to też pokazuje jednak, że warto najpierw poćwiczyć dobrze i2c na prostszych układach ... poczuć to , nawet wprost ćwiczenia z książki przejść - to daje praktykę, nie zaś od razu zrobić własną płytkę PCB gdzie można jeszcze w projekcie elektronicznym babole porobić. A tu na schemacie widać babole - może nie duże no ale kto podciąga każdy pin SDA i SCL oddzielnym rezystorem 10k ??? To przy 4 scalakach - mamy połączone 4 rezystory równolegle i jaką mamy rezystancję podciągającą na każdej linii ? 10K ? Wprawdzie to akurat nie powoduje jeszcze tutaj takiego problemu - ale jakby człowiek najpierw potestował sobie na jakimś zestawie uruchomieniowym, np ATB Podejrzał schemat takiego zestawu - jak się podłącza scalaki na magistralę i2c itp ... zrobił prototypa. To później i własne PCB by się całkiem inaczej zaprojektowało. |
Autor: | RychuER [ 11 sty 2020, o 08:09 ] |
Tytuł: | Re: Biblioteka MK_I2C - nie działa |
Nawet najlepszym zdarzają się błędy, a ja się za takiego nie uznaje. „Wiem, że nic nie wiem.” Będę dalej walczył z tym układem może uda się coś zdziałać z funkcjami operującymi buforami |
Strona 1 z 2 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |