Revelation Time!
The STM32F7 Discovery board is remarkable a board for the money providing a rich mix of hardware, communication interfaces and memory. With it's 216MHz STM32F746 ARM Cortex M7 microcontroller and 4.3" capacitive touchscreen display, it makes a very capable platform to develop embedded applications on.  It represents probably the fastest system available that allows true bare metal programming - unhindered by an operating system. For anyone developing embedded systems requiring touchscreen display, ethernet, audio and a fast 32 bit processor, the F7 Discovery is worth considering. All of the principal ICs on the F7 Discovery are available in LQFP or TSSOP packages - which means that the core hardware design could be recreated on a simple double sided pcb - suitable for hobbyist construction.
When I first looked at the STM32F7 Discovery board, and saw the Arduino headers on the underside of the pcb - I thought that such a powerful board, having been design restricted to just 20 feeble I/O lines, was a bit lame - kind of added at the last moment - as an Arduino afterthought.
However, when I took a closer look at what signals had actually been routed out to the Arduino headers - I discovered that it is possible to get all but 1 of the signals for an RGB  2:3:2 display!  It almost looks as the signals were planted on the Arduino headers on purpose - for a backdoor VGA display  - of up to 128 colours.  Now that did get my attention!
A VGA shield could be easily built on a proto shield or even stripboard.
Not only that - but two SPI ports and an additional UART appear on the headers - allowing for a PS2 mouse and keyboard, and an auxiliary serial debug port!
Whoever laid out the F7 Discovery board was either a Genius of a bluffer!
A Pocket Workstation
With the possibility of quite an easy hack to get 7 bit VGA from the Arduino headers, and add a PS2 keyboard and mouse - it occurred to me that the Discovery board had just redeemed itself as a prime contender for the proposed retro-workstation project.   It would certainly work well as a target board - to allow ideas to be tried before committing to further hardware.
A simple shield carrying the VGA resistor networks, a VGA connector and 2 PS2 sockets could be made up very easily - on the new preferred 50x50mm board format.
The Discovery board provides  8Mbyte of SDRAM,  16MByte of Nor Flash and a microSD card. This would be sufficient for much of the experimentation I want to do - after all I am looking for minimal systems with modest resources. In terms of computing power - the Discovery board represents a respectable mid-1990s desktop.
Other useful hardware is the ethernet connectivity, the OTG high speed USB and the audio interface. hardware.
mbed on the STM32F7 Discovery
With mbed available for code development - this seems to be a step up from the humble Arduino - and definitely a very exposed platform for bare metal code development.   The hardware is totally accessible - and not hiding behind Linux, and there is no part of this hardware design that I cannot recreate using LQFP packages on a self designed pcb, adding more SRAM or SDRAM as required.
The hardware is quick too - it looks like it will be about 30 times the speed if the ZPUino - plus more resources - and a more flexible VGA or LCD system.  There is scope for Li Po battery operation - and discover some of the low power modes of the STM32F7 micro.
Discovery F7 VGA Output Hardware Details
Here's the hardware connection details for the proposed "Arduino"  VGA/ PS2 shield.
Colour                      Port                       Arduino Pin
R7                             PG6                       Dig 2
R6                             PA8                       Dig 10
G7                             PI2                        Dig 8
G6                             PI1                        Dig 13
G5                             PI0                        Dig 5
B7                             PB9                       Dig 14 
B6                             PB8                       Dig 15
H_SYNC                  PC6                       Dig 1   
V_SYNC                  TBD                      Available on camera FPC
The missing V_sync is probably not too much of an issue.  It could be generated by a Timer - clocked by H_sync
LCD_CLK                PG7                       Dig 4
TIM3 CH1                PB4                       Dig 3
                                 PH6                       Dig 6
TIM2 CH1                PA15                     Dig 9
                                 PB15                     Dig 11
                                 PB14                     Dig 12
For serial communication - we have access to UART7 on PF6 ad PF7 - which appear as AN4 and AN5. This will allow a FTDI cable to be plugged is as an auxiliary/ debug port
So the full line up - rearranged
H_SYNC                  PC6                        Dig 1 
R7                             PG6                       Dig 2
TIM3 CH1                PB4                       Dig 3
LCD_CLK                PG7                       Dig 4
G5                             PI0                        Dig 5
TIM12 CH2              PH6                       Dig 6
Spare                        PI3                         Dig 7
G7                             PI2                        Dig 8
TIM2 CH1                PA15                     Dig 9
R6                             PA8                       Dig 10
TIM12 CH2              PB15                     Dig 11
TIM1/8 CH2N          PB14                     Dig 12
G6                             PI1                        Dig 13
B7                             PB9                       Dig 14 
B6                             PB8                       Dig 15
                               PA0                       AN0
                               PF10                      AN1
SPI5_MOSI            PF9                        AN2
SPI5_MISO            PF8                        AN3
SPI5_SCK              PF7                        AN4
UART7 TX             PF6                        AN5
No comments:
Post a Comment