I need to output a stream of 16-bit words fast to an 8080 bus. It's not an option to set single GPIO pins seperately; I want to write 16 bits in one operation if possible. How do I do that?
I read about the register GPIO_OUT_REG, which supposedly corresponds to GPIO 0..31. How do I write 16-bits using this register?
In other places I read that for 8-bit output, pins 12..19 are recommended. Why is that? If there is a register for GPIO 0..31, I would rather assume that it's easiest to write to GPIO 0..15 because otherwise I'd have to left-shift the data. Am I wrong?
I also read about the I2S peripheral and the option of connecting external shift registers (serial-in parallel-out, like HC595) to use DMA and re-parallelize the data, however I'm not sure if that would be faster than parallel output. I'm also concerned about PCB design when high frequencies are involved.
Fast 16-bit parallel output?
-
- Posts: 9739
- Joined: Thu Nov 26, 2015 4:08 am
Re: Fast 16-bit parallel output?
You need output-only into an 16-bit bus? Look into the parallel ('LCD') mode of the I2S peripheral; that can do that at 40MHz and you don't need a shift register for that.
Re: Fast 16-bit parallel output?
This topic has come up several times. Just curious why espressif hasn't just added an example to the examples folder driving a LCD using this method.
Who is online
Users browsing this forum: MichaelS and 92 guests