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:06] – [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 145: | 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 267: | 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 274: | 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. | ||