SK LABS
Nuts’n’bolts (25): SX1509 I2C GPIO expander
Igrarije sa LED-ovima
D. PETROVIĆ
1. mart 2023.

Vraćamo se malo „sitnim crevcima” i integralnim kolima koja život mikrokontrolerski znače. Više puta do sada pisali smo o GPIO proširivačima koji povećavaju osnovni broj GPIO mikrokontrolera, neke i na I2C, kao što je to slučaj kod SX1509. SX1509 dolazi u QFN pakovanju, pa je malo nezgodno raditi sa njim van forme modula. Naš primerak je dalekoistočna verzija originalnog Sparkfun modula, te ćemo se Sparkfuna i držati.

SX1509 jedno je veoma zanimljivo integralno kolo koje može da se koristi direktno, u razne svrhe. Recimo, kao klasičan LED ili LED displej drajver, uz mogućnosti PWM (Pulse Width Modulation), Blink i Breath. Čip dolazi sa čak 16 IO pinova, preko kojih radi na 3,3-voltnoj logici. Pinovi su, inače, tolerantni i na petovoltnu logiku, sa maksimalno 15 miliampera u sink konfiguraciji. Pri radu sa LED, za PWM je dostupno 256 koraka, što je ujedno i kontrola intenziteta. Blink kontrola ima 224 On/Off vrednosti, a isto ima i Fade In/Out Breath kontrola. Na sve ovo, SX1509 može da se koristi i za upravljanje tastaturom u 8×8 konfiguraciji. Čip dolazi sa scanning engine, koji omogućava konstantno praćenje do 64 tastera, bez interakcije povezanog mikrokontrolera.

Pločica dolazi sa više bočnih headera na koje je razvedeno 16 GPIO, osam po svakoj strani. Za upravljanje je razvedeno sedam pinova, od kojih su dva krajnja naponska. Pin nINT je interrupt i dolazi sa 10K otpornikom u pull-up, a može da se programira tako da ide LOW svaki put kada se promeni stanje određenog pina. Pin OSC je opcioni Clock Input koji možemo da programiramo, recimo, ako ne želimo da koristimo interni od dva megaherca u SX1509. Pinovi SCL i SDA su I2C pinovi koji dolaze sa svojim 10K pull-up otpornicima, ali i trace džamperom ispod pločice gde ove otpornike možemo da isključimo. Za odabir I2C adrese ispod pločice su dva solder džampera i moraju da se zaleme u jednoj od kombinacija, a tu je i tabela sa adresama. Pin nRST je aktivno LOW i sa tom naponskom logikom isključujemo SX1509. Dolazi sa 10K na pull-up HIGH, te može i da se ignoriše. Inače, za rad sa pločicom ćemo i koristiti samo I2C i naponske pinove. Pomenusmo da SX1509 GPIO mogu da rade i sa pet volti, u tu svrhu ispod pločice su dva trace džampera koji moraju da se iseku.

Za rad sa ovim integralnim kolom koristimo SparkFunSX1509 biblioteku koja može da se preuzme direktno kroz menadžer biblioteka u Arduino IDE. U primerima je priličan broj njih, počevši od klasičnog Blink skeča, pa preko primera za PWM, Breath, digitalWrite, digitalRead, keypad, clock i drugo. Struktura skeča za upravljanje SX1509 je prilično uprošćena sa namenskim funkcijama pri pozivanju sa objektom. Recimo, Blink skeč ispod u par linija omogućava LEDici na pinu 15 da trepti.

#include <Wire.h>

#include <SparkFunSX1509.h>

const byte SX1509_ADDRESS = 0x3E; // Zavisi od odabira

SX1509 io;

const byte SX1509_LED_PIN = 15; // LED na SX1509 pinu 15

void setup(){

Wire.begin();

io.begin(SX1509_ADDRESS);

io.clock(INTERNAL_CLOCK_2MHZ, 4); //delimo clock na 250KHz a može biti između 1-7

io.pinMode(SX1509_LED_PIN, OUTPUT);

io.blink(SX1509_LED_PIN, 1000, 1000);//približno 1000ms LOW i HIGH

}

void loop(){

}

Kao što vidite, struktura je jako slična klasičnom Blink skeču uz funkciju blink koja u jednoj liniji završava posao.

Breath efekat je jako zanimljiv uživo i već razmišljamo gde bi bilo zgodno da ga koristimo.

#include <Wire.h>

#include <SparkFunSX1509.h>

const byte SX1509_ADDRESS = 0x3E;

SX1509 io;

const byte SX1509_LED_PIN = 15;

