Bit banging two wire interface. More...
#include <cfg/os.h>
#include <cfg/twi.h>
#include <cfg/arch/gpio.h>
#include <sys/heap.h>
#include <sys/event.h>
#include <string.h>
#include <dev/twif.h>
Functions | |
int | NutTwiMasterTranceive (NUTTWIBUS *bus, uint8_t sla, const void *txdata, uint16_t txlen, void *rxdata, uint16_t rxsiz, uint32_t tmo) |
Transmit and/or receive data as a master. | |
int | NutTwiMasterError (NUTTWIBUS *bus) |
Get last master mode error. | |
int | NutTwiSlaveListen (NUTTWIBUS *bus, uint8_t *sla, void *rxdata, uint16_t rxsiz, uint32_t tmo) |
Listen for incoming data from a master. | |
int | NutTwiSlaveRespond (NUTTWIBUS *bus, void *txdata, uint16_t txlen, uint32_t tmo) |
Send response to a master. | |
int | NutTwiSlaveError (NUTTWIBUS *bus) |
Get last slave mode error. | |
int | NutTwiSetSpeed (NUTTWIBUS *bus, uint32_t speed) |
Set Speed of I2C Interface. | |
int | NutTwiGetSpeed (NUTTWIBUS *bus) |
Request Current Speed of I2C Interface. | |
int | NutTwiIOCtl (NUTTWIBUS *bus, int req, void *conf) |
Perform TWI control functions. | |
int | TwBbifInit (void) |
Initialize TWI interface. | |
int | NutRegisterTwiBus (NUTTWIBUS *bus, uint8_t sla) |
Initialize TWI interface bus. | |
int | NutDestroyTwiBus (NUTTWIBUS *bus) |
Variables | |
NUTTWIBUS | TwBbifBus |
TWI/I2C bus structure. |
Bit banging two wire interface.
Tested with AT91R40008 only. Other ARMs or AVR may not work.
* * $Log$ * Revision 1.11 2008/08/11 06:59:42 haraldkipp * BSD types replaced by stdint types (feature request #1282721). * * Revision 1.10 2008/02/15 17:04:49 haraldkipp * Spport for AT91SAM7SE512 added. * * Revision 1.9 2007/10/04 20:16:57 olereinhardt * Support for SAM7S256 added * * Revision 1.8 2007/07/09 13:38:50 olereinhardt * 2007-07-09 Ole Reinhardt <ole.reinhardt@embedded-it.de> * * dev/twbbif.c: Added default TWI_DELAY for avr architecture * to allow in-tree compilation * * net/Makefile: Commented out igmp support as long as it does * not exists to allow in-tree compilation * * Revision 1.7 2007/02/15 16:25:40 haraldkipp * Configurable port bits. Should work now on all AT91 MCUs. * * Revision 1.6 2006/10/08 16:48:09 haraldkipp * Documentation fixed * * Revision 1.5 2006/06/28 17:10:35 haraldkipp * Include more general header file for ARM. * * Revision 1.4 2006/05/25 09:30:23 haraldkipp * Compiles for AVR. Still not tested, though. * * Revision 1.3 2006/04/07 12:50:20 haraldkipp * Added additional delays in TwAck. * Clock and data forced to high before switching to input gives better * waveforms. * Additional delay added to set clock to 50% duty cycle. The PCF8563 * seems to fail, if the clock's high time is much longer than the low time. * * Revision 1.2 2006/01/23 17:32:35 haraldkipp * Automatic initialization added. * * Revision 1.1 2005/10/24 10:21:57 haraldkipp * Initial check in. * * *
int NutTwiGetSpeed | ( | NUTTWIBUS * | bus | ) |
Request Current Speed of I2C Interface.
int TwBbifInit | ( | void | ) |
Initialize TWI interface.
The specified slave address is used only, if the local system is running as a slave. Anyway, care must be taken that it doesn't conflict with another connected device.
sla | Slave address, must be specified as a 7-bit address, always lower than 128. |
References SCL_HIGH, SDA_HIGH, and TWI_ENABLE.