test nixbld

This commit is contained in:
Florian Agbuya 2024-08-20 10:03:30 +08:00
parent 8b20379427
commit 79315d3d1b
2 changed files with 50 additions and 1 deletions

View File

@ -0,0 +1,49 @@
import time
from pyfastservo import adc, dac
from pyfastservo.common import (
ADC_CH0_HIGH_ADDR,
ADC_CH0_LOW_ADDR,
CH0_HIGH_WORD_ADDR,
CH0_LOW_WORD_ADDR,
read_from_memory,
write_to_memory
)
###
def read_adc():
adc_value = adc.read_adc_channel(ADC_CH0_HIGH_ADDR, ADC_CH0_LOW_ADDR)
return adc_value
def write_dac(value):
dac.set_dac_output(value)
def read_dac():
high_word = read_from_memory(CH0_HIGH_WORD_ADDR, 1)[0]
low_word = read_from_memory(CH0_LOW_WORD_ADDR, 1)[0]
return (high_word << 8) | low_word
def perform_loopback_test(test_value):
print(f"Setting DAC output to {test_value}...")
write_dac(test_value)
time.sleep(0.1) # Allow time for the signal to stabilize
print("Reading ADC value...")
adc_value = read_adc()
print(f"ADC readback: {adc_value}")
print("Reading DAC value...")
dac_value = read_dac()
print(f"DAC readback: {dac_value}")
if abs(test_value - adc_value) <= 2 and abs(test_value - dac_value) <= 2:
print("Loopback test PASSED!")
else:
print("Loopback test FAILED!")
print(f"Expected: {test_value}, ADC: {adc_value}, DAC: {dac_value}")
def main():
test_value = 0x2000 # Mid-range value (8192 in decimal)
perform_loopback_test(test_value)
if __name__ == "__main__":
main()

View File

@ -481,7 +481,7 @@
inherit migen misoc vivado;
};
packages.armv7l-linux = {
inherit fast-servo-gateware linien-server;
inherit fast-servo-gateware linien-server pyfastservo;
} //
(board-package-set { board = "zc706"; }) //
(board-package-set { board = "fast-servo"; });