void setup(){

Wire.begin();

io.begin(SX1509_ADDRESS);

io.clock(INTERNAL_CLOCK_2MHZ, 3);

io.pinMode(SX1509_LED_PIN, ANALOG_OUTPUT);

//io.breathe(SX1509_LED_PIN, LOW, HIGH, rise from LOW to HIGH, rise from HIGH to LOW

io.breathe(SX1509_LED_PIN, 1000, 500, 500, 250);

}

void loop(){

}

Ovde vidimo još par parametara koji govore od koliko milisekundi će LED „disati” u oba pravca. Efekat, naprosto, morate videti, nama se jako svideo.

Preturajući po primerima u demo, vidimo jako interesantnu implementaciju prostog SPI interfejsa, što može da bude dosta korisno. Koristeći sve pinove SX1509, primer radi sa više LED, 3×4 tastaturom i pomenutim SPI. Primer je malo kompleksniji da ga ovde objavljujemo, ali svakako ga vredi pogledati, jer je dobro dokumentovan. U suštini, kombinuje nekoliko postojećih primera biblioteke.

S obzirom na to da SX1509 može i „potapati” struju, pri sink konfiguraciji je logika obrnuta. U tom slučaju bi se pin sa pinMode(pin, ANALOG_OUTPUT) trebao deklarisati kao LED drajver, a sa analogWrite(pin, 255), zapravo, ispisao LOW na LED, to jest, ugasio bi je. Biblioteka omogućava mnogim funkcijama SX1509 da obitavaju u setup funkciji, te na taj način oslobađa loop funkciju.

SX1509 je jako mali čip, sa isto tako malo dodatnih komponenata, a sposoban je da obavi veći deo posla, te na taj način oslobodi prateći mikrokontroler. Vidimo ga pri radu sa tastaturama, LED matricama i LED uopšte. Cena je pristojna, a jedini problem može predstavljati QFN pakovanje ako je opcija sopstveni dizajn. Ako to jeste slučaj, krajnje je vreme da sebi nabavite jednu mini-peglu, poput MHP30 (SK 8/2021, i.sk.rs/29861).


PRETHODNI TEKST
SLEDEĆI TEKST
Najčitanije
Igre
Telefoni
Hardver
Softver
Nauka
Aktuelno štampano izdanje
JUN 2025
Doom: The Dark Ages
Doom iz mračnog doba drugačiji je od svih drugih Doomova, jer je Slayer koncipiran kao tenk sa štitom...
Clair Obscur: Expedition 33
Estetika Belle Époquea, gameplay u skladu sa kanonima JRPG-a, vrhunsko pripovedanje i ljubav prema igrama...
Computex 2025, Tajpej, Tajvan
AI NEXT
Ovaj, nekada ultra-PC-specifični sajam, odavno se proširio na srodne tehnologije, biznis rešenja i digitalne usluge, postavši varijanta azijskog C...
Gigabyte GeForce RTX 5070 Gaming OC 12G
Višak samopouzdanja
Kartica je sa hardverske strane vrlo kvalitetna, ali ništa ne može da nadomesti nedostatak snage „pod haubom”...
Asus ProArt P16 (H7606WP)
Pronalazak neverovatnog
Novi ProArt P16 donosi moderna rešenja, u dobro usaglašenom odnosu gabarita i performansi – alatka koju ćete sa ponosom nosati sa sobom...
Logitech ProX Superlight 2
Sve udvostručeno
Ovaj miš predstavlja jasnu indikaciju da najveći proizvođač ne želi da napusti nijedan segment tržišta...
Winhance 25.05
Popravka Prozora
U pitanju je alatka koja omogućava da se brzo rešite (većine) bloatwarea, ali i da obavite optimizaciju rada Windowsa...
TCL NXTPAPER 11 Plus
Momak za sve
Ovo bi bio najbolji tablet „za te pare” i da košta 100 evra više...
.rs: Beogradski prevoz na Yandexu • Srbija u SEPA • Loši primeri digitalizacije
Unapređeno e Zakazivanje
Beogradski prevoz na Yandexu • Srbija u SEPA • Loši primeri digitalizacije
Google Mariner, Google Astra i AI autonomni agenti
Uspon tihog softvera
Umesto kliktanja stručnog lica, softver će, već ove godine, u tihom, gotovo nečujnom načinu rada - završavati posao...
Fatal Fury: City of the Wolves
Fatal Fury je oduvek bio čudna cvećka u svetu borilačkih igara; takav je i ostao...
Arc Raiders
Novi extraction shooter iz pera autora dobrih delova franšize Battlefield (i potcenjenog The Finals)...
© 2025 Svet kompjutera. Sva prava zadrzana.
Novi broj - Arhiva - Forum - O nama