Raspberry Pico2 support #3492
Replies: 1 comment
-
I am testing an ILI9488 on a parallel 16-bit bus on RP2350B, using pins above the first 32 GPIOs. Per the datasheet (11.1.1. Changes from RP2040)
The library assigns 18 pins to PIO: TFT_WR, TFT_DC and 16 data pins, and there are two GPIO windows available for the PIO blocks on RP2350B, [0..31] and [16-47], so I went ahead with TFT_WR=29, TFT_DC=28, data starting at TFT_D0=32, and other control pins nearby to ease the connections. To set the GPIOBASE call #if defined (TFT_PARALLEL_8_BIT)
uint8_t bits = 8;
#if TFT_D7 >= 32
pio_set_gpio_base(tft_pio, 16);
#endif
#else // must be TFT_PARALLEL_16_BIT
uint8_t bits = 16;
#if TFT_D15 >= 32
pio_set_gpio_base(tft_pio, 16);
#endif
#endif Without setting the GPIOBASE when using GPIOs above 32, the code hangs in WAIT_FOR_STALL when the PIO pulls data from FIFO, the stall never happens. On this setup, 320x480, with |
Beta Was this translation helpful? Give feedback.
-
Is there a plan to support the new RP2350 processor, espacially in the B-variant which has double pins compared to the A-variant.
And there are always some board available with PSRAM on board which would be great to use.
A first test showed, that DMA transfer seems to work, PSRAM support works on a small test program after adding some code in
Sprite.cpp
similiar to the ESP32. But on my real project I get still crashes on an Pimoroni PGA2350 board where the reason is not found so far (might be the framework, the lib, my code (but runs on a couple of other boards), ...).Using pin number which are bigger than the RP2040 gives some warning about shift operations.
And I am very unsure what else have to be changed in the library. According Earle Philhower "the 2.0 SDK changed the way certain resources were assigned (PIO2 first instead of PIO0, for example) and b) the 2350 has a different register map and HW resources than the 2040".
This is my code change (only for 16bpp shown, but added for 8/4/1bpp too):
Beta Was this translation helpful? Give feedback.
All reactions