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