Serial bit banged interface 0. More...
Go to the source code of this file.
Defines | |
#define | SBBI0_MAX_DEVICES 4 |
Maximum number of devices (chip selects). | |
#define | SBBI0_CS0_ENA() |
#define | SBBI0_CS0_CLR() |
#define | SBBI0_CS0_SET() |
#define | SBBI0_CS1_ENA() |
#define | SBBI0_CS1_CLR() |
#define | SBBI0_CS1_SET() |
#define | SBBI0_CS2_ENA() |
#define | SBBI0_CS2_CLR() |
#define | SBBI0_CS2_SET() |
#define | SBBI0_CS3_ENA() |
#define | SBBI0_CS3_CLR() |
#define | SBBI0_CS3_SET() |
#define | SBBI0_RST0_ENA() |
#define | SBBI0_RST0_CLR() |
#define | SBBI0_RST0_SET() |
#define | SBBI0_RST1_ENA() |
#define | SBBI0_RST1_CLR() |
#define | SBBI0_RST1_SET() |
#define | SBBI0_RST2_ENA() |
#define | SBBI0_RST2_CLR() |
#define | SBBI0_RST2_SET() |
#define | SBBI0_RST3_ENA() |
#define | SBBI0_RST3_CLR() |
#define | SBBI0_RST3_SET() |
#define | SBBI0_SCK_ENA() |
#define | SBBI0_SCK_CLR() |
#define | SBBI0_SCK_SET() |
#define | SBBI0_MOSI_ENA() |
#define | SBBI0_MOSI_CLR() |
#define | SBBI0_MOSI_SET() |
#define | SBBI0_MISO_ENA() |
#define | SBBI0_MISO_TST() 0 |
#define | SBBI0_INIT() |
Functions | |
int | Sbbi0SetMode (ureg_t ix, ureg_t mode) |
Set mode for a given device at SPI0. | |
void | Sbbi0SetSpeed (ureg_t ix, uint32_t rate) |
Set transfer rate for a given device at SPI0. | |
void | Sbbi0Enable (ureg_t ix) |
Enable the serial peripheral interface 0. | |
void | Sbbi0ChipReset (ureg_t ix, ureg_t hi) |
Set or clear a configured reset line for a given device. | |
void | Sbbi0ChipSelect (ureg_t ix, ureg_t hi) |
Set or clear a configured chip select for a given device. | |
void | Sbbi0SelectDevice (ureg_t ix) |
Select the device at a given chip select. | |
void | Sbbi0DeselectDevice (ureg_t ix) |
Deselect the device at a given chip select. | |
void | Sbbi0NegSelectDevice (ureg_t ix) |
Select the device at a given negated chip select. | |
void | Sbbi0NegDeselectDevice (ureg_t ix) |
Deselect the device at a given negated chip select. | |
uint8_t | Sbbi0Byte (uint8_t data) |
Exchange a byte with the currently selected SPI device. | |
void | Sbbi0Transact (CONST void *wdata, void *rdata, size_t len) |
Exchange a specified number of bytes with the currently selected SPI device. |
Serial bit banged interface 0.
* * $Log$ * Revision 1.5 2009/01/18 16:44:56 haraldkipp * Introduced target independent port numbers. * Distinguish between PIO IDs and port numbers. * * Revision 1.4 2009/01/18 10:45:54 haraldkipp * Fixed bit banging SPI for ARM targets. * * Revision 1.3 2008/08/28 16:11:31 haraldkipp * Fixed bitbanging SPI for ARM targets. * * Revision 1.2 2008/08/11 06:59:59 haraldkipp * BSD types replaced by stdint types (feature request #1282721). * * Revision 1.1 2007/04/12 09:07:54 haraldkipp * Configurable SPI added. * * *
Definition in file sbbif0.h.
#define SBBI0_MAX_DEVICES 4 |
Maximum number of devices (chip selects).
Definition at line 69 of file sbbif0.h.
Referenced by Sbbi0SetMode().
#define SBBI0_CS0_ENA | ( | ) |
Definition at line 542 of file sbbif0.h.
Referenced by Sbbi0ChipSelect().
#define SBBI0_CS0_CLR | ( | ) |
Definition at line 543 of file sbbif0.h.
Referenced by Sbbi0ChipSelect().
#define SBBI0_CS0_SET | ( | ) |
Definition at line 544 of file sbbif0.h.
Referenced by Sbbi0ChipSelect().
#define SBBI0_CS1_ENA | ( | ) |
Definition at line 587 of file sbbif0.h.
Referenced by Sbbi0ChipSelect().
#define SBBI0_CS1_CLR | ( | ) |
Definition at line 588 of file sbbif0.h.
Referenced by Sbbi0ChipSelect().
#define SBBI0_CS1_SET | ( | ) |
Definition at line 589 of file sbbif0.h.
Referenced by Sbbi0ChipSelect().
#define SBBI0_CS2_ENA | ( | ) |
Definition at line 632 of file sbbif0.h.
Referenced by Sbbi0ChipSelect().
#define SBBI0_CS2_CLR | ( | ) |
Definition at line 633 of file sbbif0.h.
Referenced by Sbbi0ChipSelect().
#define SBBI0_CS2_SET | ( | ) |
Definition at line 634 of file sbbif0.h.
Referenced by Sbbi0ChipSelect().
#define SBBI0_CS3_ENA | ( | ) |
Definition at line 677 of file sbbif0.h.
Referenced by Sbbi0ChipSelect().
#define SBBI0_CS3_CLR | ( | ) |
Definition at line 678 of file sbbif0.h.
Referenced by Sbbi0ChipSelect().
#define SBBI0_CS3_SET | ( | ) |
Definition at line 679 of file sbbif0.h.
Referenced by Sbbi0ChipSelect().
#define SBBI0_RST0_ENA | ( | ) |
Definition at line 722 of file sbbif0.h.
Referenced by Sbbi0ChipReset().
#define SBBI0_RST0_CLR | ( | ) |
Definition at line 723 of file sbbif0.h.
Referenced by Sbbi0ChipReset().
#define SBBI0_RST0_SET | ( | ) |
Definition at line 724 of file sbbif0.h.
Referenced by Sbbi0ChipReset().
#define SBBI0_RST1_ENA | ( | ) |
Definition at line 767 of file sbbif0.h.
Referenced by Sbbi0ChipReset().
#define SBBI0_RST1_CLR | ( | ) |
Definition at line 768 of file sbbif0.h.
Referenced by Sbbi0ChipReset().
#define SBBI0_RST1_SET | ( | ) |
Definition at line 769 of file sbbif0.h.
Referenced by Sbbi0ChipReset().
#define SBBI0_RST2_ENA | ( | ) |
Definition at line 812 of file sbbif0.h.
Referenced by Sbbi0ChipReset().
#define SBBI0_RST2_CLR | ( | ) |
Definition at line 813 of file sbbif0.h.
Referenced by Sbbi0ChipReset().
#define SBBI0_RST2_SET | ( | ) |
Definition at line 814 of file sbbif0.h.
Referenced by Sbbi0ChipReset().
#define SBBI0_RST3_ENA | ( | ) |
Definition at line 857 of file sbbif0.h.
Referenced by Sbbi0ChipReset().
#define SBBI0_RST3_CLR | ( | ) |
Definition at line 858 of file sbbif0.h.
Referenced by Sbbi0ChipReset().
#define SBBI0_RST3_SET | ( | ) |
Definition at line 859 of file sbbif0.h.
Referenced by Sbbi0ChipReset().
#define SBBI0_SCK_ENA | ( | ) |
Definition at line 985 of file sbbif0.h.
Referenced by Sbbi0Enable().
#define SBBI0_SCK_CLR | ( | ) |
Definition at line 986 of file sbbif0.h.
Referenced by Sbbi0Byte(), and Sbbi0Enable().
#define SBBI0_SCK_SET | ( | ) |
Definition at line 987 of file sbbif0.h.
Referenced by Sbbi0Byte(), and Sbbi0Enable().
#define SBBI0_MOSI_ENA | ( | ) |
Definition at line 989 of file sbbif0.h.
Referenced by Sbbi0Enable().
#define SBBI0_MOSI_CLR | ( | ) |
Definition at line 990 of file sbbif0.h.
Referenced by Sbbi0Byte(), and Sbbi0Enable().
#define SBBI0_MOSI_SET | ( | ) |
Definition at line 991 of file sbbif0.h.
Referenced by Sbbi0Byte().
#define SBBI0_MISO_ENA | ( | ) |
Definition at line 993 of file sbbif0.h.
Referenced by Sbbi0Enable().
#define SBBI0_MISO_TST | ( | ) | 0 |
Definition at line 994 of file sbbif0.h.
Referenced by Sbbi0Byte().
#define SBBI0_INIT | ( | ) |
Set mode for a given device at SPI0.
This is typically the first call in order to use the device. It will not directly enable the SPI hardware. This is done when selecting the device.
ix | The device index, starting at 0. |
mode | The mode to set.
|
Definition at line 84 of file sbbif0.c.
References SBBI0_MAX_DEVICES.
Set transfer rate for a given device at SPI0.
This is currently a dummy and does nothing.
ix | The device index, starting at 0. |
rate | Transfer rate in bits per second. |
Definition at line 102 of file sbbif0.c.
References NutGetCpuClock().
void Sbbi0Enable | ( | ureg_t | ix | ) |
Enable the serial peripheral interface 0.
Enables SPI with the parameters previously set by Sbbi0SetMode().
ix | The device index, starting at 0. The routine will not check if this is valid. |
Definition at line 138 of file sbbif0.c.
References SBBI0_MISO_ENA, SBBI0_MOSI_CLR, SBBI0_MOSI_ENA, SBBI0_SCK_CLR, SBBI0_SCK_ENA, and SBBI0_SCK_SET.
Referenced by Sbbi0NegSelectDevice(), and Sbbi0SelectDevice().
Set or clear a configured reset line for a given device.
Reset lines must be configured when building the system libraries. This routine silently ignores them, if not configured.
ix | The device index, starting at 0. |
hi | If 0, the reset line is driven low. Otherwise the line is driven high. |
Definition at line 165 of file sbbif0.c.
References SBBI0_RST0_CLR, SBBI0_RST0_ENA, SBBI0_RST0_SET, SBBI0_RST1_CLR, SBBI0_RST1_ENA, SBBI0_RST1_SET, SBBI0_RST2_CLR, SBBI0_RST2_ENA, SBBI0_RST2_SET, SBBI0_RST3_CLR, SBBI0_RST3_ENA, and SBBI0_RST3_SET.
Set or clear a configured chip select for a given device.
Chip selects must be configured when building the system libraries. This routine silently ignores selects, if they are not configured.
ix | The device index, starting at 0. Same as the chip select number. |
hi | If 0, the chip select is driven low. Otherwise the line is driven high. |
Definition at line 220 of file sbbif0.c.
References SBBI0_CS0_CLR, SBBI0_CS0_ENA, SBBI0_CS0_SET, SBBI0_CS1_CLR, SBBI0_CS1_ENA, SBBI0_CS1_SET, SBBI0_CS2_CLR, SBBI0_CS2_ENA, SBBI0_CS2_SET, SBBI0_CS3_CLR, SBBI0_CS3_ENA, and SBBI0_CS3_SET.
Referenced by Sbbi0DeselectDevice(), Sbbi0NegDeselectDevice(), Sbbi0NegSelectDevice(), and Sbbi0SelectDevice().
void Sbbi0SelectDevice | ( | ureg_t | ix | ) |
Select the device at a given chip select.
Enables the serial peripheral interface with the parameters previously set for the given device by Sbbi0SetMode() and Sbbi0SetSpeed(). Then the configured chip select line is driven high.
ix | The device index, starting at 0. The routine will not check if this is a valid number. |
Definition at line 275 of file sbbif0.c.
References Sbbi0ChipSelect(), and Sbbi0Enable().
void Sbbi0DeselectDevice | ( | ureg_t | ix | ) |
Deselect the device at a given chip select.
The configured chip select line will be driven low.
ix | The device index, starting at 0. The routine will not check if this is a valid number. |
Definition at line 289 of file sbbif0.c.
References Sbbi0ChipSelect().
void Sbbi0NegSelectDevice | ( | ureg_t | ix | ) |
Select the device at a given negated chip select.
Enables the serial peripheral interface with the parameters previously set for the given device by Sbbi0SetMode() and Sbbi0SetSpeed(). Then the configured chip select line is driven low.
ix | The device index, starting at 0. The routine will not check if this is a valid number. |
Definition at line 305 of file sbbif0.c.
References Sbbi0ChipSelect(), and Sbbi0Enable().
void Sbbi0NegDeselectDevice | ( | ureg_t | ix | ) |
Deselect the device at a given negated chip select.
The configured chip select line will be driven high.
ix | The device index, starting at 0. The routine will not check if this is a valid number. |
Definition at line 319 of file sbbif0.c.
References Sbbi0ChipSelect().
Exchange a byte with the currently selected SPI device.
data | Byte to transmit. |
Definition at line 331 of file sbbif0.c.
References SBBI0_MISO_TST, SBBI0_MOSI_CLR, SBBI0_MOSI_SET, SBBI0_SCK_CLR, and SBBI0_SCK_SET.
Referenced by Sbbi0Transact().
void Sbbi0Transact | ( | CONST void * | wdata, |
void * | rdata, | ||
size_t | len | ||
) |
Exchange a specified number of bytes with the currently selected SPI device.
It is assumed, that the serial peripheral interface has been properly initialized by calling Sbbi0SetMode() and optionally Sbbi0SetSpeed().
Further it is assumed, that the chip select (if there is one) had been enabled by a previous call to Sbbi0SelectDevice() or Sbbi0NegSelectDevice().
wdata | Pointer to the data to transmit. |
rdata | Pointer to a buffer that receives the data from the device. Can be set to NULL for transmit only. May also point to the tranmit buffer, in which case the transmitted bytes are replaced by the bytes received. |
Definition at line 436 of file sbbif0.c.
References CONST, and Sbbi0Byte().