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:27] – Added refelctive sensor 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|\\ | ||
Line 146: | Line 152: | ||
|0x2|Motion tracking sensor|LMPU9250| | |0x2|Motion tracking sensor|LMPU9250| | ||
|0x3|Gyroskope|ITG3200| | |0x3|Gyroskope|ITG3200| | ||
+ | |0x4|Reflective Photoelectric Sensors|TCRT1000| | ||
==== LDC1000 ==== | ==== LDC1000 ==== | ||
Line 268: | Line 275: | ||
==== ITG3200 ==== | ==== ITG3200 ==== | ||
=== ITG3200 Specific Registers === | === ITG3200 Specific Registers === | ||
+ | ^Offset^Size [byte] ^Name^r/ | ||
|0x20|4|gyro_xout_h|r|no|GYRO_XOUT_H of the ITG3200| | |0x20|4|gyro_xout_h|r|no|GYRO_XOUT_H of the ITG3200| | ||
|0x24|4|gyro_xout_l|r|no|GYRO_XOUT_L of the ITG3200| | |0x24|4|gyro_xout_l|r|no|GYRO_XOUT_L of the ITG3200| | ||
Line 275: | Line 283: | ||
|0x34|4|gyro_zout_l|r|no|GYRO_ZOUT_L of the ITG3200| | |0x34|4|gyro_zout_l|r|no|GYRO_ZOUT_L of the ITG3200| | ||
+ | ==== ITG3200 ==== | ||
+ | This funtion ist used to drive refelctive photoelectric sensors. It generates a puls to drive the sensor which is selected by the endcoder signals. Encoder signals has to be encoded befor connecting it to the sensors | ||
+ | |||
+ | Make sure to set the base clock of this subdevice correctly (in Altera or Vivado), because the serial clock is derived from that clock. | ||
+ | ^Offset^Size [byte] ^Name^r/ | ||
+ | |0x20|4|resolution|r|yes|this is the number of resolvable digital steps| | ||
+ | |0x24|4|sensor_0|r|no|channel 0: digitized input value| | ||
+ | |0x28|4|sensor_1|r|no|channel 1: digitized input value| | ||
+ | |..|4|..|r|no|..| | ||
+ | |0xyy|4|irq_hys_up_0|r/ | ||
+ | |0xyy+4|4|irq_hys_up_1|r/ | ||
+ | |..|4|..|r/ | ||
+ | |0xzz|4|irq_hys_low_0|r/ | ||
+ | |0xzz+4|4|irq_hys_low_0|r/ | ||
+ | |..|4|..|r/ | ||
+ | |||
+ | The status register in the subheader is unused with this function. In the configuration register setting the bit 0 will reset the subdevice. | ||
+ | |||
+ | === Outputs === | ||
+ | This subdevice uses tree pins to connect the adc7476. | ||
+ | An appropriate number of pins for the decoder => number_of_sensors = 2< | ||
+ | And one Pin for the Puls to drive the Sensors. | ||