This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
resources:eval:user-guides:circuits-from-the-lab:eval-adpd410x [13 May 2022 16:05] – Joyce Velasco | resources:eval:user-guides:circuits-from-the-lab:eval-adpd410x [22 Jun 2022 06:25] – Angelo Nikko Catapang | ||
---|---|---|---|
Line 8: | Line 8: | ||
===== Device Driver and Support ===== | ===== Device Driver and Support ===== | ||
- | A no-OS device driver and example program | + | A no-OS device driver and an example program |
Similarly, utility software (such as iio_info, IIO Oscilloscope, | Similarly, utility software (such as iio_info, IIO Oscilloscope, | ||
Line 51: | Line 52: | ||
==== Prototyping Connectors ==== | ==== Prototyping Connectors ==== | ||
- | The board has two parallel 18-pin 100-mil pitch male connectors, which give access to the LED driver channels, the photodiode inputs, custom I/O pins from the AFE, and supply voltage for the LED. The user can use this along with the break-away protoboard to implement a custom circuit for testing. The pin assignment and functions are shown below. | + | The board has two parallel 18-pin, 100-mil pitch male connectors, which give access to the LED driver channels, the photodiode inputs, custom I/O pins from the AFE, and supply voltage for the LED. The user can use this along with the break-away protoboard to implement a custom circuit for testing. The pin assignment and functions are shown below. |
{{: | {{: | ||
Line 57: | Line 58: | ||
Pins labeled **XYC** (where X refers to LED 1, 2, 3, or 4, and Y refers to channel A or B) denote connections to the LED cathode which are voltage protected via transistors to the ADPD4100/1 LED inputs (denoted by **LXY**). It is recommended to connect LED cathodes to these pins instead of connecting directly to **LXY** pins. **PDXY** (X refers to photodiode 1, 2, 3, or 4 and Y refers to channel A or B) pins denote photodiode signal inputs to the AFE. **ACOM** and **BCOM** pins refer to the common cathode bias output for photodiode sensors. These should be connected to the cathodes of photodiodes in the matching channel (for example, photodiodes connected to PD1A, PD2A, PD3A, and PD4A should have their cathodes connected to ACOM). | Pins labeled **XYC** (where X refers to LED 1, 2, 3, or 4, and Y refers to channel A or B) denote connections to the LED cathode which are voltage protected via transistors to the ADPD4100/1 LED inputs (denoted by **LXY**). It is recommended to connect LED cathodes to these pins instead of connecting directly to **LXY** pins. **PDXY** (X refers to photodiode 1, 2, 3, or 4 and Y refers to channel A or B) pins denote photodiode signal inputs to the AFE. **ACOM** and **BCOM** pins refer to the common cathode bias output for photodiode sensors. These should be connected to the cathodes of photodiodes in the matching channel (for example, photodiodes connected to PD1A, PD2A, PD3A, and PD4A should have their cathodes connected to ACOM). | ||
- | A simple circuit for testing LED driver outputs and photodiode current sensing using the break-away prototype board can easily be set up using optocouplers as shown below. | + | A simple circuit for testing LED driver outputs and photodiode current sensing using the break-away prototype board can easily be set up using optocouplers, as shown below. |
{{: | {{: | ||
Line 75: | Line 76: | ||
==== Dragging and Dropping the Hex File to the Daplink Drive ==== | ==== Dragging and Dropping the Hex File to the Daplink Drive ==== | ||
- | - Ensure that the [[ADI> | + | - Ensure that the [[ADI> |
- Connect the [[ADI> | - Connect the [[ADI> | ||
- Drag and Drop the appropriate .hex file from the list below to the Daplink Drive. {{: | - Drag and Drop the appropriate .hex file from the list below to the Daplink Drive. {{: | ||
Line 81: | Line 82: | ||
<WRAP todo> | <WRAP todo> | ||
- | Prerelease | + | Pre-built |
- | * For EVAL-ADPD4100: EVAL-ADPD4100-ARDZ.hex | + | * For EVAL-ADPD4100, use ADuCM3029_demo_adpd410x_spi.hex |
- | * For EVAL-ADPD4101: EVAL-ADPD4101-ARDZ.hex | + | * For EVAL-ADPD4101, use ADuCM3029_demo_adpd410x_i2c.hex |
</ | </ | ||
==== Using CrossCore Embedded Studio ==== | ==== Using CrossCore Embedded Studio ==== | ||
- Acquire a copy of the project source files of the EVAL-ADPD410X-ARDZ by downloading the source files directly from the repository at [[repo> | - Acquire a copy of the project source files of the EVAL-ADPD410X-ARDZ by downloading the source files directly from the repository at [[repo> | ||
- | - Open CrossCore Embedded Studio and import the project into your workspace as detailed in the [[: | + | - Open CrossCore Embedded Studio and import the project into your workspace, as detailed in the [[: |
- Once ready, you can opt to generate your own .hex file and use the first method to program the **[[ADI> | - Once ready, you can opt to generate your own .hex file and use the first method to program the **[[ADI> | ||
Line 97: | Line 98: | ||
You can configure the default timeslots and other settings of the [[ADI> | You can configure the default timeslots and other settings of the [[ADI> | ||
* You can set the default number of active timeslots and output data rate.\\ {{: | * You can set the default number of active timeslots and output data rate.\\ {{: | ||
- | * Initial timeslot settings are configured using the **adpd410x_timeslot_init** data structure as shown below:\\ {{: | + | * Initial timeslot settings are configured using the **adpd410x_timeslot_init** data structure, as shown below:\\ {{: |
* **Enabling ADC channel 2**\\ Each timeslot can use the two ADC input channels of the ADPD4100/1. By default, the timeslot only uses channel 1. Setting this to true will enable channel 2. | * **Enabling ADC channel 2**\\ Each timeslot can use the two ADC input channels of the ADPD4100/1. By default, the timeslot only uses channel 1. Setting this to true will enable channel 2. | ||
- | * **Timeslot Inputs**\\ {{: | + | * **Timeslot Inputs**\\ {{: |
+ | * Each of the input pins can be disabled or routed to any or both of the channels. Below are the possible configurations of the input pins.\\ {{: | ||
* **Timeslot Input Preconditioning**\\ Timeslot inputs have programmable connections, | * **Timeslot Input Preconditioning**\\ Timeslot inputs have programmable connections, | ||
- | * **TIA Reference Voltage**\\ The reference voltage of the TIA (Trans-Impedance Amplifier) is configurable. Below are the possible values:\\ {{: | + | * **TIA Reference Voltage**\\ The reference voltage of the Trans-Impedance Amplifier |
- | * **TIA Gain Resistor**\\ The gain resistor used by the TIA (Trans-Impedance Amplifier) | + | * **TIA Gain Resistor**\\ The gain resistor used by the TIA is configurable for each input channel. Below are the possible values:\\ {{: |
* **Multiple Pulses and Integrator Chopping** The ADPD4100/1 is capable of improving SNR using multiple pulses per sample and integrator chopping, which have configurable settings. | * **Multiple Pulses and Integrator Chopping** The ADPD4100/1 is capable of improving SNR using multiple pulses per sample and integrator chopping, which have configurable settings. | ||
* **4-Pulse Reverse Pattern**\\ Each pulse from the LED in a set of 4 can be configured to either have an on-off or off-on integrator chopping sequence. This is a 4-bit value, 1 bit for each pulse. Setting a bit reverses the integrator chopping sequence for that pulse. | * **4-Pulse Reverse Pattern**\\ Each pulse from the LED in a set of 4 can be configured to either have an on-off or off-on integrator chopping sequence. This is a 4-bit value, 1 bit for each pulse. Setting a bit reverses the integrator chopping sequence for that pulse. | ||
Line 125: | Line 128: | ||
==== Connection ==== | ==== Connection ==== | ||
- | The device must be able to create a context. Context creation in the software depends on the backend used to connect the device. This guide covers the device communication using the currently supported platform, a serial backend through a USB-UART connection. A simple way of checking, if the device is connected, is through the **[[: | + | The device must be able to create a context. Context creation in the software depends on the backend used to connect the device. This guide covers the device communication using the currently supported platform, a serial backend through a USB-UART connection. A simple way of checking, if the device is connected, is through the **[[: |
< | < | ||
iio_info -u serial:< | iio_info -u serial:< | ||
Line 155: | Line 158: | ||
The -d option of the **[[: | The -d option of the **[[: | ||
< | < | ||
- | For reading: iio_attr -u <URI> -d < | + | For reading, use iio_attr -u <URI> -d < |
- | For writing: iio_attr -u <URI> -d < | + | For writing, use iio_attr -u <URI> -d < |
- | E.g. for a Windows Machine | + | e.g., for a Windows Machine |
iio_attr -u serial:COM4 -d adpd410x sampling_frequency 40 | iio_attr -u serial:COM4 -d adpd410x sampling_frequency 40 | ||
</ | </ | ||
Line 167: | Line 170: | ||
==== IIO Oscilloscope ==== | ==== IIO Oscilloscope ==== | ||
- | <note important> | + | <note important> |
- Install and start IIO-Oscilloscope. There are two options you can use to select IIO contexts. First, you can use the Serial option and input the correct port settings of the board from the Device Manager. Another way is by manually entering the URI used in [[resources: | - Install and start IIO-Oscilloscope. There are two options you can use to select IIO contexts. First, you can use the Serial option and input the correct port settings of the board from the Device Manager. Another way is by manually entering the URI used in [[resources: | ||
- Press Refresh to display available IIO Devices, and once adpd410x is detected, press Connect. It may take several presses to Connect before the software proceeds and opens the Debug Panel and Waveform Panel\\. {{: | - Press Refresh to display available IIO Devices, and once adpd410x is detected, press Connect. It may take several presses to Connect before the software proceeds and opens the Debug Panel and Waveform Panel\\. {{: | ||
Line 176: | Line 179: | ||
=== Waveform Panel === | === Waveform Panel === | ||
- | The Waveform panel, also known as the Capture window, displays the real-time waveform of selected photodiode channels of the ADPD410x. Select the desired channels to display in the upper left section. You can also edit the plot settings in the left section\\ | + | The Waveform panel, also known as the Capture window, displays the real-time waveform of selected photodiode channels of the ADPD410x. Select the desired channels to display in the upper left section. You can also edit the plot settings in the left section.\\ |
<WRAP important> | <WRAP important> | ||
{{: | {{: | ||
Line 185: | Line 188: | ||
=== Installing the Packages === | === Installing the Packages === | ||
- | <note important> | + | <note important> |
Install PyADI-IIO using one of the methods in [[/ | Install PyADI-IIO using one of the methods in [[/ | ||
Line 198: | Line 201: | ||
...\pyadi-iio\> | ...\pyadi-iio\> | ||
</ | </ | ||
- | <note important> | + | <note important> |
=== Running the Examples === | === Running the Examples === | ||
Line 206: | Line 209: | ||
- Connect the EVAL-ADICUP3029 to the PC using the micro-USB cable and note the serial port from the Device Manager as in [[resources: | - Connect the EVAL-ADICUP3029 to the PC using the micro-USB cable and note the serial port from the Device Manager as in [[resources: | ||
- Open command prompt or terminal and navigate to the examples folder inside the downloaded or cloned // | - Open command prompt or terminal and navigate to the examples folder inside the downloaded or cloned // | ||
- | - Run the example using the command: < | + | - Run the example using the command: < |
- Input the noted serial port and press // | - Input the noted serial port and press // | ||
- Once connected, press //Read//\\ {{: | - Once connected, press //Read//\\ {{: | ||
Line 214: | Line 217: | ||
- Connect the EVAL-ADICUP3029 to the PC using the micro-USB cable and note the serial port from the Device Manager as in [[resources: | - Connect the EVAL-ADICUP3029 to the PC using the micro-USB cable and note the serial port from the Device Manager as in [[resources: | ||
- Open command prompt or terminal and navigate to the examples folder inside the downloaded or cloned // | - Open command prompt or terminal and navigate to the examples folder inside the downloaded or cloned // | ||
- | - Run the example script using the command: < | + | - Run the example script using the command: < |
- The script will ask for a serial port. Input the noted serial port and press Enter. In cases when the board is not found, press the reset button (S1) on the EVAL-ADPD4100-ARDZ or EVAL-ADPD4101-ARDZ and input the noted serial port again.\\ {{: | - The script will ask for a serial port. Input the noted serial port and press Enter. In cases when the board is not found, press the reset button (S1) on the EVAL-ADPD4100-ARDZ or EVAL-ADPD4101-ARDZ and input the noted serial port again.\\ {{: | ||
- When the board is detected, you will be asked to specify the number of channels (1 to 8) you want to read. Then, you need to specify the desired channel numbers (1 to 8).\\ {{: | - When the board is detected, you will be asked to specify the number of channels (1 to 8) you want to read. Then, you need to specify the desired channel numbers (1 to 8).\\ {{: | ||
Line 220: | Line 223: | ||
\\ | \\ | ||
For example 3, follow these steps: | For example 3, follow these steps: | ||
- | - Connect the EVAL-ADPD4100-ARDZ or EVAL-ADPD4101-ARDZ to the EVAL-ADICUP3029 | + | - Connect the EVAL-ADPD4100-ARDZ or EVAL-ADPD4101-ARDZ to the EVAL-ADICUP3029. |
- Connect the EVAL-ADICUP3029 to the pc using the micro-USB cable and note the serial port from the Device Manager as in [[resources: | - Connect the EVAL-ADICUP3029 to the pc using the micro-USB cable and note the serial port from the Device Manager as in [[resources: | ||
- Open command prompt or terminal and navigate to the examples folder inside the downloaded or cloned // | - Open command prompt or terminal and navigate to the examples folder inside the downloaded or cloned // | ||
- | - Run the example script using the command: < | + | - Run the example script using the command: < |
- A GUI window will appear, as shown below. There are four buttons at the top right for each test namely, open onboard LED test, covered onboard LED test, no load test, and mounted jig test. **Before pressing a button to start the test, select the noted COM port on the dropdown list at the top left.**\\ {{: | - A GUI window will appear, as shown below. There are four buttons at the top right for each test namely, open onboard LED test, covered onboard LED test, no load test, and mounted jig test. **Before pressing a button to start the test, select the noted COM port on the dropdown list at the top left.**\\ {{: | ||
* **Open Onboard LED Test**\\ The test samples raw ADC values from the onboard photodiode and checks whether it is consistent with the standard. Make sure that all shunts on jumper header P10 are present and connected. A sample passing result is shown below\\ {{: | * **Open Onboard LED Test**\\ The test samples raw ADC values from the onboard photodiode and checks whether it is consistent with the standard. Make sure that all shunts on jumper header P10 are present and connected. A sample passing result is shown below\\ {{: | ||
* **Covered Onboard LED Test**\\ Place your finger above the onboard photodiode and LED.\\ {{: | * **Covered Onboard LED Test**\\ Place your finger above the onboard photodiode and LED.\\ {{: | ||
- | * **No Load Test**\\ Remove all shunts on jumper header P10. This test checks the photodiode input when no external sensor is connected. A sample passing result is shown below\\ {{: | + | * **No Load Test**\\ Remove all shunts on jumper header P10. This test checks the photodiode input when no external sensor is connected. A sample passing result is shown below.\\ {{: |
* **Mounted Jig Test**\\ Using the simple test schematic shown in [[resources: | * **Mounted Jig Test**\\ Using the simple test schematic shown in [[resources: | ||