On 5/18/23, Tomek CEDRO <to...@cedro.info> wrote:
> Hello world :-)
>
> === Short Story Long ===
>
> I have just created my first custom board configuration based on
> ESP32DevkitC. Both application and board configuration is external to
> the nuttx.git and nuttx-apps.git (these are git submodules of my
> project).
>
> From what I can see the board definition for ESP32DevkitC is only a
> template as it does not define all GPIOs for use. So I have modified
> myboard/src/esp32_gpio.c that is creates all /dev/blah entries for
> gpio in/out/irq. Why the board definition does not define all GPIO as
> devices? Would that interfere with alternate functions assigned to the
> pins even on read?
>
> I have also added ws2812 driver (non SPI one) for LED RGB as part of the
> UI.
>
> I have added gpio and ws2812 example application to test gpio from
> nsh. There is a /dev/led_rgb output device created that will drive
> WS2812 LED. I can read/write that pin state with gpio application, but
> ws2812 application cannot write to that device. Any hints are welcome
> here why :-)
>
> As a remark I can mention that initially that GPIO initialization
> caused kernel panic triggered by assertion in the chip gpio code.
> Having that assertion helped me figure out that some pins (34..39)
> cannot use pull-up/dn that are by default set on gpio irq
> initialization. That assertion helped me a lot, thank you!
>
> What else can I do to trace/debug the ws2812 write problem from the OS
> perspective? I cannot really use JTAG pins as they are already used by
> some external peripherals on the board. I can work on ESP32DevkitC
> with that single example WS2812, but there may be some better way
> already out there that would not involve JTAG?
>
> === Long Story short ===
>
> 1. If I create /dev/gpio0 as GPIO input, and then use that pin for
> alternate function would reading /dev/gpio0 interfere with alternate
> function? This is important for situations where GPIO configuration is
> done at runtime (ie. alternate hardware configuration like GPIO vs
> CAN).
>
> 2. I have /dev/led_rgb set as output that can be successfully
> controlled with gpio utility (i.e. set 1 or 0 + readout), but the
> ws2812 application (non SPI mode) has problems opening/using that
> device (error code -1). Is there any way to tell why opening device
> fails? Is it open already by other application for writing? I guess
> only one application can have file opened for writing right?
>
> 3. Is there any way to OS level trace driver development related
> problems that would not involve JTAG debug? Something like gdb/kdb
> launched from nsh?
>
> Any hints welcome :-)

If you don't want to have timing issues a good option is using APA102
or its clone chip SK9822. They will work with any SPI and any speed.
Very reliable!

More info: 
https://cpldcpu.wordpress.com/2016/12/13/sk9822-a-clone-of-the-apa102/

BR,

Alan

Reply via email to