Fast 16-bit parallel output?
Posted: 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.
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.