Fast 16-bit parallel output?

pastaclub
Posts: 2
Joined: Mon Mar 30, 2020 5:28 pm

Fast 16-bit parallel output?

Postby pastaclub » Mon Mar 30, 2020 5:48 pm

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.

ESP_Sprite
Posts: 9739
Joined: Thu Nov 26, 2015 4:08 am

Re: Fast 16-bit parallel output?

Postby ESP_Sprite » Tue Mar 31, 2020 7:47 am

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.

username
Posts: 534
Joined: Thu May 03, 2018 1:18 pm

Re: Fast 16-bit parallel output?

Postby username » Thu Apr 02, 2020 3:16 pm

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