Sabtu, 14 Desember 2019

CARA MENGATASI SPI CONFLICT ANTARA SENSOR DAN MICROSD

Tulisan ini berdasarkan pengalaman saya ketika mengerjakan skripsi. Saya membuat rancangan sensor tekanan BMP280 (3 buah) redundant menggunakan komunikasi SPI antara sensor dengan mikrokontroler. (Arduino Mega 2560). Namun ketika sensor dan microSd digunakan pada jalur SPI (MISO, MOSI, SCK) yang sama akan terjadi error pada pembacaan nilai sensor. Hal ini disebabkan karena antara sensor dan microSD memiliki SPI MODE yang berbeda.

Berdasarkan banyak cara yg saya baca, hal ini dapat diatasi melalui cara memberikan pin CHIPSELECT sinyal LOW (saat akan diaktifkan) sinyal HIGH ketika akan bergantian membaca SPI microSD. Selain itu juga dapat dilakukan melalui pengaturan spibegin.transaction(..., SPI.mode_0), ada jga yg dikasih resistor pada MISO microSD, ada yg dsruh pake software spi jadi dilakukan ganti perubahan pin default SPI.

Cara yang berhasil saya gunakan adalah cara terakhir, yaitu memisahkan pin SPI (MISO, MOSI,SCK) antara SPI yang digunakan  sensor (SPI default, pada arduino Mega berada pada pin 50,51,52) dengan SPI yang digunakan oleh MICROSD MODULE( dibuat pada pin 11(MOSI), 12( MISO), dan pin 13(SCK).

Caranya sangat mudah, yaitu biarkan sensor berada pada jalur SPI default (50,51,52), kemudian  hapus library SD yang sebelumnya sudah kamu miliki.
Ganti dengan load library ini.
Kemudian pindahkan pin SPI microSD pada pin digital PWM:
11: MOSI
12: MISO
13: SCK
CHIPSELECT : digital bebas (misal pin 10)

Selesai!

Tidak ada komentar:

Posting Komentar