OpenCores
URL https://opencores.org/ocsvn/usb_ft232h_avalon-mm_interface/usb_ft232h_avalon-mm_interface/trunk

Subversion Repositories usb_ft232h_avalon-mm_interface

[/] [usb_ft232h_avalon-mm_interface/] [trunk/] [sw/] [usb_ft232h.hpp] - Blame information for rev 6

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 6 melman701
/*
2
 * usb_ft232h.h
3
 *
4
 *  Created on: 06 ��� 2016 �.
5
 *      Author: EDV
6
 */
7
 
8
#ifndef USB_FT232H_H_
9
#define USB_FT232H_H_
10
 
11
#include <io.h>
12
 
13
 
14
const alt_u8 USB_FT232H_WRDATA_ADDR             = 0x0;                  //!< Address for write data
15
const alt_u8 USB_FT232H_RDDATA_ADDR             = 0x1;                  //!< Address for read data
16
const alt_u8 USB_FT232H_TXSTATUSL_ADDR  = 0x2;                  //!< Address for low byte of TX FIFO status register
17
const alt_u8 USB_FT232H_TXSTATUSH_ADDR  = 0x3;                  //!< Address for high byte of TX FIFO status register
18
const alt_u8 USB_FT232H_RXSTATUSL_ADDR  = 0x4;                  //!< Address for low byte of RX FIFO status register
19
const alt_u8 USB_FT232H_RXSTATUSH_ADDR  = 0x5;                  //!< Address for high byte of RX FIFO status register
20
 
21
const alt_u16 USB_FT232H_STATUS_READY_MSK               = 0x8000;       //!< Ready bit mask of RX or TX FIFO status register
22
const alt_u16 USB_FT232H_STATUS_DATA_SIZE_MSK   = 0x7FFF;       //!< Data size mask of RX or TX FIFO status register
23
 
24
 
25
 
26
/*!
27
 * \brief Request data of rx FIFO status register
28
 * \param[in] base Module address
29
 * \return Rx FIFO status register data.
30
 */
31
inline alt_u16 usbFT232HGetRxFifoStatus(alt_u32 base)
32
{
33
        return IORD_16DIRECT(base, USB_FT232H_RXSTATUSL_ADDR);
34
//      return (IORD_8DIRECT(base, USB_FT232H_RXSTATUSL_ADDR) | (IORD_8DIRECT(base, USB_FT232H_RXSTATUSH_ADDR) << 8));
35
}
36
 
37
/*!
38
 * \brief Request data of tx FIFO status register
39
 * \param[in] base Module address
40
 * \return Tx FIFO status register data.
41
 */
42
inline alt_u16 usbFT232HGetTxFifoStatus(alt_u32 base)
43
{
44
        return IORD_16DIRECT(base, USB_FT232H_TXSTATUSL_ADDR);
45
//      return (IORD_8DIRECT(base, USB_FT232H_TXSTATUSL_ADDR) | (IORD_8DIRECT(base, USB_FT232H_TXSTATUSH_ADDR) << 8));
46
}
47
 
48
/*!
49
 * \brief Request number of bytes stored in rx FIFO
50
 * \param[in] base Module address
51
 * \return Number of bytes stored in rx FIFO
52
 */
53
inline alt_u16 usbFT232HGetNumberOfDataInRxFifo(alt_u32 base)
54
{
55
        return (usbFT232HGetRxFifoStatus(base) & USB_FT232H_STATUS_DATA_SIZE_MSK);
56
}
57
 
58
/*!
59
 * \brief Request number of bytes stored in tx FIFO
60
 * \param[in] base Module address
61
 * \return Number of bytes stored in tx FIFO
62
 */
63
inline alt_u16 usbFT232HGetNumberOfDataInTxFifo(alt_u32 base)
64
{
65
        return (usbFT232HGetTxFifoStatus(base) & USB_FT232H_STATUS_DATA_SIZE_MSK);
66
}
67
 
68
/*!
69
 * \brief Write byte to module
70
 * \param[in] base Module address
71
 * \param[in] byte Byte for write to the FIFO
72
 */
73
inline void usbFT232HWriteByte(alt_u32 base, alt_u8 byte)
74
{
75
        IOWR_8DIRECT(base, USB_FT232H_WRDATA_ADDR, byte);
76
}
77
 
78
/*!
79
 * \brief Read byte from the FIFO
80
 * \param[in] base Module address
81
 * \return Byte read from the FIFO
82
 */
83
inline alt_u8 usbFT232HReadByte(alt_u32 base)
84
{
85
        return IORD_8DIRECT(base, USB_FT232H_RDDATA_ADDR);
86
}
87
 
88
 
89
#endif /* USB_FT232H_H_ */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.