Github’e radau hd44780 draiverį https://github.com/brnt/openwrt-hd44780 . Parsisiunčiam su git clone ir pasidedam prie Carambola2 packages:
git clone https://github.com/brnt/openwrt-hd44780.git cp -r openwrt-hd44780/ carambola2/packages
pasikeičiam gpio pin konfigūraciją pagal save, aš naudojau taip:
vim package/openwrt-hd44780/src/hd44780.c
#define HD_RS 15 #define HD_RW 18 // not used if LCD is write-only (typical) #define HD_E 19 #define HD_DB4 20 #define HD_DB5 21 #define HD_DB6 22 #define HD_DB7 23
Galime buildinti kartu su firmware image, kai įjungiam per make menuconfig, bet greičiau ir paprasčiau buildinti atskirai ir po to įsirašyti su opkg
make package/openwrt-hd44780/compile scp bin/ar71xx/packages/kernel/kmod-hd44780_4.1.23+0.1-2_ar71xx.ipk root@192.168.1.1:/tmp
Ir jau ant pačio Carambola2 devaiso:
opkg install /tmp/kmod-hd44780_4.1.23+0.1-2_ar71xx.ipk
Carambola2 kernelio moduliai greičiausiai naudos tuos pačius pinus kitoms funkcijoms ir hd44780 modulis neveiks ir luš. Man reikėjo pašalinti i2c_gpio_custom modulį, tada atsilaisvino gpio pinai ir viskas pradėjo veikti be lūžimų.
rmmod i2c_gpio_custom rm /etc/modules.d/50-i2c-gpio-custom
Pažiūrim, kam naudojami gpio pinai Caramboloje.
root@Carambola2:/# cat /sys/kernel/debug/gpio GPIOs 0-29, ath79: gpio-0 (carambola2:green:wla) out hi gpio-11 (jumpstart button ) in hi gpio-13 (carambola2:orange:et) out lo gpio-14 (carambola2:orange:et) out lo gpio-15 (HD44780_RS ) out hi gpio-18 (HD44780_RW ) out lo gpio-19 (HD44780_E ) out hi gpio-20 (HD44780_DB4 ) out lo gpio-21 (HD44780_DB5 ) out hi gpio-22 (HD44780_DB6 ) out hi gpio-23 (HD44780_DB7 ) out lo
Visa info, kaip naudoti hd44780 draiverį yra autoriaus github puslapyje.
Naudota info iš interneto:
https://wiki.openwrt.org/toh/8devices/carambola2