Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
en:spi_dot_matrix [2016/01/25 10:18] john1117 [SPI Dot-Matrix] |
en:spi_dot_matrix [2017/06/16 14:05] (current) odroid [Example of Scrolling Text] |
||
---|---|---|---|
Line 10: | Line 10: | ||
</WRAP> | </WRAP> | ||
- | ==== How to fix device tree blob with command line ==== | + | === How to enable driver (Only Ubuntu 16.04 or higher is required) === |
- | Install device tree compiler package. | + | Edit /etc/modprobe.d/blacklist-odroid.conf to comment out following two ines. |
- | sudo apt-get install device-tree-compiler | + | |
- | + | ||
- | Edit dtb file. | + | |
<code> | <code> | ||
- | sudo -s | + | blacklist spidev |
- | fdtput -t x /media/boot/exynos5422-odroidxu3.dtb /spi@12d30000 samsung,spi-src-clk 0 | + | blacklist spi_s3c64xx |
- | fdtput -t x /media/boot/exynos5422-odroidxu3.dtb /spi@12d30000 num-cs 0 | + | |
- | fdtput -c /media/boot/exynos5422-odroidxu3.dtb /spi@12d30000/spidev | + | |
- | fdtput -t s /media/boot/exynos5422-odroidxu3.dtb /spi@12d30000/spidev compatible "spidev" | + | |
- | fdtput -t x /media/boot/exynos5422-odroidxu3.dtb /spi@12d30000/spidev reg 0 | + | |
- | fdtput -t i /media/boot/exynos5422-odroidxu3.dtb /spi@12d30000/spidev spi-max-frequency 20000000 | + | |
- | fdtput -c /media/boot/exynos5422-odroidxu3.dtb /spi@12d30000/spidev/controller-data | + | |
- | fdtput -t x /media/boot/exynos5422-odroidxu3.dtb /spi@12d30000/spidev/controller-data cs-gpio 0x46, 0x5, 0x0 | + | |
- | fdtput -t x /media/boot/exynos5422-odroidxu3.dtb /spi@12d30000/spidev/controller-data samsung,spi-feedback-delay 0 | + | |
</code> | </code> | ||
Line 32: | Line 21: | ||
Check your SPI node. | Check your SPI node. | ||
ls /dev/spidev* | ls /dev/spidev* | ||
- | | + | |
==== Compile & run SPI test example source code ==== | ==== Compile & run SPI test example source code ==== | ||
Line 133: | Line 123: | ||
struct spi_ioc_transfer tr; | struct spi_ioc_transfer tr; | ||
+ | memset((void *)&tr, 0x00, sizeof(tr)); | ||
+ | | ||
tr.tx_buf = (unsigned long)tx; | tr.tx_buf = (unsigned long)tx; | ||
tr.rx_buf = (unsigned long)rx; | tr.rx_buf = (unsigned long)rx; | ||
Line 211: | Line 203: | ||
==== Example of Scrolling Text ==== | ==== Example of Scrolling Text ==== | ||
+ | |||
+ | <WRAP round important 100%> | ||
+ | <color #00a2e8>**WiringPi SPI API**</color> use case : | ||
+ | |||
+ | Uncomment this line first. | ||
+ | #define USE_WIRING_PI_LIB | ||
+ | |||
+ | Build the example with proper library option. | ||
+ | if defined USE_WIRING_PI_LIB | ||
+ | Compile : gcc -o <create excute file name> <source file name> -lwiringPi -lwiringPiDev -lpthread | ||
+ | else | ||
+ | Compile : gcc -o <create excute file name> <source file name> | ||
+ | </WRAP> | ||
+ | |||
+ | |||
<code> | <code> | ||
gcc -o dot_test dot_shift_test.c | gcc -o dot_test dot_shift_test.c | ||
Line 361: | Line 368: | ||
{ | { | ||
struct spi_ioc_transfer tr; | struct spi_ioc_transfer tr; | ||
+ | |||
+ | memset((void *)&tr, 0x00, sizeof(tr)); | ||
tr.tx_buf = (unsigned long)buf; | tr.tx_buf = (unsigned long)buf; |