[MinnowBoard] About SPI Chip Select, MinnowMax.
Krau, Michael P
michael.p.krau at intel.com
Thu Apr 16 22:08:29 UTC 2015
In short terms, you are suggesting the conversion of a single slave SPI BUS into an Independent Slave Configuration through the use of the GPIOs.
The thing is that the Chip Select line provided is part of the interface as defined. The timing of the bus is established in the hardware, and the CS1 signal is part of that timing. So CS1 will go low whenever the bus is active.
So, while there are technical ways to provide multiplexing for the chip select, but it will most likely require some discrete logic (or two GPIOS). It would be very difficult to use the current CS and the GPIO pin directly, as the CS pin will go low whenever the bus is in use.
Method one Example:
CS1 .AND. GPIOnn == CS.Device1
CS1 .AND. .NOT. GPIOnn == CS.Device2
Where the terms .AND. and .NOT. are discrete logic components. Basically, using the combination of the two signals to create two new chip selects.
GPIO and .NOT. GPIO establishes the device select, while the Chip Select line retains its function to regulate the overall chip select in regards to the data transfer. (there is a question of gate delays of the signal which could risk communication, but there are ways around this if it is an issue)
Method two: For using GPIOs:
GPIOnn1 = CS.Device1
GPIOnn2 = CS.Device2
Ignore CS1 completely, but use software to handle enabling and disabling chip select.
Then the driver to support the SPI IO either has to be modified, or a front end (shim) added to the interface procedures to add the parameter for device selection and manipulate the GPIO line(s) selected for the purpose (device select - device 1 or 2) in the mix. How this works depends upon the method.
Also, remember doing this is playing around with bus timings. Method one will delay the chip select to the device by the time delay of the gate involved. Method two will most likely enable the slave device before the master interface actually signals the slave enable (making the communication susceptible to bus noise during the expanded window) and keep it enabled longer..
That is the technical (academic) overview of the general question
Michael Krau
While I am an Intel employee, I do not represent Intel and am not authorized to speak for Intel.
-----Original Message-----
From: elinux-MinnowBoard [mailto:elinux-minnowboard-bounces at lists.elinux.org] On Behalf Of John Hawley
Sent: Thursday, April 16, 2015 1:43 PM
To: MinnowBoard Development and Community Discussion
Subject: Re: [MinnowBoard] About SPI Chip Select, MinnowMax.
My understanding is that the GPIOs can be used as a chip select, however the exact steps needed to make them work is something I haven't looked into.
- John
On 4/9/2015 11:59 AM, Ferchu R wrote:
> Hi.
>
> I want to interface a display/touch screen (ILI9325/ADS7843 based)
> with Minnowboard Max. It uses the SPI port, but it has to be shared
> between the LCD controller and the touch controller. However it seems
> that Minnowboard has only one "SPI Chip Select 1". Could other GPIO be
> used as "SPI Chip Select 2"?. What changes could imply this, regarding software?.
>
> Thanks.
>
>
> _______________________________________________
> elinux-MinnowBoard mailing list
> elinux-MinnowBoard at lists.elinux.org
> http://lists.elinux.org/mailman/listinfo/elinux-minnowboard
>
_______________________________________________
elinux-MinnowBoard mailing list
elinux-MinnowBoard at lists.elinux.org
http://lists.elinux.org/mailman/listinfo/elinux-minnowboard
More information about the elinux-MinnowBoard
mailing list