This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
subdevices [2021/02/05 08:05] – [UART] ursgraf | subdevices [2023/11/20 17:13] – Added IRQ Functions to GPIO patrickgood | ||
---|---|---|---|
Line 13: | Line 13: | ||
|0x10|Watchdog|watchdog timer| | |0x10|Watchdog|watchdog timer| | ||
|0x11|Sensor|various sensors (inductive, acceleration)| | |0x11|Sensor|various sensors (inductive, acceleration)| | ||
+ | |0x15|Stepper Motor|To run a stepper motor directly| | ||
+ | |0x18|IRQ Muliplexer|To multiplex the flink IRQ lines| | ||
===== Subdevice Specific Registers ===== | ===== Subdevice Specific Registers ===== | ||
Line 54: | Line 56: | ||
===== GPIO ===== | ===== GPIO ===== | ||
- | This function realizes digital inputs and outputs. | + | This function realizes digital inputs and outputs. |
+ | Make sure to set the base clock of this subdevice correctly (in Altera or Vivado), because debouncing is derived from that clock. | ||
^Offset^Size [byte] ^Name^r/ | ^Offset^Size [byte] ^Name^r/ | ||
- | |0x20|4|dir_0|r/ | + | |0x20|4|base_clk|r|yes|base clock in Hz| |
- | |0x24|4|dir_1|r/ | + | |0x24|4|dir_0|r/ |
+ | |0x28|4|dir_1|r/ | ||
|..|4|..|r/ | |..|4|..|r/ | ||
|0xyy|4|val_0|r/ | |0xyy|4|val_0|r/ | ||
|0xyy+4|4|val_1|r/ | |0xyy+4|4|val_1|r/ | ||
+ | |..|4|..|r/ | ||
+ | |0xzz|4|irq_debounce_0|r/ | ||
+ | |0xzz+4|4|irq_debounce_1|r/ | ||
|..|4|..|r/ | |..|4|..|r/ | ||
A value of ' | A value of ' | ||
Line 115: | Line 122: | ||
|..|4|..|r|no|..| | |..|4|..|r|no|..| | ||
Both the transmit and receive path contain a 1024 entry FIFO memory. \\ | Both the transmit and receive path contain a 1024 entry FIFO memory. \\ | ||
- | The devider register will devide the base clock and the resulting frequency is the baudrate of the UART. The status register in the subheader is unused with this function. Setting the bit 0 in the configuration register will reset the subdevice. The status register of each channel | + | The devider register will devide the base clock and the resulting frequency is the baudrate of the UART. The status register in the subheader is unused with this function. Setting the bit 0 in the configuration register will reset the subdevice. The status register of each channel |
| 31...26 | 25...16 | 15...7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | | 31...26 | 25...16 | 15...7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | ||
| unused | number of active entries in rx FIFO |unused|tx FIFO full|tx FIFO half full|tx FIFO empty|unused|rx FIFO full|rx FIFO half full|rx FIFO empty|\\ | | unused | number of active entries in rx FIFO |unused|tx FIFO full|tx FIFO half full|tx FIFO empty|unused|rx FIFO full|rx FIFO half full|rx FIFO empty|\\ |