DIO Extended Features Overview
Basics: DIO Extended Features, commonly refered to as "DIO-EF", allow T-Series devices to measure and generate digital waveforms that are more advanced than logic high or logic low. They expose features such as PWM output for servo motor control, Quadrature input for incremental/quadrature encoders, and more.
Register Numbering: DIO-EFs are configured and used through the DIO#(0:22)_EF registers. The numbering of these registers corresponds with the DIO numbers documented in section 13.0 Digital I/O.
Configuration and how to use: The meanings of each of the DIO#_EF_CONFIG registers and DIO#_EF_READ registers changes depending on what DIO-EF index (DIO#_EF_INDEX) is configured, however the general configuration process is the same and is described below. It is helpful to think of DIO-EF features as "sub-systems" that need to be configured before they are started. Once they are started, they can be interacted with by reading the system state and updating system configurations.
DIO-EF System Configurations:
- Select a feature and determine the number of required DIO lines using the reference tables below.
- Ensure that the DIO-EF is disabled by writing a 0 to the appropriate DIO#_EF_ENABLE register.
- If required by the selected DIO-EF feature, configure the DIO-EF clock source.
- Write the selected feature's index value to the appropriate DIO#_EF_INDEX register.
- If required by the selected DIO-EF feature, write to the DIO#_EF_OPTIONS register.
- If required by the selected DIO-EF feature, write to the DIO#_EF_CONFIG registers.
- Enable the selected DIO-EF feature by writing a 1 to the appropriate DIO#_EF_ENABLE register.
Once a DIO-EF has been started, it can be interacted with using the following registers
- If the selected DIO-EF produces data, read the results from the DIO#_EF_READ registers.
- (E.g., if DIO6 is configured as an Interrupt Counter, you can read the current count from DIO6_EF_READ_A.)
- If the selected DIO-EF can be updated on the fly, write to the DIO#_EF_CONFIG registers.
- (E.g., if DIO0 is configured as a PWM Out, you can update the duty cycle by writing to DIO0_EF_CONFIG_A.)
Available DIO-EF Features: A brief overview of each of the features is as follows:
- 0: PWM Out
- 1: PWM Out with Phase
- 2: Pulse Out
- 3,4: Frequency In
- 5: Pulse Width In
- 6: Line-to-Line In
- 7: High-Speed Counter
- 8: Interrupt Counter
- 9: Interrupt Counter with Debounce
- 10: Quadrature In
- 11: Interrupt Frequency In
- 12: Conditional Reset
Kipling Walkthroughs: Kipling's Register Matrix can be used to perform DIO-EF features. Some examples: