diff options
Diffstat (limited to 'doc/FT245.md')
-rw-r--r-- | doc/FT245.md | 1309 |
1 files changed, 1309 insertions, 0 deletions
diff --git a/doc/FT245.md b/doc/FT245.md new file mode 100644 index 0000000..2bec1cc --- /dev/null +++ b/doc/FT245.md @@ -0,0 +1,1309 @@ +# FT245 documentation + +## Static mode external functions + +The following functions need to be implemented in your source code to be used by the driver. + +### `void FT245_DATA0_to_input(void)` + +Changes the mode of the signal `DATA0` to input. + +### `void FT245_DATA1_to_input(void)` + +Changes the mode of the signal `DATA1` to input. + +### `void FT245_DATA2_to_input(void)` + +Changes the mode of the signal `DATA2` to input. + +### `void FT245_DATA3_to_input(void)` + +Changes the mode of the signal `DATA3` to input. + +### `void FT245_DATA4_to_input(void)` + +Changes the mode of the signal `DATA4` to input. + +### `void FT245_DATA5_to_input(void)` + +Changes the mode of the signal `DATA5` to input. + +### `void FT245_DATA6_to_input(void)` + +Changes the mode of the signal `DATA6` to input. + +### `void FT245_DATA7_to_input(void)` + +Changes the mode of the signal `DATA7` to input. + +### `void FT245_DATA8_to_input(void)` + +Changes the mode of the signal `DATA8` to input. + +### `void FT245_DATA9_to_input(void)` + +Changes the mode of the signal `DATA9` to input. + +### `void FT245_DATA10_to_input(void)` + +Changes the mode of the signal `DATA10` to input. + +### `void FT245_DATA11_to_input(void)` + +Changes the mode of the signal `DATA11` to input. + +### `void FT245_DATA12_to_input(void)` + +Changes the mode of the signal `DATA12` to input. + +### `void FT245_DATA13_to_input(void)` + +Changes the mode of the signal `DATA13` to input. + +### `void FT245_DATA14_to_input(void)` + +Changes the mode of the signal `DATA14` to input. + +### `void FT245_DATA15_to_input(void)` + +Changes the mode of the signal `DATA15` to input. + +### `void FT245_DATA16_to_input(void)` + +Changes the mode of the signal `DATA16` to input. + +### `void FT245_DATA17_to_input(void)` + +Changes the mode of the signal `DATA17` to input. + +### `void FT245_DATA18_to_input(void)` + +Changes the mode of the signal `DATA18` to input. + +### `void FT245_DATA19_to_input(void)` + +Changes the mode of the signal `DATA19` to input. + +### `void FT245_DATA20_to_input(void)` + +Changes the mode of the signal `DATA20` to input. + +### `void FT245_DATA21_to_input(void)` + +Changes the mode of the signal `DATA21` to input. + +### `void FT245_DATA22_to_input(void)` + +Changes the mode of the signal `DATA22` to input. + +### `void FT245_DATA23_to_input(void)` + +Changes the mode of the signal `DATA23` to input. + +### `void FT245_DATA24_to_input(void)` + +Changes the mode of the signal `DATA24` to input. + +### `void FT245_DATA25_to_input(void)` + +Changes the mode of the signal `DATA25` to input. + +### `void FT245_DATA26_to_input(void)` + +Changes the mode of the signal `DATA26` to input. + +### `void FT245_DATA27_to_input(void)` + +Changes the mode of the signal `DATA27` to input. + +### `void FT245_DATA28_to_input(void)` + +Changes the mode of the signal `DATA28` to input. + +### `void FT245_DATA29_to_input(void)` + +Changes the mode of the signal `DATA29` to input. + +### `void FT245_DATA30_to_input(void)` + +Changes the mode of the signal `DATA30` to input. + +### `void FT245_DATA31_to_input(void)` + +Changes the mode of the signal `DATA31` to input. + +### `void FT245_BE0_to_input(void)` + +Changes the mode of the signal `BE0` to input. + +### `void FT245_BE1_to_input(void)` + +Changes the mode of the signal `BE1` to input. + +### `void FT245_BE2_to_input(void)` + +Changes the mode of the signal `BE2` to input. + +### `void FT245_BE3_to_input(void)` + +Changes the mode of the signal `BE3` to input. + +### `void FT245_DATA0_to_output(void)` + +Changes the mode of the signal `DATA0` to output. + +### `void FT245_DATA1_to_output(void)` + +Changes the mode of the signal `DATA1` to output. + +### `void FT245_DATA2_to_output(void)` + +Changes the mode of the signal `DATA2` to output. + +### `void FT245_DATA3_to_output(void)` + +Changes the mode of the signal `DATA3` to output. + +### `void FT245_DATA4_to_output(void)` + +Changes the mode of the signal `DATA4` to output. + +### `void FT245_DATA5_to_output(void)` + +Changes the mode of the signal `DATA5` to output. + +### `void FT245_DATA6_to_output(void)` + +Changes the mode of the signal `DATA6` to output. + +### `void FT245_DATA7_to_output(void)` + +Changes the mode of the signal `DATA7` to output. + +### `void FT245_DATA8_to_output(void)` + +Changes the mode of the signal `DATA8` to output. + +### `void FT245_DATA9_to_output(void)` + +Changes the mode of the signal `DATA9` to output. + +### `void FT245_DATA10_to_output(void)` + +Changes the mode of the signal `DATA10` to output. + +### `void FT245_DATA11_to_output(void)` + +Changes the mode of the signal `DATA11` to output. + +### `void FT245_DATA12_to_output(void)` + +Changes the mode of the signal `DATA12` to output. + +### `void FT245_DATA13_to_output(void)` + +Changes the mode of the signal `DATA13` to output. + +### `void FT245_DATA14_to_output(void)` + +Changes the mode of the signal `DATA14` to output. + +### `void FT245_DATA15_to_output(void)` + +Changes the mode of the signal `DATA15` to output. + +### `void FT245_DATA16_to_output(void)` + +Changes the mode of the signal `DATA16` to output. + +### `void FT245_DATA17_to_output(void)` + +Changes the mode of the signal `DATA17` to output. + +### `void FT245_DATA18_to_output(void)` + +Changes the mode of the signal `DATA18` to output. + +### `void FT245_DATA19_to_output(void)` + +Changes the mode of the signal `DATA19` to output. + +### `void FT245_DATA20_to_output(void)` + +Changes the mode of the signal `DATA20` to output. + +### `void FT245_DATA21_to_output(void)` + +Changes the mode of the signal `DATA21` to output. + +### `void FT245_DATA22_to_output(void)` + +Changes the mode of the signal `DATA22` to output. + +### `void FT245_DATA23_to_output(void)` + +Changes the mode of the signal `DATA23` to output. + +### `void FT245_DATA24_to_output(void)` + +Changes the mode of the signal `DATA24` to output. + +### `void FT245_DATA25_to_output(void)` + +Changes the mode of the signal `DATA25` to output. + +### `void FT245_DATA26_to_output(void)` + +Changes the mode of the signal `DATA26` to output. + +### `void FT245_DATA27_to_output(void)` + +Changes the mode of the signal `DATA27` to output. + +### `void FT245_DATA28_to_output(void)` + +Changes the mode of the signal `DATA28` to output. + +### `void FT245_DATA29_to_output(void)` + +Changes the mode of the signal `DATA29` to output. + +### `void FT245_DATA30_to_output(void)` + +Changes the mode of the signal `DATA30` to output. + +### `void FT245_DATA31_to_output(void)` + +Changes the mode of the signal `DATA31` to output. + +### `void FT245_BE0_to_output(void)` + +Changes the mode of the signal `BE0` to output. + +### `void FT245_BE1_to_output(void)` + +Changes the mode of the signal `BE1` to output. + +### `void FT245_BE2_to_output(void)` + +Changes the mode of the signal `BE2` to output. + +### `void FT245_BE3_to_output(void)` + +Changes the mode of the signal `BE3` to output. + +### `void FT245_CLK_set(void)` + +Sets the `CLK` signal to high. + +### `void FT245_RXF_N_set(void)` + +Sets the `RXF_N` signal to high. + +### `void FT245_TXE_N_set(void)` + +Sets the `TXE_N` signal to high. + +### `void FT245_DATA0_set(void)` + +Sets the `DATA0` signal to high. + +### `void FT245_DATA1_set(void)` + +Sets the `DATA1` signal to high. + +### `void FT245_DATA2_set(void)` + +Sets the `DATA2` signal to high. + +### `void FT245_DATA3_set(void)` + +Sets the `DATA3` signal to high. + +### `void FT245_DATA4_set(void)` + +Sets the `DATA4` signal to high. + +### `void FT245_DATA5_set(void)` + +Sets the `DATA5` signal to high. + +### `void FT245_DATA6_set(void)` + +Sets the `DATA6` signal to high. + +### `void FT245_DATA7_set(void)` + +Sets the `DATA7` signal to high. + +### `void FT245_DATA8_set(void)` + +Sets the `DATA8` signal to high. + +### `void FT245_DATA9_set(void)` + +Sets the `DATA9` signal to high. + +### `void FT245_DATA10_set(void)` + +Sets the `DATA10` signal to high. + +### `void FT245_DATA11_set(void)` + +Sets the `DATA11` signal to high. + +### `void FT245_DATA12_set(void)` + +Sets the `DATA12` signal to high. + +### `void FT245_DATA13_set(void)` + +Sets the `DATA13` signal to high. + +### `void FT245_DATA14_set(void)` + +Sets the `DATA14` signal to high. + +### `void FT245_DATA15_set(void)` + +Sets the `DATA15` signal to high. + +### `void FT245_DATA16_set(void)` + +Sets the `DATA16` signal to high. + +### `void FT245_DATA17_set(void)` + +Sets the `DATA17` signal to high. + +### `void FT245_DATA18_set(void)` + +Sets the `DATA18` signal to high. + +### `void FT245_DATA19_set(void)` + +Sets the `DATA19` signal to high. + +### `void FT245_DATA20_set(void)` + +Sets the `DATA20` signal to high. + +### `void FT245_DATA21_set(void)` + +Sets the `DATA21` signal to high. + +### `void FT245_DATA22_set(void)` + +Sets the `DATA22` signal to high. + +### `void FT245_DATA23_set(void)` + +Sets the `DATA23` signal to high. + +### `void FT245_DATA24_set(void)` + +Sets the `DATA24` signal to high. + +### `void FT245_DATA25_set(void)` + +Sets the `DATA25` signal to high. + +### `void FT245_DATA26_set(void)` + +Sets the `DATA26` signal to high. + +### `void FT245_DATA27_set(void)` + +Sets the `DATA27` signal to high. + +### `void FT245_DATA28_set(void)` + +Sets the `DATA28` signal to high. + +### `void FT245_DATA29_set(void)` + +Sets the `DATA29` signal to high. + +### `void FT245_DATA30_set(void)` + +Sets the `DATA30` signal to high. + +### `void FT245_DATA31_set(void)` + +Sets the `DATA31` signal to high. + +### `void FT245_BE0_set(void)` + +Sets the `BE0` signal to high. + +### `void FT245_BE1_set(void)` + +Sets the `BE1` signal to high. + +### `void FT245_BE2_set(void)` + +Sets the `BE2` signal to high. + +### `void FT245_BE3_set(void)` + +Sets the `BE3` signal to high. + +### `void FT245_CLK_reset(void)` + +Sets the `CLK` signal to low. + +### `void FT245_RXF_N_reset(void)` + +Sets the `RXF_N` signal to low. + +### `void FT245_TXE_N_reset(void)` + +Sets the `TXE_N` signal to low. + +### `void FT245_DATA0_reset(void)` + +Sets the `DATA0` signal to low. + +### `void FT245_DATA1_reset(void)` + +Sets the `DATA1` signal to low. + +### `void FT245_DATA2_reset(void)` + +Sets the `DATA2` signal to low. + +### `void FT245_DATA3_reset(void)` + +Sets the `DATA3` signal to low. + +### `void FT245_DATA4_reset(void)` + +Sets the `DATA4` signal to low. + +### `void FT245_DATA5_reset(void)` + +Sets the `DATA5` signal to low. + +### `void FT245_DATA6_reset(void)` + +Sets the `DATA6` signal to low. + +### `void FT245_DATA7_reset(void)` + +Sets the `DATA7` signal to low. + +### `void FT245_DATA8_reset(void)` + +Sets the `DATA8` signal to low. + +### `void FT245_DATA9_reset(void)` + +Sets the `DATA9` signal to low. + +### `void FT245_DATA10_reset(void)` + +Sets the `DATA10` signal to low. + +### `void FT245_DATA11_reset(void)` + +Sets the `DATA11` signal to low. + +### `void FT245_DATA12_reset(void)` + +Sets the `DATA12` signal to low. + +### `void FT245_DATA13_reset(void)` + +Sets the `DATA13` signal to low. + +### `void FT245_DATA14_reset(void)` + +Sets the `DATA14` signal to low. + +### `void FT245_DATA15_reset(void)` + +Sets the `DATA15` signal to low. + +### `void FT245_DATA16_reset(void)` + +Sets the `DATA16` signal to low. + +### `void FT245_DATA17_reset(void)` + +Sets the `DATA17` signal to low. + +### `void FT245_DATA18_reset(void)` + +Sets the `DATA18` signal to low. + +### `void FT245_DATA19_reset(void)` + +Sets the `DATA19` signal to low. + +### `void FT245_DATA20_reset(void)` + +Sets the `DATA20` signal to low. + +### `void FT245_DATA21_reset(void)` + +Sets the `DATA21` signal to low. + +### `void FT245_DATA22_reset(void)` + +Sets the `DATA22` signal to low. + +### `void FT245_DATA23_reset(void)` + +Sets the `DATA23` signal to low. + +### `void FT245_DATA24_reset(void)` + +Sets the `DATA24` signal to low. + +### `void FT245_DATA25_reset(void)` + +Sets the `DATA25` signal to low. + +### `void FT245_DATA26_reset(void)` + +Sets the `DATA26` signal to low. + +### `void FT245_DATA27_reset(void)` + +Sets the `DATA27` signal to low. + +### `void FT245_DATA28_reset(void)` + +Sets the `DATA28` signal to low. + +### `void FT245_DATA29_reset(void)` + +Sets the `DATA29` signal to low. + +### `void FT245_DATA30_reset(void)` + +Sets the `DATA30` signal to low. + +### `void FT245_DATA31_reset(void)` + +Sets the `DATA31` signal to low. + +### `void FT245_BE0_reset(void)` + +Sets the `BE0` signal to low. + +### `void FT245_BE1_reset(void)` + +Sets the `BE1` signal to low. + +### `void FT245_BE2_reset(void)` + +Sets the `BE2` signal to low. + +### `void FT245_BE3_reset(void)` + +Sets the `BE3` signal to low. + +### `void FT245_CLK_toggle(void)` + +Toggles the `CLK` signal. + +### `uint32_t FT245_TXE_N_read(void)` + +Reads the `TXE_N` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_RXF_N_read(void)` + +Reads the `RXF_N` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_WR_N_read(void)` + +Reads the `WR_N` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_SIWU_N_read(void)` + +Reads the `SIWU_N` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_RD_N_read(void)` + +Reads the `RD_N` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_OE_N_read(void)` + +Reads the `OE_N` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_RST_N_read(void)` + +Reads the `RST_N` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA0_read(void)` + +Reads the `DATA0` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA1_read(void)` + +Reads the `DATA1` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA2_read(void)` + +Reads the `DATA2` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA3_read(void)` + +Reads the `DATA3` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA4_read(void)` + +Reads the `DATA4` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA5_read(void)` + +Reads the `DATA5` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA6_read(void)` + +Reads the `DATA6` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA7_read(void)` + +Reads the `DATA7` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + + +### `uint32_t FT245_DATA8_read(void)` + +Reads the `DATA8` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA9_read(void)` + +Reads the `DATA9` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA10_read(void)` + +Reads the `DATA10` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA11_read(void)` + +Reads the `DATA11` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA12_read(void)` + +Reads the `DATA12` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA13_read(void)` + +Reads the `DATA13` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA14_read(void)` + +Reads the `DATA14` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA15_read(void)` + +Reads the `DATA15` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA16_read(void)` + +Reads the `DATA16` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA17_read(void)` + +Reads the `DATA17` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA18_read(void)` + +Reads the `DATA18` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA19_read(void)` + +Reads the `DATA19` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA20_read(void)` + +Reads the `DATA20` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA21_read(void)` + +Reads the `DATA21` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA22_read(void)` + +Reads the `DATA22` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA23_read(void)` + +Reads the `DATA23` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA24_read(void)` + +Reads the `DATA24` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA25_read(void)` + +Reads the `DATA25` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA26_read(void)` + +Reads the `DATA26` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA27_read(void)` + +Reads the `DATA27` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA28_read(void)` + +Reads the `DATA28` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA29_read(void)` + +Reads the `DATA29` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA30_read(void)` + +Reads the `DATA30` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_DATA31_read(void)` + +Reads the `DATA31` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_BE0_read(void)` + +Reads the `BE0` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_BE1_read(void)` + +Reads the `BE1` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_BE2_read(void)` + +Reads the `BE2` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +### `uint32_t FT245_BE3_read(void)` + +Reads the `BE3` signal. + +Returns: + +- `0`: Signal is low. +- `!= 0`: Signal is high. + +## Dynamic mode external functions + +The following functions need to be implemented in your source code and assigned to the respective function pointers in `ft245_t` struct. + +- `void (*DATA0_to_input)(void);` +- `void (*DATA1_to_input)(void);` +- `void (*DATA2_to_input)(void);` +- `void (*DATA3_to_input)(void);` +- `void (*DATA4_to_input)(void);` +- `void (*DATA5_to_input)(void);` +- `void (*DATA6_to_input)(void);` +- `void (*DATA7_to_input)(void);` +- `void (*DATA8_to_input)(void);` +- `void (*DATA9_to_input)(void);` +- `void (*DATA10_to_input)(void);` +- `void (*DATA11_to_input)(void);` +- `void (*DATA12_to_input)(void);` +- `void (*DATA13_to_input)(void);` +- `void (*DATA14_to_input)(void);` +- `void (*DATA15_to_input)(void);` +- `void (*DATA16_to_input)(void);` +- `void (*DATA17_to_input)(void);` +- `void (*DATA18_to_input)(void);` +- `void (*DATA19_to_input)(void);` +- `void (*DATA20_to_input)(void);` +- `void (*DATA21_to_input)(void);` +- `void (*DATA22_to_input)(void);` +- `void (*DATA23_to_input)(void);` +- `void (*DATA24_to_input)(void);` +- `void (*DATA25_to_input)(void);` +- `void (*DATA26_to_input)(void);` +- `void (*DATA27_to_input)(void);` +- `void (*DATA28_to_input)(void);` +- `void (*DATA29_to_input)(void);` +- `void (*DATA30_to_input)(void);` +- `void (*DATA31_to_input)(void);` +- `void (*BE0_to_input)(void);` +- `void (*BE1_to_input)(void);` +- `void (*BE2_to_input)(void);` +- `void (*BE3_to_input)(void);` +- `void (*DATA0_to_output)(void);` +- `void (*DATA1_to_output)(void);` +- `void (*DATA2_to_output)(void);` +- `void (*DATA3_to_output)(void);` +- `void (*DATA4_to_output)(void);` +- `void (*DATA5_to_output)(void);` +- `void (*DATA6_to_output)(void);` +- `void (*DATA7_to_output)(void);` +- `void (*DATA8_to_output)(void);` +- `void (*DATA9_to_output)(void);` +- `void (*DATA10_to_output)(void);` +- `void (*DATA11_to_output)(void);` +- `void (*DATA12_to_output)(void);` +- `void (*DATA13_to_output)(void);` +- `void (*DATA14_to_output)(void);` +- `void (*DATA15_to_output)(void);` +- `void (*DATA16_to_output)(void);` +- `void (*DATA17_to_output)(void);` +- `void (*DATA18_to_output)(void);` +- `void (*DATA19_to_output)(void);` +- `void (*DATA20_to_output)(void);` +- `void (*DATA21_to_output)(void);` +- `void (*DATA22_to_output)(void);` +- `void (*DATA23_to_output)(void);` +- `void (*DATA24_to_output)(void);` +- `void (*DATA25_to_output)(void);` +- `void (*DATA26_to_output)(void);` +- `void (*DATA27_to_output)(void);` +- `void (*DATA28_to_output)(void);` +- `void (*DATA29_to_output)(void);` +- `void (*DATA30_to_output)(void);` +- `void (*DATA31_to_output)(void);` +- `void (*BE0_to_output)(void);` +- `void (*BE1_to_output)(void);` +- `void (*BE2_to_output)(void);` +- `void (*BE3_to_output)(void);` +- `void (*CLK_set)(void);` +- `void (*RXF_N_set)(void);` +- `void (*TXE_N_set)(void);` +- `void (*DATA0_set)(void);` +- `void (*DATA1_set)(void);` +- `void (*DATA2_set)(void);` +- `void (*DATA3_set)(void);` +- `void (*DATA4_set)(void);` +- `void (*DATA5_set)(void);` +- `void (*DATA6_set)(void);` +- `void (*DATA7_set)(void);` +- `void (*DATA8_set)(void);` +- `void (*DATA9_set)(void);` +- `void (*DATA10_set)(void);` +- `void (*DATA11_set)(void);` +- `void (*DATA12_set)(void);` +- `void (*DATA13_set)(void);` +- `void (*DATA14_set)(void);` +- `void (*DATA15_set)(void);` +- `void (*DATA16_set)(void);` +- `void (*DATA17_set)(void);` +- `void (*DATA18_set)(void);` +- `void (*DATA19_set)(void);` +- `void (*DATA20_set)(void);` +- `void (*DATA21_set)(void);` +- `void (*DATA22_set)(void);` +- `void (*DATA23_set)(void);` +- `void (*DATA24_set)(void);` +- `void (*DATA25_set)(void);` +- `void (*DATA26_set)(void);` +- `void (*DATA27_set)(void);` +- `void (*DATA28_set)(void);` +- `void (*DATA29_set)(void);` +- `void (*DATA30_set)(void);` +- `void (*DATA31_set)(void);` +- `void (*BE0_set)(void);` +- `void (*BE1_set)(void);` +- `void (*BE2_set)(void);` +- `void (*BE3_set)(void);` +- `void (*CLK_reset)(void);` +- `void (*RXF_N_reset)(void);` +- `void (*TXE_N_reset)(void);` +- `void (*DATA0_reset)(void);` +- `void (*DATA1_reset)(void);` +- `void (*DATA2_reset)(void);` +- `void (*DATA3_reset)(void);` +- `void (*DATA4_reset)(void);` +- `void (*DATA5_reset)(void);` +- `void (*DATA6_reset)(void);` +- `void (*DATA7_reset)(void);` +- `void (*DATA8_reset)(void);` +- `void (*DATA9_reset)(void);` +- `void (*DATA10_reset)(void);` +- `void (*DATA11_reset)(void);` +- `void (*DATA12_reset)(void);` +- `void (*DATA13_reset)(void);` +- `void (*DATA14_reset)(void);` +- `void (*DATA15_reset)(void);` +- `void (*DATA16_reset)(void);` +- `void (*DATA17_reset)(void);` +- `void (*DATA18_reset)(void);` +- `void (*DATA19_reset)(void);` +- `void (*DATA20_reset)(void);` +- `void (*DATA21_reset)(void);` +- `void (*DATA22_reset)(void);` +- `void (*DATA23_reset)(void);` +- `void (*DATA24_reset)(void);` +- `void (*DATA25_reset)(void);` +- `void (*DATA26_reset)(void);` +- `void (*DATA27_reset)(void);` +- `void (*DATA28_reset)(void);` +- `void (*DATA29_reset)(void);` +- `void (*DATA30_reset)(void);` +- `void (*DATA31_reset)(void);` +- `void (*BE0_reset)(void);` +- `void (*BE1_reset)(void);` +- `void (*BE2_reset)(void);` +- `void (*BE3_reset)(void);` +- `void (*CLK_toggle)(void);` +- `uint32_t (*TXE_N_read)(void);` +- `uint32_t (*RXF_N_read)(void);` +- `uint32_t (*WR_N_read)(void);` +- `uint32_t (*SIWU_N_read)(void);` +- `uint32_t (*RD_N_read)(void);` +- `uint32_t (*OE_N_read)(void);` +- `uint32_t (*RST_N_read)(void);` +- `uint32_t (*DATA0_read)(void);` +- `uint32_t (*DATA1_read)(void);` +- `uint32_t (*DATA2_read)(void);` +- `uint32_t (*DATA3_read)(void);` +- `uint32_t (*DATA4_read)(void);` +- `uint32_t (*DATA5_read)(void);` +- `uint32_t (*DATA6_read)(void);` +- `uint32_t (*DATA7_read)(void);` +- `uint32_t (*DATA8_read)(void);` +- `uint32_t (*DATA9_read)(void);` +- `uint32_t (*DATA10_read)(void);` +- `uint32_t (*DATA11_read)(void);` +- `uint32_t (*DATA12_read)(void);` +- `uint32_t (*DATA13_read)(void);` +- `uint32_t (*DATA14_read)(void);` +- `uint32_t (*DATA15_read)(void);` +- `uint32_t (*DATA16_read)(void);` +- `uint32_t (*DATA17_read)(void);` +- `uint32_t (*DATA18_read)(void);` +- `uint32_t (*DATA19_read)(void);` +- `uint32_t (*DATA20_read)(void);` +- `uint32_t (*DATA21_read)(void);` +- `uint32_t (*DATA22_read)(void);` +- `uint32_t (*DATA23_read)(void);` +- `uint32_t (*DATA24_read)(void);` +- `uint32_t (*DATA25_read)(void);` +- `uint32_t (*DATA26_read)(void);` +- `uint32_t (*DATA27_read)(void);` +- `uint32_t (*DATA28_read)(void);` +- `uint32_t (*DATA29_read)(void);` +- `uint32_t (*DATA30_read)(void);` +- `uint32_t (*DATA31_read)(void);` +- `uint32_t (*BE0_read)(void);` +- `uint32_t (*BE1_read)(void);` +- `uint32_t (*BE2_read)(void);` +- `uint32_t (*BE3_read)(void);` + +The functions descriptions are the same as for static mode. You can even assign your implemented static mode functions to the dynamic mode function pointers. + +## Control functions + +The following functions are used to initialize the FT245 driver and control it. + +### `void FT245_init(ft245_t *ft245)` + +Initializes the `ft245_t` instance. +Initializes the RX/TX buffers and sets all I/O signals to input. + +Parameters: + +- `ft245`: `ft245_t` instance. + +## `void FT245_periodic(ft245_t *ft245)` + +Runs the internal communication logic and iterates the state machine. Automatically toggles the `CLK` signal +and responds to input signals. Needs to be called periodically via timer interrupt or in a loop for this driver +to work properly. + +Parameters: + +- `ft245`: `ft245_t` instance. + +## Runtime functions + +The following functions are used to send/receive data in runtime after initialization. + +### `bool FT245_write_buffered(ft245_t *ft245, uint8_t *data, size_t size)` + +Writes a given amount of `data`, specified with `size`, to the output buffer. It will be sent automatically +on one of the following `FT245_periodic(...)` calls. + +Parameters: + +- `ft245`: `ft245_t` instance. +- `data`: Pointer to the data buffer to be sent. +- `size`: Amount of data elements to send. + +Returns: + +- `true`: Data successfully transferred to output buffer. +- `false`: Data could not be transferred to output buffer. + +### `bool FT245_read_buffered(ft245_t *ft245, uint8_t *data, size_t size)` + +Reads the given amount of data from the input buffer, specified with `size`, to the pointer `data`, if available. + +Parameters: + +- `ft245`: `ft245_t` instance. +- `data`: Pointer to the data buffer to be read. +- `size`: Amount of data elements to read. + +Returns: + +- `true`: Data successfully transferred to `data` buffer. +- `false`: Data could not be transferred to `data` buffer, i.e. no data available at input buffer. + +### `bool FT245_write_word_buffered(ft245_t *ft245, uint32_t word)` + +Writes a full 32-bit word `word` to the output buffer. It will be sent automatically +on one of the following `FT245_periodic(...)` calls. + +Parameters: + +- `ft245`: `ft245_t` instance. +- `word`: 32-bit data word to be sent. + +Returns: + +- `true`: Data word successfully transferred to output buffer. +- `false`: Data word could not be transferred to output buffer. + +### `bool FT245_read_word_buffered(ft245_t *ft245, uint32_t *word)` + +Reads one data word from the input buffer, if available, to the location pointed to by `word`. + +Parameters: + +- `ft245`: `ft245_t` instance. +- `word`: Pointer to the location the word gets transferred to. + +Returns: + +- `true`: Data successfully transferred to `word`. +- `false`: Data could not be transferred to `word`, i.e. no full word available at input buffer. + +### `size_t FT245_available_read(ft245_t *ft245)` + +Returns the number of bytes available in the input buffer. + +Parameters: + +- `ft245`: `ft245_t` instance. + +Returns: + +- Number of bytes available in the input buffer. + +### `size_t FT245_available_write(ft245_t *ft245)` + +Returns the available space (in bytes) of the output buffer. + +Parameters: + +- `ft245`: `ft245_t` instance. + +Returns: + +- Available space (in bytes) of the output buffer.
\ No newline at end of file |