1.12. lpc17xx_emac
Module¶
Ethernet MAC client library functions. Find implementation details in LPC17xx CMSIS-Compliant Standard Peripheral Firmware Driver Library documentation.
-
class
robovero.lpc17xx_emac.
EMAC_CFG_Type
(**kwargs)¶ Bases:
robovero.internals.cstruct
EMAC configuration structure definition.
- Mode: Supported EMAC PHY device speed, should be one of the following:
- EMAC_MODE_AUTO
- EMAC_MODE_10M_FULL
- EMAC_MODE_10M_HALF
- EMAC_MODE_100M_FULL
- EMAC_MODE_100M_HALF
- pbEMAC_Addr: Pointer to EMAC Station address that contains 6-bytes
- of MAC address, it must be sorted in order (bEMAC_Addr[0]..[5])
- ptr: LPC1769 memory address where structure is stored. Use this in place of
- the C reference operator (&).
- Mode: Supported EMAC PHY device speed, should be one of the following:
-
robovero.lpc17xx_emac.
EMAC_CLRT_COLL
(n)¶ Programmable field representing the slot time or collision window during which collisions occur in properly configured networks.
-
robovero.lpc17xx_emac.
EMAC_CLRT_MAX_RETX
(n)¶ Programmable field specifying the number of retransmission attempts following a collision before aborting the packet due to excessive collisions.
-
robovero.lpc17xx_emac.
EMAC_CheckPHYStatus
(ulPHYState)¶ Check specified PHY status in EMAC peripheral.
Args:
- ulPHYState: Specified PHY Status Type, should be:
- EMAC_PHY_STAT_LINK: Link Status
- EMAC_PHY_STAT_SPEED: Speed Status
- EMAC_PHY_STAT_DUP: Duplex Status
Return:
- Status of specified PHY status (0 or 1). -1 if error.
- ulPHYState: Specified PHY Status Type, should be:
-
robovero.lpc17xx_emac.
EMAC_CheckReceiveDataStatus
(ulRxStatType)¶ Get current status value of receive data (due to RxConsumeIndex).
Args:
- ulRxStatType: Received Status type, should be one of following:
- EMAC_RINFO_CTRL_FRAME: Control Frame
- EMAC_RINFO_VLAN: VLAN Frame
- EMAC_RINFO_FAIL_FILT: RX Filter Failed
- EMAC_RINFO_MCAST: Multicast Frame
- EMAC_RINFO_BCAST: Broadcast Frame
- EMAC_RINFO_CRC_ERR: CRC Error in Frame
- EMAC_RINFO_SYM_ERR: Symbol Error from PHY
- EMAC_RINFO_LEN_ERR: Length Error
- EMAC_RINFO_RANGE_ERR: Range error(exceeded max size)
- EMAC_RINFO_ALIGN_ERR: Alignment error
- EMAC_RINFO_OVERRUN: Receive overrun
- EMAC_RINFO_NO_DESCR: No new Descriptor available
- EMAC_RINFO_LAST_FLAG: last Fragment in Frame
- EMAC_RINFO_ERR: Error Occurred (OR of all error)
Return:
- Current value of receive data (due to RxConsumeIndex)
- ulRxStatType: Received Status type, should be one of following:
-
robovero.lpc17xx_emac.
EMAC_CheckReceiveIndex
()¶ Check whether the current RxConsumeIndex is not equal to the current RxProduceIndex.
Return:
- TRUE if they’re not equal, otherwise return FALSE
-
robovero.lpc17xx_emac.
EMAC_CheckTransmitIndex
()¶ Check whether if the current TxProduceIndex is not equal to the current RxProduceIndex - 1.
Return:
- TRUE if they’re not equal, otherwise return FALSE
-
robovero.lpc17xx_emac.
EMAC_DeInit
()¶ De-initializes the EMAC peripheral registers to their default reset values.
-
robovero.lpc17xx_emac.
EMAC_FCC_MIRR_CNT
(n)¶ Mirror Counter.
-
robovero.lpc17xx_emac.
EMAC_FCC_PAUSE_TIM
(n)¶ Pause Timer.
-
robovero.lpc17xx_emac.
EMAC_FCS_MIRR_CNT
(n)¶ Mirror Counter Current.
-
robovero.lpc17xx_emac.
EMAC_GetReceiveDataSize
()¶ Get size of current Received data in received buffer (due to RxConsumeIndex).
Return:
- Size of received data
-
robovero.lpc17xx_emac.
EMAC_GetWoLStatus
(ulWoLMode)¶ Get status of Wake On LAN Filter for each specified type in EMAC peripheral, clear this status if it is set.
Args:
- ulWoLMode: WoL Filter mode, should be:
- EMAC_WOL_UCAST: unicast frames caused WoL
- EMAC_WOL_UCAST: broadcast frame caused WoL
- EMAC_WOL_MCAST: multicast frame caused WoL
- EMAC_WOL_UCAST_HASH: unicast frame that passes the imperfect hash
- filter caused WoL
- EMAC_WOL_MCAST_HASH: multicast frame that passes the imperfect
- hash filter caused WoL
- EMAC_WOL_PERFECT:perfect address matching filter caused WoL
- EMAC_WOL_RX_FILTER: the receive filter caused WoL
- EMAC_WOL_MAG_PACKET: the magic packet filter caused WoL
Return:
- SET/RESET
- ulWoLMode: WoL Filter mode, should be:
-
robovero.lpc17xx_emac.
EMAC_IPGR_NBBIPG_P1
(n)¶ Programmable field representing the optional carrierSense window referenced in IEEE 802.3/4.2.3.2.1 ‘Carrier Deference’.
-
robovero.lpc17xx_emac.
EMAC_IPGR_NBBIPG_P2
(n)¶ Programmable field representing the Non-Back-to-Back Inter-Packet-Gap.
-
robovero.lpc17xx_emac.
EMAC_IPGT_BBIPG
(n)¶ Programmable field representing the nibble time offset of the minimum possible period between the end of any transmitted packet to the beginning of the next.
-
robovero.lpc17xx_emac.
EMAC_Init
(EMAC_ConfigStruct)¶ Initializes the EMAC peripheral according to the specified parameters in the EMAC_ConfigStruct.
Args:
- EMAC_ConfigStruct: Pointer to a EMAC_CFG_Type structure that contains the
- configuration information for the specified EMAC peripheral.
-
robovero.lpc17xx_emac.
EMAC_IntCmd
(ulIntType, NewState)¶ Enable/Disable interrupt for each type in EMAC.
Args:
- ulIntType: Interrupt Type, should be:
- EMAC_INT_RX_OVERRUN: Receive Overrun
- EMAC_INT_RX_ERR: Receive Error
- EMAC_INT_RX_FIN: Receive Descriptor Finish
- EMAC_INT_RX_DONE: Receive Done
- EMAC_INT_TX_UNDERRUN: Transmit Under-run
- EMAC_INT_TX_ERR: Transmit Error
- EMAC_INT_TX_FIN: Transmit descriptor finish
- EMAC_INT_TX_DONE: Transmit Done
- EMAC_INT_SOFT_INT: Software interrupt
- EMAC_INT_WAKEUP: Wakeup interrupt
- NewState: New State of this function, should be: - ENABLE - DISABLE
- ulIntType: Interrupt Type, should be:
-
robovero.lpc17xx_emac.
EMAC_IntGetStatus
(ulIntType)¶ Check whether if specified interrupt flag is set or not for each interrupt type in EMAC and clear interrupt pending if it is set.
Args:
- ulIntType: Interrupt Type, should be:
- EMAC_INT_RX_OVERRUN: Receive Overrun
- EMAC_INT_RX_ERR: Receive Error
- EMAC_INT_RX_FIN: Receive Descriptor Finish
- EMAC_INT_RX_DONE: Receive Done
- EMAC_INT_TX_UNDERRUN: Transmit Under-run
- EMAC_INT_TX_ERR: Transmit Error
- EMAC_INT_TX_FIN: Transmit descriptor finish
- EMAC_INT_TX_DONE: Transmit Done
- EMAC_INT_SOFT_INT: Software interrupt
- EMAC_INT_WAKEUP: Wakeup interrupt
Return:
- New state of specified interrupt (SET or RESET)
- ulIntType: Interrupt Type, should be:
-
robovero.lpc17xx_emac.
EMAC_MADR_PHY_ADR
(n)¶ PHY Address Field.
-
robovero.lpc17xx_emac.
EMAC_MADR_REG_ADR
(n)¶ MII Register Address field.
-
robovero.lpc17xx_emac.
EMAC_MAXF_MAXFRMLEN
(n)¶ Represents a maximum receive frame of 1536 octets.
-
robovero.lpc17xx_emac.
EMAC_MCFG_CLK_SEL
(n)¶ Clock Select Field.
-
robovero.lpc17xx_emac.
EMAC_MRDD_DATA
(n)¶ Data field for MMI Management Read Data register.
-
robovero.lpc17xx_emac.
EMAC_MWTD_DATA
(n)¶ Data field for MMI Management Write Data register.
-
class
robovero.lpc17xx_emac.
EMAC_PACKETBUF_Type
(**kwargs)¶ Bases:
robovero.internals.cstruct
TX Data Buffer structure definition.
- ulDataLen: Data length
- pbDataBuf: A word-align data pointer to data buffer
- ptr: LPC1769 memory address where structure is stored. Use this in place of
- the C reference operator (&).
-
robovero.lpc17xx_emac.
EMAC_RCTRL_SIZE
(n)¶ Buffer size field.
-
robovero.lpc17xx_emac.
EMAC_ReadPacketBuffer
(pDataStruct)¶ Read data from Rx packet data buffer at current index due to RxConsumeIndex.
Args:
- pDataStruct: Pointer to a EMAC_PACKETBUF_Type structure data that contain
- specified information about Packet data buffer.
-
robovero.lpc17xx_emac.
EMAC_SetFilterMode
(ulFilterMode, NewState)¶ Enable/Disable Filter mode for each specified type EMAC peripheral.
Args:
- ulFilterMode: Filter mode, should be:
- EMAC_RFC_UCAST_EN: all frames of unicast types will be accepted
- EMAC_RFC_BCAST_EN: broadcast frame will be accepted
- EMAC_RFC_MCAST_EN: all frames of multicast types will be accepted
- EMAC_RFC_UCAST_HASH_EN: The imperfect hash filter will be applied to unicast addresses
- EMAC_RFC_MCAST_HASH_EN: The imperfect hash filter will be applied to multicast addresses
- EMAC_RFC_PERFECT_EN: the destination address will be compared with the 6 byte station address programmed in the station address by the filter
- EMAC_RFC_MAGP_WOL_EN: the result of the magic packet filter will generate a WoL interrupt when there is a match
- EMAC_RFC_PFILT_WOL_EN: the result of the perfect address matching filter and the imperfect hash filter will generate a WoL interrupt when there is a match
- NewState: New State of this command, should be:
- ENABLE
- DISABLE
- ulFilterMode: Filter mode, should be:
-
robovero.lpc17xx_emac.
EMAC_SetHashFilter
(dstMAC_addr, NewState)¶ Enable/Disable hash filter functionality for specified destination MAC address in EMAC module.
Args:
- dstMAC_addr: Pointer to the first MAC destination address, should be 6-bytes
- length, in order LSB to the MSB
- NewState: New State of this command, should be:
- ENABLE
- DISABLE
-
robovero.lpc17xx_emac.
EMAC_SetPHYMode
(ulPHYMode)¶ Set specified PHY mode in EMAC peripheral.
Args:
- ulPHYMode: Specified PHY mode, should be:
- EMAC_MODE_AUTO
- EMAC_MODE_10M_FULL
- EMAC_MODE_10M_HALF
- EMAC_MODE_100M_FULL
- EMAC_MODE_100M_HALF
Return:
- 0 if no error, otherwise -1
- ulPHYMode: Specified PHY mode, should be:
-
robovero.lpc17xx_emac.
EMAC_UpdatePHYStatus
()¶ Auto-Configures value for the EMAC configuration register to match with current PHY mode.
Return:
- 0 if no error, otherwise -1
-
robovero.lpc17xx_emac.
EMAC_UpdateRxConsumeIndex
()¶ Increase the RxConsumeIndex (after reading the Receive buffer to release the Receive buffer) and wrap-around the index if it reaches the maximum Receive Number.
-
robovero.lpc17xx_emac.
EMAC_UpdateTxProduceIndex
()¶ Increase the TxProduceIndex (after writting to the Transmit buffer to enable the Transmit buffer) and wrap-around the index if it reaches the maximum Transmit Number.
-
robovero.lpc17xx_emac.
EMAC_WritePacketBuffer
(pDataStruct)¶ Write data to Tx packet data buffer at current index due to TxProduceIndex.
Args:
- pDataStruct: Pointer to a EMAC_PACKETBUF_Type structure data that contain
- specified information about Packet data buffer.
-
class
robovero.lpc17xx_emac.
RX_Desc
(**kwargs)¶ Bases:
robovero.internals.cstruct
RX Descriptor structure type definition.
- Packet: Receive Packet Descriptor
- Ctrl: Receive Control Descriptor
- ptr: LPC1769 memory address where structure is stored. Use this in place of
- the C reference operator (&).
-
class
robovero.lpc17xx_emac.
RX_Stat
(**kwargs)¶ Bases:
robovero.internals.cstruct
RX Status structure type definition.
- Info: Receive Information Status
- HashCRC: Receive Hash CRC Status
- ptr: LPC1769 memory address where structure is stored. Use this in place of
- the C reference operator (&).
-
class
robovero.lpc17xx_emac.
TX_Desc
(**kwargs)¶ Bases:
robovero.internals.cstruct
TX Descriptor structure type definition.
- Packet: Transmit Packet Descriptor
- Ctrl: Transmit Control Descriptor
- ptr: LPC1769 memory address where structure is stored. Use this in place of
- the C reference operator (&).
-
class
robovero.lpc17xx_emac.
TX_Stat
(**kwargs)¶ Bases:
robovero.internals.cstruct
TX Status structure type definition.
- Info: Transmit Information Status
- ptr: LPC1769 memory address where structure is stored. Use this in place of
- the C reference operator (&).