Difference between revisions of "Hardware-set-ups"
(Starting new local page to hold notes on dev board set ups.) |
m (Add section on Zephyr basic/blinky_pwm sample and lpcxpresso55s69_cpu0 board) |
||
(4 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
On Rpi Sparkfun board, DEV-18288 have an LED connected from GPIO p0_7, through 22kOhm resistor to plus rail pin left of the USB-C connector. | On Rpi Sparkfun board, DEV-18288 have an LED connected from GPIO p0_7, through 22kOhm resistor to plus rail pin left of the USB-C connector. | ||
+ | <pre> | ||
+ | +---------+ | ||
+ | | 9| ^^ | ||
+ | | 8| // | ||
+ | | 7|---|>|---/\/\/---+ | ||
+ | | 6| 22k | | ||
+ | | 5| | | ||
+ | | 4| |zephyr | ||
+ | | 3| | | ||
+ | | 2| | | ||
+ | |3V3 GND| | | ||
+ | |RST GND| | | ||
+ | |GDN RX| | | ||
+ | +--|+ TX| | | ||
+ | | +---------+ | | ||
+ | | | | ||
+ | +------------------------------+ | ||
+ | </pre> | ||
+ | <!-- comentario --> | ||
+ | == [[#top|^]] Serial port loopback test on Linux == | ||
− | + | In two terminal windows, programs `echo` and `cat` can be used to test a serial port connected to a loopback cable. This testing also effectively demonstrates the working of serial drivers under Linux. Works for USB-based FTDI cables which convert USB to a serial link. Works for the much older 16550 based serial port peripheral chips. | |
− | + | ||
+ | A third and precursor command, `stty` is also needed to configure given serial port for sane operation during these tests. A couple of options to `stty` utility disable a default echoing behavior on given serial port. Another option suppresses a conversion or handling of carriage return bytes, e.g. stops serial port driver at some level from converting CR to CRLF. | ||
+ | |||
+ | Invocation of stty is: | ||
+ | |||
+ | stty -F /dev/ttyUSB4 -echo -onlcr | ||
+ | |||
+ | Reference: https://super-unix.com/unixlinux/unexpected-results-testing-serial-loopback-using-echo-and-cat/ | ||
+ | |||
+ | <!-- comentario --> | ||
+ | |||
+ | == [[#top|^]] lpcxpresso55x69 Eval Board DTS files and SCTimer0 == | ||
+ | |||
+ | See file in Zephyr 3.2.0 source tree, path `zephyr/boards/arm/lpcxpresso55s69/lpcxpresso55s69-pinctrl.dtsi` and review lines: | ||
+ | |||
+ | 76 pinmux_sctimer_default: pinmux_sctimer_default { | ||
+ | 77 group0 { | ||
+ | 78 pinmux = <SCT0_OUT2_PIO0_15>, | ||
+ | 79 <SCT0_OUT0_PIO1_4>; | ||
+ | 80 slew-rate = "standard"; | ||
+ | 81 }; | ||
+ | 82 }; | ||
+ | |||
+ | Signal names PIO0_15 and PIO1_4 can be located on NXP schematic file for eval board, file `LPCXpresso55S69_Board_Schematic_RevA2_dec4.pdf`. The connection from SCTIMER_OUT0 appears to tie to `LEDB` which is the blue LED on this eval board. A build of the sample app without modifications however produces following Zephyr console output, ending with a PWM setting error message: | ||
+ | |||
+ | <pre> | ||
+ | *** Booting Zephyr OS build zephyr-v3.2.0 *** | ||
+ | PWM-based blinky | ||
+ | Calibrating for channel 0... | ||
+ | [00:00:00.008,000] <dbg> pwm_mcux_sctimer: mcux_sctimer_pwm_set_cycles: SETUP dutycycle to 50 | ||
+ | |||
+ | Done calibrating; maximum/minimum periods 1000000000/7812500 usec | ||
+ | [00:00:04.023,000] <dbg> pwm_mcux_sctimer: mcux_sctimer_pwm_set_cycles: SETUP dutycycle to 50 | ||
+ | |||
+ | [00:00:08.032,000] <dbg> pwm_mcux_sctimer: mcux_sctimer_pwm_set_cycles: SETUP dutycycle to 50 | ||
+ | |||
+ | [00:00:12.041,000] <dbg> pwm_mcux_sctimer: mcux_sctimer_pwm_set_cycles: SETUP dutycycle to 50 | ||
+ | |||
+ | [00:00:16.050,000] <dbg> pwm_mcux_sctimer: mcux_sctimer_pwm_set_cycles: SETUP dutycycle to 50 | ||
+ | |||
+ | [00:00:20.059,000] <dbg> pwm_mcux_sctimer: mcux_sctimer_pwm_set_cycles: SETUP dutycycle to 50 | ||
+ | |||
+ | [00:00:24.068,000] <dbg> pwm_mcux_sctimer: mcux_sctimer_pwm_set_cycles: SETUP dutycycle to 50 | ||
+ | |||
+ | [00:00:28.077,000] <dbg> pwm_mcux_sctimer: mcux_sctimer_pwm_set_cycles: SETUP dutycycle to 50 | ||
+ | |||
+ | [00:00:32.086,000] <dbg> pwm_mcux_sctimer: mcux_sctimer_pwm_set_cycles: SETUP dutycycle to 50 | ||
+ | |||
+ | [00:00:32.095,000] <err> pwm_mcux_sctimer: Could not set up pwm | ||
+ | Error -134: failed to set pulse width | ||
+ | </pre> |
Latest revision as of 20:35, 20 October 2022
(1) Rpi RP2040 DEV-18288 set up 2022 Q2:
On Rpi Sparkfun board, DEV-18288 have an LED connected from GPIO p0_7, through 22kOhm resistor to plus rail pin left of the USB-C connector.
+---------+ | 9| ^^ | 8| // | 7|---|>|---/\/\/---+ | 6| 22k | | 5| | | 4| |zephyr | 3| | | 2| | |3V3 GND| | |RST GND| | |GDN RX| | +--|+ TX| | | +---------+ | | | +------------------------------+
^ Serial port loopback test on Linux
In two terminal windows, programs `echo` and `cat` can be used to test a serial port connected to a loopback cable. This testing also effectively demonstrates the working of serial drivers under Linux. Works for USB-based FTDI cables which convert USB to a serial link. Works for the much older 16550 based serial port peripheral chips.
A third and precursor command, `stty` is also needed to configure given serial port for sane operation during these tests. A couple of options to `stty` utility disable a default echoing behavior on given serial port. Another option suppresses a conversion or handling of carriage return bytes, e.g. stops serial port driver at some level from converting CR to CRLF.
Invocation of stty is:
stty -F /dev/ttyUSB4 -echo -onlcr
Reference: https://super-unix.com/unixlinux/unexpected-results-testing-serial-loopback-using-echo-and-cat/
^ lpcxpresso55x69 Eval Board DTS files and SCTimer0
See file in Zephyr 3.2.0 source tree, path `zephyr/boards/arm/lpcxpresso55s69/lpcxpresso55s69-pinctrl.dtsi` and review lines:
76 pinmux_sctimer_default: pinmux_sctimer_default { 77 group0 { 78 pinmux = <SCT0_OUT2_PIO0_15>, 79 <SCT0_OUT0_PIO1_4>; 80 slew-rate = "standard"; 81 }; 82 };
Signal names PIO0_15 and PIO1_4 can be located on NXP schematic file for eval board, file `LPCXpresso55S69_Board_Schematic_RevA2_dec4.pdf`. The connection from SCTIMER_OUT0 appears to tie to `LEDB` which is the blue LED on this eval board. A build of the sample app without modifications however produces following Zephyr console output, ending with a PWM setting error message:
*** Booting Zephyr OS build zephyr-v3.2.0 *** PWM-based blinky Calibrating for channel 0... [00:00:00.008,000] <dbg> pwm_mcux_sctimer: mcux_sctimer_pwm_set_cycles: SETUP dutycycle to 50 Done calibrating; maximum/minimum periods 1000000000/7812500 usec [00:00:04.023,000] <dbg> pwm_mcux_sctimer: mcux_sctimer_pwm_set_cycles: SETUP dutycycle to 50 [00:00:08.032,000] <dbg> pwm_mcux_sctimer: mcux_sctimer_pwm_set_cycles: SETUP dutycycle to 50 [00:00:12.041,000] <dbg> pwm_mcux_sctimer: mcux_sctimer_pwm_set_cycles: SETUP dutycycle to 50 [00:00:16.050,000] <dbg> pwm_mcux_sctimer: mcux_sctimer_pwm_set_cycles: SETUP dutycycle to 50 [00:00:20.059,000] <dbg> pwm_mcux_sctimer: mcux_sctimer_pwm_set_cycles: SETUP dutycycle to 50 [00:00:24.068,000] <dbg> pwm_mcux_sctimer: mcux_sctimer_pwm_set_cycles: SETUP dutycycle to 50 [00:00:28.077,000] <dbg> pwm_mcux_sctimer: mcux_sctimer_pwm_set_cycles: SETUP dutycycle to 50 [00:00:32.086,000] <dbg> pwm_mcux_sctimer: mcux_sctimer_pwm_set_cycles: SETUP dutycycle to 50 [00:00:32.095,000] <err> pwm_mcux_sctimer: Could not set up pwm Error -134: failed to set pulse width