On Tuesday, January 7, 2020 at 10:32:34 AM UTC-8, Dennis Bieber wrote:
>
> On Mon, 6 Jan 2020 16:46:04 -0800 (PST), Greg Ercolano wrote:
>
> >Oh wow, I guess this is close to what I was looking for: 
> >https://elinux.org/BeagleBone_VGA 
> > I can't tell if it's a dead project ("Discontinued") or a work in 
> progress ("Manufacturer's link available soon") 
> >Also, it sounds like it still uses a lot of pins.. probably because it's 
> supporting full VGA including VGA graphics modes. 
>
>         If it acted as a real VGA board (with VGA rendering circuits and 
> memory) it would probably take a LOT more pins. Real VGA boards were 
> memory-mapped into the processor space (for that era, that means it likely 
> had 16 address lines) along with 8 data lines. 
>
>         Since the Beagle does not expose the processor address lines 
> (except 
> possibly for RAM, if the RAM is not inherent to the SoC itself) that means 
> using GPIO to emulate a parallel address bus, along with GPIO for the 
> 8-bit 
> data bus... OR one uses a serial transfer to send address and data 
> information -- in which case one is talking I2C or SPI (or pure UART), and 
> one is giving up the speed advantage of parallel I/O ports&addressing. 
>

     OK -- yeah, that makes sense. 

     I was trying to envision a text mode only VGA cape that could maybe use
     6 bits GPIO; 4 for a data nibble, and one to strobe the nibble, and 
just have
     a write only interface to the 4k of onboard text memory, sending an X, 
Y position
     to write to, and an 8 byte character, and optional attribute char.

     Which is maybe fine for making a dumb terminal, but operations like 
scrolling
     become a headache, since partial window "region scrolling" is needed 
for applications
     like VI which allows horizontal split screen, one can't really use a 
tty like interface
     unless one supports full ANSI/XTERM on the cape. Then we're basically 
back to
     a VT100. :-/

     OK, so I get it -- that's kinda a dead end.

     The only way I could see out of that situation is maybe to use PRU0 to 
offer
     4k of shared memory to the processor as 'screen memory', and the PRU 
constantly
     snapshots that memory to the cape's text memory as fast as it can, and 
the cape
     handles converting the text chars to glyphs and a pixel stream to a 
VGA out connector.

     I'm not familiar at all with what the Arm provides, but Stuart sent me 
a few emails
     giving me some idea about that; I take it internally everything's very 
pixel oriented,
     which probably slows things down a bit when it comes to text; fast 
enough for most
     purposes, maybe even my purposes, I should do some tests.

     I did do a quick test writing my counters to /dev/vcs while on the 
BBB's text console
     (HDMI enabled) and it worked perfectly from a screen layout point of 
view. Should probably
     do a speed test to see how fast I can update the counters.

     But I take it writing to "text screen memory" via /dev/vcs might be 
handled by the linux
     drivers as a software operation, converting the text chars into pixels 
/in software/, is that correct?
     And by "in software", I take that to mean, by the linux host processor 
itself, which means the pixel
     conversion process eats into the processor's cpu time? Which might be 
bad for me, since I'll
     also be trying to update motors. AFAIK the Arm is single core, so some 
of that cpu load couldn't
     be offloaded to another core.

     Mmm, I see, I see..   

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/f457a4eb-0eb7-4a36-adc9-ddf1c98dc467%40googlegroups.com.

Reply via email to