Category: Hardware
Product Number: AD-PQMON-SL
Hardware: AD-PQMON-SL
Goal:
|
Array Index |
Channel |
|
0 |
Millisecond Epoch Timestamp |
|
1 |
current0 |
|
2 |
voltage0 |
|
3 |
current1 |
|
4 |
voltage1 |
|
5 |
current2 |
|
6 |
voltage2 |
|
7 |
current3 |
Problem Description:
- Millisecond Epoch Timestamp is needed before every waveform acquisition, so we can cross-reference check with power quality events.
- But I don’t know how to add a timestamp to the waveform buffer.
Troubleshooting steps that I have taken:
- Add new timestamp attributes in iio_pqm.c I think is not suitable because there are so many timestamps in every waveform, it’s difficult for logging
- I try to add adi_pqlib_GetTime() in pqlib_afe.c
diff --git a/projects/eval-pqmon/pqlib_dir/include/adi_pqlib.h b/projects/eval-pqmon/pqlib_dir/include/adi_pqlib.h
index aec99dac..573274a6 100644
--- a/projects/eval-pqmon/pqlib_dir/include/adi_pqlib.h
+++ b/projects/eval-pqmon/pqlib_dir/include/adi_pqlib.h
@@ -33,7 +33,7 @@ extern "C" {
*/
/** Total number of waveform channels in AFE output */
-#define ADI_PQLIB_TOTAL_WAVEFORM_CHANNELS 7
+#define ADI_PQLIB_TOTAL_WAVEFORM_CHANNELS 8
/** Size required for a waveform buffer for one channel. */
#define ADI_PQLIB_WAVEFORM_BLOCK_SIZE 256
diff --git a/projects/eval-pqmon/src/common/pqlib_afe.c b/projects/eval-pqmon/src/common/pqlib_afe.c
index f7dee1b2..6b3758f4 100644
--- a/projects/eval-pqmon/src/common/pqlib_afe.c
+++ b/projects/eval-pqmon/src/common/pqlib_afe.c
@@ -236,9 +236,13 @@ int get_afe_input()
}
if ((status == 0) && (pOneCycle->STATUS0 & BITM_STATUS0_COH_PAGE_RDY)) {
+
status = afe_read_waveform(
(uint16_t *) & (pqlibExample.inputWaveform.waveform),
ADI_PQLIB_WAVEFORM_BLOCK_SIZE * ADI_PQLIB_TOTAL_WAVEFORM_CHANNELS);
+
+ adi_pqlib_GetTime(pqlibExample.hDevice, &pqlibExample.inputWaveform.waveform[256]);
+
pWaveform->isDataProcessed = 0;
pWaveform->sequenceNumber++;
if (pqlibExample.no_os_cb_desc && !processData) {