summaryrefslogtreecommitdiff
path: root/tests/extmod_hardware
AgeCommit message (Collapse)Author
9 daystests/extmod_hardware: Add basic tests for machine.Counter and Encoder.Angus Gratton
These don't test any advanced features, just the basics. This work was funded through GitHub Sponsors. Signed-off-by: Angus Gratton <angus@redyak.com.au>
9 daystests/extmod_hardware: Add self unittest for I2CTarget.Damien George
This test uses a SoftI2C controller wired to an I2CTarget on the one board, and tests all functionality of the I2CTarget class. Signed-off-by: Damien George <damien@micropython.org>
2025-07-23tests/extmod_hardware/machine_uart_irq_break.py: Remove send_uart.Damien George
This is no longer needed, the esp32 port can now pass this test using just a single UART. Signed-off-by: Damien George <damien@micropython.org>
2025-07-08tests/extmod_hardware/machine_uart_irq_rxidle.py: Test multiple writes.Damien George
This tests that the RXIDLE callback is called correctly after a second lot of bytes are received. Signed-off-by: Damien George <damien@micropython.org>
2025-07-08tests/extmod_hardware/machine_uart_irq_rxidle.py: Ignore inital IRQ.Damien George
On stm32, the hardware generates an RXIDLE IRQ after enabling the UART, because the RX line is technically idle. Signed-off-by: Damien George <damien@micropython.org>
2025-07-08tests/extmod_hardware: Add UART config for STM32WB boards.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09tests: Update UART and SPI tests to work on Alif boards.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2025-02-25tests: Four typos in tests directory.Christian Clauss
Found by codespell. Signed-off-by: Christian Clauss <cclauss@me.com>
2024-12-11tests/extmod_hardware: Add a test for machine.PWM freq and duty.Damien George
This adds a hardware test for `machine.PWM`. It requires a jumper wire between two pins, uses `machine.PWM` to output on one of them, and `machine.time_pulse_us()` to time the PWM on the other pin (some boards test more than one pair of pins). It times both the high and low duty cycle (and hence the frequency) for a range of PWM frequencies and duty cycles (including full on and full off). Currently supported on: - esp32 (needs a minor hack for initialisation, and some tests still fail) - esp8266 (passes for frequencies 1kHz and less) - mimxrt / Teensy 4.0 (passes) - rp2 (passes) - samd21 (passes for frequencies 2kHz and less) Signed-off-by: Damien George <damien@micropython.org>
2024-10-09tests: Tweak machine SPI and UART tests to work with esp32c6.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2024-08-29tests/extmod_hardware: Add tests for machine.UART.IRQ_RX/RXIDLE/BREAK.Damien George
These all require hardware connections, so live in a different directory. Except for the IRQ_BREAK test of ESP32 devices a single UART with loopback is sufficient. General: SAMD21: Due to the limited flash size only SAMD21 devices with external flash support uart.irq(). IRQ_BREAK: ESP32 needs different UART devices for creating and sensing a break. Lacking a second UART the test is skipped for ESP32S2 and ESP32C3. RP2 does not pass the test reliable at 115200 baud, reason to be found. Thus the upper limit is set to 57600 Baud. Coverage: esp32 pass when different UART devices are used. rp2 pass up to 57600 baud IRQ_RX: SAMD21: Being a slow device it needs data to be sent byte-by-byte at 9600 baud, since the IRQ callback is scheduled delayed and then the flags do not match any more. The data matches since it is queued in the FIFO resp. ringbuffer. CC3200: The test cannot be performed since no calls are accepted in the IRQ handler like u.read(). Skipped. Coverage: cc3200 fail due to major differences in the implementation. esp32 pass nrf pass renesas-ra pass samd pass see the notes. stm32 pass IRQ_RXIDLE: STM32: With PyBoard the IRQ is called several times, but only once with the flag IRQ_RXIDLE set. Coverage: esp32 pass mimxrt pass renesas-ra pass rp2 pass samd pass for both SAMD21 and SAMD51 stm32 fail. see notes. Signed-off-by: Damien George <damien@micropython.org> Signed-off-by: robert-hh <robert@hammelrath.com>