Difference between revisions of "Hardware-set-ups"

From Wiki at Neela Nurseries
Jump to: navigation, search
m (Add ASCII schematic for DEV-18288 set up, very simple set up.)
m (Add section on Zephyr basic/blinky_pwm sample and lpcxpresso55s69_cpu0 board)
 
(3 intermediate revisions by the same user not shown)
Line 11: Line 11:
 
   |        6|          22k    |   
 
   |        6|          22k    |   
 
   |        5|                |
 
   |        5|                |
   |        4|                |
+
   |        4|                |zephyr
 
   |        3|                |
 
   |        3|                |
 
   |        2|                |
 
   |        2|                |
Line 21: Line 21:
 
|                              |
 
|                              |
 
+------------------------------+
 
+------------------------------+
 +
</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>
 
</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