pull/94/head
ikjordan 2024-03-13 19:57:28 +00:00
rodzic c8e3bc30bd
commit b0463c8cc7
2 zmienionych plików z 32 dodań i 22 usunięć

Wyświetl plik

@ -1,15 +1,25 @@
Bitbanged DVI on the RP2040 Microcontroller with HDMI and audio support
==================================================================================
This repo adds to the following features to PicoDVI
1. Audio over DVI (HDMI) taken from the work of [mlorenzati and shuichitakano](https://github.com/mlorenzati/PicoDVIfrom), with some optimizations, additions and fixes. Works with all boards. There are 3 DVI audio examples:
+ `moon_double_audio`: A bit doubled version of the `moon` demo that includes audio (spoken voice)
+ `sprite_bounce_audio`: Adds an audio sine wave to the `sprite_bounce_demo` - caution this is quite loud!
+ `colour_terminal_audio`: Adds spoken voice audio to the `colour_terminal` demo
2. 50 Hz DVI modes have been added. Small changes were needed to the base code as a pixel width of 768 is not divisible by 32.
3. A board configuration for Olimex. Set `DVI_DEFAULT_SERIAL_CONFIG` equal to `Olimex_RP2040_PICO_PC_cfg`
4. Stereo PWM sound for Olimexpc. The supplied PicoDVI code from Olimex uses PWM to generate the DVI clock on pins 12 and 13. The boards audio output is on pins 27 and 28. Pin 28 and pin 12 are on the same PWM channel (6A), so it is not possible to configure different PWM clock frequencies for the two pins. In effect this means that PWM stereo sound does not work with the supplied Olimex PicoDVI code. The code in this repo can optionally generate the DVI clock using a very simple PIO state machine, so that pins 27 and 28 can then be driven to generate PWM audio. To enable this set `DVI_USE_PIO_CLOCK`
From the original Readme
========================
Big Kudos to @shuichitakano to fix the audio support
Using https://github.com/shuichitakano/pico_lib C++ implementation of the HDMI with audio support
For picoDVI from https://github.com/Wren6991/PicoDVI
DVI start/stop works, audio works with some limitations of cpu usage, if line or pixel doubling is enabled works
[*IJ*]
+ PicoDVI with audio and OlimexPC board support
+ Extra 50Hz modes added
![](img/mountains.jpg)
*640x480 RGB565 image, 640x480p 60 Hz DVI mode. 264 kB SRAM, 2x Cortex-M0+, system clock 252 MHz*

Wyświetl plik

@ -1,19 +1,19 @@
#add_subdirectory(bad_apple)
#add_subdirectory(colour_terminal)
#add_subdirectory(colour_terminal_audio)
#add_subdirectory(christmas_snowflakes)
#add_subdirectory(dht_logging)
#add_subdirectory(dual_display)
#add_subdirectory(hello_dvi)
#add_subdirectory(mandelbrot)
#add_subdirectory(moon)
add_subdirectory(bad_apple)
add_subdirectory(colour_terminal)
add_subdirectory(colour_terminal_audio)
add_subdirectory(christmas_snowflakes)
add_subdirectory(dht_logging)
add_subdirectory(dual_display)
add_subdirectory(hello_dvi)
add_subdirectory(mandelbrot)
add_subdirectory(moon)
add_subdirectory(moon_double_audio)
#add_subdirectory(sprite_bounce)
#add_subdirectory(sprite_bounce_audio)
#add_subdirectory(terminal)
#add_subdirectory(tiles)
#add_subdirectory(tiles_and_sprites)
#add_subdirectory(tiles_parallax)
#add_subdirectory(vista)
#add_subdirectory(vista-palette)
#add_subdirectory(mandel-full)
add_subdirectory(sprite_bounce)
add_subdirectory(sprite_bounce_audio)
add_subdirectory(terminal)
add_subdirectory(tiles)
add_subdirectory(tiles_and_sprites)
add_subdirectory(tiles_parallax)
add_subdirectory(vista)
add_subdirectory(vista-palette)
add_subdirectory(mandel-full)