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.

Sprite
Espressif staff
Espressif staff
Posts: 10636
Joined: Thu Nov 26, 2015 4:08 am

Re: Fast 16-bit parallel output?

Postby 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: 600
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: PerplexityBot and 3 guests