Embedded Application Programming Interface - picmg
Embedded Application Programming Interface - picmg
Embedded Application Programming Interface - picmg
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
* Timeout due to clock stretching<br />
| EAPI_STATUS_TIMEOUT<br />
* startNak | EAPI_STATUS_NOT_FOUND<br />
* startNak | EAPI_STATUS_NOT_FOUND<br />
* startAckNak | EAPI_STATUS_WRITE_ERROR<br />
* ReadBCnt>(RBufLen+1) | EAPI_STATUS_MORE_DATA<br />
* Common Error | Common Error Code<br />
* Else | EAPI_STATUS_SUCCESS<br />
*/<br />
EApiStatus_t<br />
EAPI_CALLTYPE<br />
EApiI2CWriteReadRaw(<br />
__IN EApiId_t Id , /* I2C Bus Id */<br />
__IN uint8_t Addr , /* Encoded 7Bit I2C<br />
* Device Address<br />
*/<br />
__INOPT void *pWBuffer , /* Write Data pBuffer */<br />
__IN uint32_t WriteBCnt, /* Number of Bytes to<br />
* write plus 1<br />
*/<br />
__OUTOPT void *pRBuffer , /* Read Data pBuffer */<br />
__IN uint32_t RBufLen , /* Data pBuffer Length */<br />
__IN uint32_t ReadBCnt /* Number of Bytes to<br />
* Read plus 1<br />
*/<br />
);<br />
#define EApiI2CWriteRaw(Id, Addr, pBuffer, ByteCnt) \<br />
EApiI2CWriteReadRaw(Id, Addr, pBuffer, ByteCnt, NULL, 0, 0)<br />
#define EApiI2CReadRaw(Id, Addr, pBuffer, BufLen, ByteCnt) \<br />
EApiI2CWriteReadRaw(Id, Addr, NULL, 0, pBuffer, BufLen, ByteCnt)<br />
#define EAPI_I2C_ENC_10BIT_ADDR(x) EAPI_UINT32_C(((x)&0xFF)|(((x)&0x0300)1)&0x300))<br />
#define EAPI_I2C_IS_10BIT_ADDR(x) (((x)&0xF800)==0xF000)<br />
#define EAPI_I2C_IS_7BIT_ADDR(x) (!EAPI_I2C_IS_10BIT_ADDR(x))<br />
/*<br />
* I2C Transfer Types<br />
* Bits 31 & 30 Selects Command Type<br />
*<br />
* Transfer Type 1:<br />
* Address Format : 7Bit<br />
* Command Type : None<br />
* Data Direction : Write<br />
* StartAckAck Stop<br />
*<br />
* Transfer Type 2:<br />
* Address Format : 7Bit<br />
* Command Type : None<br />
* Data Direction : Read<br />
* StartAckNak Stop<br />
*<br />
* Transfer Type 3:<br />
* Address Format : 7Bit<br />
* Command Type : Standard<br />
* Data Direction : Write<br />
* StartAckAckAck Stop<br />
*<br />
* Transfer Type 4:<br />
* Address Format : 7Bit<br />
* Command Type : Standard<br />
* Data Direction : Read<br />
* StartAckAck<br />
* StartAckNak Stop<br />
*<br />
* Transfer Type 5:<br />
* Address Format : 7Bit<br />
* Command Type : Extended<br />
* Data Direction : Write<br />
* StartAckAckAckAck Stop<br />
*<br />
* Transfer Type 6:<br />
* Address Format : 7Bit<br />
* Command Type : Extended<br />
* Data Direction : Read<br />
* StartAckAckAck<br />
PICMG® EAPI R1.0, August 8, 2010 page 64 of 83