Odpowiedzi:
Istnieje wiele informacji o GPIO RPi tutaj: http://elinux.org/Rpi_Low-level_peripherals
Zgodnie z nim możesz zaprogramować dowolne piny GPIO dla I²C, ale:
Styki 3 (SDA0) i styki 5 (SCL0) są wstępnie ustawione do użycia jako interfejs I²C. Tak więc na płytce znajduje się rezystor podciągający 1,8 kilooma.
Ta strona wiki zawiera również przykłady kodów niskiego poziomu GPIO dla różnych języków, które powinny zacząć. Jeśli potrzebujesz odświeżenia tego, czym właściwie jest I²C, oto taki, który bierze również pod uwagę RPi.
W przypadku konkretnego sterowania I²C ta biblioteka python może być pomocna, omówiono ją w tym poście na blogu , który zawiera przykładowy kod.
Wiele dyskusji na ten temat. Oto, co pokazuje moje czytanie i gadanie:
/etc/modprobe.d/raspi-blacklist.conf
i komentujesz wpis dla i2c-bcm2708
; następnie edytuj /etc/modules
i dołącz i2c-dev
; następnie uruchom ponownie. Powinieneś teraz mieć /dev/i2c-0
specjalny plik, który jest bardzo łatwy w użyciu.
Oto kilka przykładów, które zrobiłem
Sprzęt komputerowy:
Jak wspomniano w Tapio, sprzęt jest dobrze udokumentowany na stronie http://elinux.org/Rpi_Low-level_peripherals
Oprogramowanie:
W przestrzeni użytkownika Linuksa ( #include <linux/i2c-dev.h>
) znajduje się nagłówek i2c-dev . Ponadto potrzebujesz postaci decyzyjnej do czytania. Można to zrobić, ładując odpowiednie moduły. i2c_bcm2708
dla niskopoziomowego sterownika i i2c-dev
do generowania znaków dla autobusów. Zastosować ...
sudo modprobe -r i2c_bcm2708
sudo modprobe i2c_bcm2708 baudrate=<your preferred baudrate>
do ładowania ich w locie. Zastosować ...
sudo sh -c 'echo "i2c-dev" >> /etc/modules'
sudo sh -c 'echo "options i2c_bcm2708 baudrate=<your preferred baudrate>\n" > /etc/modprobe.d/custom.conf
i odblokuj i2c_bcm2708
na, /etc/modprobe.d/raspi-blacklist.conf
aby tworzyć /dev/i2c-0
i /dev/i2c-1
wyświetlać się na stałe.
Od teraz możesz podążać za wskazówkami, jak sam korzystać z I²C del maestro.
Wolę tę metodę od innych, ponieważ jest ona platformaagnostyczna. Możesz używać go także linux/i2c-dev.h
z innymi urządzeniami, o ile istnieje sterownik niskiego poziomu I²C.
pozdrowienia