From 05d015b8c4dd3d4c9418750abf6be02cc6afbb0c Mon Sep 17 00:00:00 2001 From: enriquezgarc Date: Tue, 19 Dec 2023 15:51:43 +0100 Subject: [PATCH] tests/psoc6/dut/pin.py: Extended pin modes and features tests. Signed-off-by: enriquezgarc --- tests/psoc6/dut/pin.py | 51 ++++++++++++++++++++++++++++++++++---- tests/psoc6/dut/pin.py.exp | 10 +++++++- 2 files changed, 55 insertions(+), 6 deletions(-) diff --git a/tests/psoc6/dut/pin.py b/tests/psoc6/dut/pin.py index e692e4622a870..b99f95f727c9e 100644 --- a/tests/psoc6/dut/pin.py +++ b/tests/psoc6/dut/pin.py @@ -1,6 +1,7 @@ import os from machine import Pin import machine +import time # Allocate pin based on board machine = os.uname().machine @@ -14,10 +15,17 @@ # Pin out and pin in must be connected # together in the board -pin_out = Pin(pin1_name) -pin_out.init(Pin.OUT) +pin_out = Pin(pin1_name, mode=Pin.OUT, value=True) pin_in = Pin(pin2_name, Pin.IN) +# Validating initialization values +print("pin out initial value 1: ", pin_in.value() == 1) + +pin_out.deinit() +pin_out = Pin(pin1_name, mode=Pin.OUT, value=False) +print("pin out initial value 0: ", pin_in.value() == 0) + +# Validation different output setting pin_out.value(1) print("pin out value 1: ", pin_in.value() == 1) @@ -42,7 +50,40 @@ pin_out.off() print("pin out value off: ", pin_in.value() == 0) -pin_in.irq( - handler=lambda t: print("Interrupt triggered"), trigger=Pin.IRQ_RISING | Pin.IRQ_FALLING -) +pin_out(1) +print("pin out callable 1: ", pin_in.value() == 1) + +pin_out(0) +print("pin out callable 0: ", pin_in.value() == 0) + + +# Validating pull resistors configurations and open drain mode +pin_out.deinit() +pin_out = Pin(pin1_name, pull=None, mode=Pin.OPEN_DRAIN) +print("pin out with pull none initially 0 or 1: ", pin_in.value() == 0 or pin_in.value() == 1) + +pin_out.deinit() +pin_out = Pin(pin1_name, pull=Pin.PULL_DOWN, mode=Pin.OUT) +print("pin out with pull down initially down: ", pin_in.value() == 1) + +pin_out.deinit() +pin_out = Pin(pin1_name, pull=Pin.PULL_UP, mode=Pin.OUT) +print("pin out with pull up initially high: ", pin_in.value() == 0) + + +# Validating interrupts +def blocking_delay_ms(delay_ms): + start = time.ticks_ms() + while time.ticks_diff(time.ticks_ms(), start) < delay_ms: + pass + + +pin_in.irq(handler=lambda t: print("interrupt triggered rising"), trigger=Pin.IRQ_RISING) pin_out.high() + +blocking_delay_ms(1000) + +pin_in.irq(handler=lambda t: print("interrupt triggered falling"), trigger=Pin.IRQ_FALLING) +pin_out.low() + +blocking_delay_ms(1000) diff --git a/tests/psoc6/dut/pin.py.exp b/tests/psoc6/dut/pin.py.exp index 414743b61a645..19976c058e260 100644 --- a/tests/psoc6/dut/pin.py.exp +++ b/tests/psoc6/dut/pin.py.exp @@ -1,3 +1,5 @@ +pin out initial value 1: True +pin out initial value 0: True pin out value 1: True pin out value 0: True pin out value True: True @@ -6,4 +8,10 @@ pin out value high: True pin out value low: True pin out value on: True pin out value off: True -Interrupt triggered +pin out callable 1: True +pin out callable 0: True +pin out with pull none initially 0 or 1: True +pin out with pull down initially down: True +pin out with pull up initially high: True +interrupt triggered rising +interrupt triggered falling