Raspbery ir Arduino sujungimas naudojant SPI sąsają

Sujungus Arduino RS232 nuosekliu portu maksimalus duomenų perdavimo greitis pasiektas 912600 bod. Arduino analoginių portų nuskaitymo greitis pasiektas ~100 reikšmių viename testiniame 50 Hz signalo periode (sinusoidėje). Signalo perdavimas vyko tekstiniu formatu. Vienos sinusoidės duomenų paketas siekė 100 x 3+1=400 baitų.

Čia:

100 yra reikšmių skaičius,

3 – formatas – perduodamos vienos reikšmės dydis nuo 0 iki 1023, dažniausia būna triženklis (pvz. 568), taigi sudaro tris skaitmenis- ,

1 – atskirtus kableliu: ‘,’ kas padidina duomenų srautą dar vienu baitu.

Taigi reikalingas duomenų srautas yra 400 x 6 = 2400 baitų per 20ms (vieno 50Hz testinio signalo periodas), arba 120 kilobaitų/sek arba 0,96 megabitų/sek (1 baitas=8 bitai)
Tai įmanom ir naudojant RS232 porto maksimalų greitį. Tačiau darant prielaidas, kad matuojamo signalo dažnis bus kintamas  nuo 0 iki ~400Hz ir matavimo taškų pageidautina turėti daugiau – tarkim 256 per periodą, RS232 sąsaja gali būti per lėta.

Kitas sprendimas perduoti informaciją per SPI sąsają. Arduino techninė informacija https://www.arduino.cc/en/Reference/SPI nurodo: If you are using a chip rated at 15 MHz, use 15000000, t.y galima tikėtis 15Mb/sek duomenų perdavimo srauto, kas būtų 15 kartų daugiau, nei RS232 maksimalus greitis.

Telieka pasidaryti SPI sujungimo kabelį ir pabandyti.

Arduino (Leonardo versija) pusėje SPI 6 išvadų kontaktai turi sekantį išdėstymą:

icspheader

Raspberry (Pi versija) GPIO jungtis, kurioje yra ir SPI išvadai atrodo sekančiai:gpio-led

Signalo lygiai nevienodi. Arduino turi 5V lygius, Raspberry – 3,3V. Čia reikalingas lygių keitiklis. Diskusijoje: http://forum.arduino.cc/index.php?topic=139716.0 rekomenduojamas kaip geriausias sprendimas naudoti TXB0104 mikroschemą. Čia pat dalyvis fungus pataria naudoti varžų daliklį. Tokį jau naudojome SD kortelės prijungimui prie Arduino. Schema paprasta: http://robotics.hobbizine.com/raspiduino.html.

Suinstaliavus Raspberry OS SPI sąsaja būna uždrausta. Ją įgalinti galima pakeitus /boot/config.txt failą. Nuimkite komentarą eilutei: dtparam=spi=on.

Parašykite komentarą