TommyboyNL schreef op vrijdag 29 december 2017 @ 23:53:
Het schermpje zelf heeft al een framebuffer, je hoeft dus alleen de wijzigingen daarin weg te schrijven. Dat kost je dus al geen RAM. Verder zijn de spelletjes niet heel stateful, ik verwacht dat je de complete state in minder dan 5 bytes kwijt kan (score, positie van autootje, positie van obstakels, positie van belijning). Op die manier blijven er een ruime 50 bytes over voor het schuiven van data naar het scherm, het bijhouden van een aantal counters, en het uitlezen van de knop.
Hmm, ik geloof dat je gelijk hebt
# ssd1306_tiny
4-Wire SPI library, that truly can handle oled/ssd1306 on attiny13a (1kb flash/64bytes mem) by using C++11 compile-time power.
De ssd1306 is een chip
128 x 64, Dot Matrix OLED/PLED
Segment/Common Driver with Controller
CMOS
SSD1306 is a single-chip CMOS OLED/PLED driver with controller for organic / polymer light emitting diode dot-matrix graphic display system. It consists of 128 segments and 64 commons. This IC is designed for Common Cathode type OLED panel.
The SSD1306 embeds with contrast control, display RAM and oscillator, which reduces the number of external components and power consumption. It has 256-step brightness control. Data/Commands are sent from general MCU through the hardware selectable 6800/8000 series compatible Parallel Interface, I2C interface or Serial Peripheral Interface. It is suitable for many compact portable applications, such as mobile phone sub-display, MP3 player and calculator, etc.
Features
Resolution: 128 x 64 dot matrix panel
Power supply
- VDD= 1.65V - 3.3V, <VBAT for IC Logic
- VBAT= 3.3V - 4.2V for charge pump regulator circuit
- VCC= 7V - 15V for Panel driving
For matrix display
- Segment maximum source current: 100µA
- Common maximum sink current: 15mA
- 256 step contrast brightness current control
Embedded 128 x 64 bit SRAM display buffer
Pin Selectable MCU Interfaces:
- 8-bit 6800/8080-series parallel interface
- 3/4-wire Serial Peripheral Interface
- I2C interface
Screen saving continuous scrolling function in both horizontal and vertical direction
Internal charge pump regulator
RAM write synchronization signal
Programmable Frame Rate and Multiplexing Ratio
Row Re-mapping and Column Re-mapping
On-Chip Oscillator
Chip layout for COG & COF
Wide range of operating temperature -40ºC to 85ºC
Embedded 128 x 64 bit SRAM display buffer, das dus 8192 bit oftewel precies 1KB
Alleen, ik kijk al een tijdje op aliexpress naar al die schermpjes maar ik heb daar nog nooit iets als een ic op zon module gezien. Alles wat ik zie is scherm, al dan niet op een printplaatje met een paar weerstandjes.
Toch heb ik ergens gelezen (op hackaday geloof ik) dat er bij de atmega328 gamehandhelds met hun Nokia 5110 lcd en oledschermpjes alleen een software library wordt gebruikt om het scherm aan te sturen. daarom bufferen ze in die handhelds ook lijnsegmenten wat dus een extreme vorm van interlacing is. Zo werd het tenminste uitgelegd.
In principe heb je als je scherm het aankan maar 1pixel per frame nodig. Een schermpje van 96x64
Moet dan wel 64x96x20=122880 keer per seconde refreshen om dat als een beeld te zien ( ahum, dat lijkt me een beetje te snel voor zon arm oledschermpje)
Om nog meer off-topic te gaan is dat precies hoe ze de originele TRON uit 82 hebben gerenderd.
Daar stond een camera 10 minuten met de sluiter open tegenover een 4K CRT waar dus in die tien minuten een enkel beeldpunt over het scherm liep. Aan t eind had je dus alleen op film het compleet gerendeerde beeld.
De tiny13a heeft de helft minder ram he, maar ook voor de VCS vind t behoorlijk knap.
Hij kan op 20 MHz, maar in de video draait ie op 1mhz (dat was namelijk de challenge) op 20 MHz gebruikt ie meer stroom.
Maar zelfs die atmega328 2kb ram chips, dat ze daar wolfenstein achtige games op draaien. In veel van die games draait dan ook nog een soft synth voor de muziekjes. Daar wordt ik nou blij van:)
Die tinyarcade hier draait nog op de atmega328 maar in de nieuwere versie zijn ze overgestapt op een compacter model waar het scherm samen met een arm cortex m0+ en een sdkaartlezer is gecombineerd. Daar kan wat meer mee, maar dit is dus nog het oude 8 bits model.
[
Voor 42% gewijzigd door
verleemen op 30-12-2017 02:42
]