As per, rpi3 device tree, it has two spi buses i.e spi0 and spi1. spi0 bus supports 2 chip select [spi0.0, spi0.1] and spi1 bus supports 3 chip select[spi1.0, spi1.1, spi1.2] pins. All these can be configured in config.txt using dtoverlay.
Now my rpi3 uses spi0.1 for touchscreen interface. I dont want to use spi0.0 because it may cause bus contention. So i need to connect my other peripheral on spi1.x bus.
When i am querying rpi3 for spi buses using getSpiBusList(), the ouput is [SPI0.0, SPI0.1]
How do i get around this issue?
Note:- Using android things 0.7-devpreview
According Raspberry Pi I/O pinout there is only SPI0.0 and SPI0.1 SPI buses pins, so you can't use SPI1.? bus even if you configure it in config.txt.
Related
I am connecting a 74ls151 to rpi 3 and what to use it as a demultiplexer for switching mpu6050 on/off.
Can the 74ls151 be used as demultiplexer?
No it cannot be used as it does not have a bi-directional mechanism. It can be used to multiple between devices that send data to the raspberry pi or arduino, but it cannot receive any data or voltage from the raspberry pi or arduino. So, it is uni-directional.
I recently try to use Lidar Lite v3 with my Rpi 3, and it works with I2C communication. My wiring method is due to offical documentation. Wiring picture However, what I have learned before is that the gpio pin of RPI can only afford 3.3v working voltage. My Question is that shouldn't I add the resistor in my circuit to prevent from breaking out the pins of my RPI ?
I am working on the lowRISC recently, and I want to add Ethernet support for it. I have added the Ethernet IP and have wired it to both AXI bus and Ethernet PHY, and I added the Ethernet interrupt to the interrupt wire just like uart and spi do.
Now I am working to write a driver in linux kernel to support my Ethernet. But I don't find the handle functions to uart and spi interrupts, just 2 interrupts called IRQ_SOFTWARE and IRQ_TIMER(which in file arch/riscv/include/asm/irq.h).
How does the lowRISC chip handle the uart and spi interrupts? And What should I do to handle the interrupt of ethernet on lowRISC chip?
I am new to Linux Device driver and trying to understand Linux device driver model which says a device must registered with its respected bus, be it the platform bus or real spi/i2c bus.
I could see the following macro which registered the i2c client device to its i2c bus.
module_i2c_driver(lm73_driver);
But I am not sure how it happen for a spi client device for example a CPLD/FPGA device sits on the spi bus.
Is such registrations based on the type of device?(block device or char device)
Does the Linux SPI subsystem have support for handling the slave side of SPI interactions?
The mechanism has two devices(devA running on Linux platform board and devB on another platform) glued together via 2 spi buses. The idea is to use one SPI bus when devA acts a master and to use the other bus to handle the return path data from the devB.
Does the Linux SPI subsystem support handling the devB as a slave device during the return data path?