Skocz do zawartości
marcinmajczak

I2C na dodatkowych pinach w ESP32 DEVKID

Pomocna odpowiedź

Witam

Posiadam ESP32 DevKid z złączem 30 pinowym które posiada według producenta dwa interface I2C. Posiadam kilka czujników które mają  ten sam adres i chce w jednym momencie czytania wartości z wszystkich czujników ponieważ urządzenie musi być bardzo szybkie i dokładne a nie chce używać ekspanderów.I teraz moje pytanie czy jest możliwość Software-owo stworzyć  dodatkowych złącz I2C?

Pozdrawiam

Udostępnij ten post


Link to post
Share on other sites

Pewnie że jest moźliwe napisanie "software"owego interfejsu. Często używany na Arduino jest UART w bibliotece SoftwareSerial. Podobnie jest też I2C dostępny na Arduino Playground.

Nie wiem tylko, czy takie podejście jest tym czego potrzebujesz, bo komunikacja taka będzie najpewniej blokować główą pętlę programu i spowalniać wykonanie programu.

Jeżeli chodzi o te 2 interfejcy hardwareowe, to sprawdź czy któryś z nich nie jest do czegoś związanego z płytka devkit. Jeden wiem, że jest bo sam kiedyś testowałem.

  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites

Jest możliwość podpięcia kilku urządzeń z tym samym adresem do jednej magistrali, tylko musiałbyś mieć możliwość wyboru - coś jak pin Chip Enable/Select w SPI. Jakie są te czujniki? Bo może posiadają właśnie takie wyprowadzenia które je aktywują, wiem że niektóre akcelerometry takie maja. Jeżeli nie mają, to możesz spróbować kluczować albo zasilanie albo dostęp do magistrali.

Udostępnij ten post


Link to post
Share on other sites

Wygląda jak coś w tym temacie. PDF

Zastanawia mnie dlaczego na płytce jest dodatkowe wyprowadzenie magistrali. Jest tam też dodatkowy pin INT - zgaduje przerwanie, ale co robi to nie doczytałem. Może to będzie to coś do wyzwalania. Choć patrząc na to co jest w ww. pdf to chyba nie ma innego wyjścia.

  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites

ESP32 ma dwa sprzętowe I2C których I/O można dowolnie remapować. Więc możesz po prostu przepinać sprzętowe I2C na te piny które potrzebujesz.

  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites

ESP32 ma 2 interfejsy a potrzebujesz 5, więc aktywacja drugiego wiele Ci nie da. Podłączenie programowe do różnych pinów uC urządzeń I2C tylko pogorszy sprawę. W uC nie ma czegoś takiego jak "w tym samym czasie" (przynajmniej bez wykorzystywania specjalnych mechanizmów uC), z punktu widzenie człowieka uC może zrobić co prawda miliony operacji "w tym samym czasie", ale tak na prawdę jest to milion operacji wykonanych jedna po drugiej w czasie mrugnięcia oka. Możesz użyć modułu z CD74HC4067 do zwielokrotnienia interfejsów I2C o tym samym adresie, lub czegoś w ten deseń.

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Napisz odpowiedź...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...