Piattaforma UZEBOX vs ARDUINO cosa ne pensate?

Ciao a tutti.
Girando per la rete mi sono imbattuto in questa open board atmega644 based.
http://belogic.com/uzebox/index.asp

viste le demo devo dire che sembra non esserci nessun paragone con arduino mega2560
qui si parla di veri videogames a colori con tanto di animazioni, scrolling-video e audio di qualità.
Bootloader da sd-card con la possibilità di caricare i programmi selezionandoli attraverso un menu video.
Inoltre si riescono a realizzare ed eseguire videogames stile anni 70/80 a colori su un monitor.
Perchè tanta differenza con arduino visto che alla fine il micro è quasi uguale e pure della stessa famiglia?
Qualcuno mi potrebbe spiegare?

Queste le specifiche:

CPU: ATmega644 microcontroller
Total RAM: 4K
Program Memory: 64K
Speed: 28.61818Mhz (Overclocked)
Colors: 256 simultaneous colors arranged in a 3:3:2 color space (Red:3 bits, Green:3 bits, Blue: 2 bits)
Resolution: Up to 360x224 pixels (tiles-only and tiles-and-sprites modes)
Sprites: Up to 32 simultaneous sprites on screen at any time
Video output: NTSC Composite and S-Video (Works without changes on most PAL/SECAM TVs)
Sound: 4 channels wavetable, 8-bit mono, mixed at ~15Khz and output via PWM
Inputs: Two NES/SNES compatible joypad inputs
Options: MIDI-in interface and s-video output

La stessa cosa poteva essere fatta anche con atmega2560 solo che nel 2008 non c'era, il package DIP di atmega644 é più maneggevole del TQFP del 2560, se uno vuole può portarlo su arduino2560, è ovvio che bisogna costruire uno shield su misura

Non è così semplice. Non so che conoscenze avete dell'Uzebox, io un pò perché l'ho studiato per bene.
Il codice è molto MCU-dipendente perché è stato scritto appositamente per quell'integrato, quindi andrebbe preso il core di Uzebox e riscriverlo tutto per l'uso con l'Atmega2560. Quindi hard-coding a basso livello. Tanto lavoro!

Inoltre c'è il problema dei tempi. L'Uzebox lavora a ca. 28 MHz (quindi è overcloccato rispetto ai 20 MHz che Atmel indica come frequenza nominale) e questo clock non puoi averlo da una Mega2560, che lavora a 16 MHz. Ancora, il core dell'Arduino è per la maggior parte fatto per operare proprio a 16 MHz. Quindi ti serve un Atemga2560 in standalone. Quindi, c'è da adattare l'hardware per lavorare con questo chip.

Altra cosa che vi siete scordati, l'Uzebox è nato in America e nel progetto originale c'è un DAC che genera un segnale video NTSC. Ora, io credo che la maggior parte dei TV moderni sia in grado di accettare in ingresso un segnale sia PAL che NTSC ma se così non è per il vostro apparecchio, dovete modificare l'Uzebox in modo da tirar fuori i segnali PAL. O comprate un adattatore di segnale oppure dovete realizzare l'Euzebox, che genera un segnale che mi pare esca via SCART.

Infine, Uzebox al 99% non penso proprio che lo puoi compilare con l'IDE di Arduino, devi usare senz'altro un ambiente esterno.

Ah sì è vero atmega2560 arriva al max 16Mhz non 20Mhz, quindi non si può fare a meno che una frequenza di 17.73Mhz non sia sufficiente per eseguire l'applicazione
Per il resto non ci sarebbe stato problema , il kernel Video/audio è stato compilato in assembler e l'ambiente di sviluppo è Avrstudio4 con il compilatore Avr-gcc distribuzione Winavr.
Il segnale RGB generato è convertito da AD725 sia il PAL che NTSC, basta mettere il quarzo giusto.

Non credo bastino 17 MHz, la frequenza di 28,xx MHz è stata impostata perché è un multiplo x8 della frequenza carrier del segnale NTSC (3,58 MHz). E tutto il codice è impostato per quelle tempistiche. Andrebbe ricalcolato ogni cosa.

17.73Mhz è il multiplo x4 della frequenza portante PAL 4.43..Mhz

Vi ringrazio tanto, Siete stati abbastanza esaustivi.

Ho a disposizione qualche atmega644 e cercherò di montare l'UZEBOX appena possibile, vi farò sapere.

icio:
17.73Mhz è il multiplo x4 della frequenza portante PAL 4.43..Mhz

Intendevo dire che "non credo bastino come potenza di calcolo".
Tutto il core è progettato per lavorare a 28 MHz ma togliendo un 40% di potenza penso che i giochi poi non girino più come si deve.

Infatti , probabilmente non ce la fà :sweat_smile: