Go Down

Topic: Max7456 + pal (Read 3175 times) previous topic - next topic

AnTrea

#15
Jan 29, 2013, 09:00 pm Last Edit: Feb 23, 2013, 02:29 pm by AnTrea Reason: 1
Bene, la mia soluzione:

Il problema era la tabella di default dei caratteri all'interno della eeprom del max7456 e la comunicazione spi.

Con la libreria che ho linkato nel primo post, mi comparivano tutti caratteri strani in pratica tutti gli idiomi cinesi della tabella di default.
Esempio: http://localhostr.com/files/6oQSQ5Y/2013-01-28%2017.27.49.jpg

Così ho pensato di caricare sulla rom del 7456 una nuova tabella dei caratteri.
L'unico tool che ha funzionato al 90% è stato questo: http://code.google.com/p/arducam-osd/wiki/minimosd

MinimOSD è un progetto che usa una board arduino+7456 usata per i droni e cose del genere... sfiziosa!

Per caricare la tabella ho dovuto prima caricare su un arduino2009 (NO optiboot, solo con bootloader della duemilanove) il loro firmware: http://localhostr.com/files/jhR5Uzk/Immagine.png
Poi ho creato una tababella dei caratteri ad hoc (nè la default nè quella del minimosd andavano bene): http://localhostr.com/files/vmy6Cse/myfinaltable.mcm
Così composta: http://localhostr.com/files/dlsLkCJ/capture.png
Poi l'ho dovuta caricare sempre con il tool di sopra (arduino funge da programmatore): http://localhostr.com/files/aVu82wa/Immagine.png

Fatto questo il più è fatto, ed ho usato la libreria per arduino: http://www.eng.uah.edu/~jdw/avr/MAX7456_lib_2011-12-18.tar.gz

Il grande problema (il famoso 10%) è che 8 volte su 10 carica male la tabella nell'eeprom: fa apparire un carattere a caso della tabella come carattere di default per il background. Credo che venga scritto (non volendo) il carattere X nella cella background.
Così ho pensato di eliminare tutti ( ihihi ) i caratteri, tenendo solo lo stretto necessario.
Credo che ci sia un bel problema nella comunicazione spi tra i due controller....

Tra l'altro le uniche differenze con la tabella di default è che i caratteri alfanumerici tradizionali sono traslati al centro della tabella... se li avessi avuti in testa (così come nella tabella di default) non apparivano sul video.
Credo che sia una questione di offeset/registri nella libreria...
Infatti questa libreria non funziona con questo workaround (guardate tutti i miei commenti in inglese quanto so belli e disperati): http://theboredengineers.com/2012/12/a-max7456-library-for-arduino/

Quindi... dopo molti tentativi di flashing, sono riuscito a caricare una tabella dei caratteri striminzita ma funzionante su tre max7456.

Per concludere: è un workaround.... ;(
Arduino, MODs e DIY: blackstufflabs.com

AnTrea

Uno sketch funzionante, da notare osd.PALmode();

Code: [Select]

#include "MAX7456.h"
#include "floatToString.h"
MAX7456 osd;
#define MAX7456_SELECT 10

void setup()
{
  osd.begin(MAX7456_SELECT, true); // true means we're using the MAX7456 native character set
  // remove if you've done the ASCII character set load on your 7456
  Serial.begin(9600);

  osd.PALmode();

  osd.write_to_screen(" 0123456789",2);
  osd.write_to_screen(" ABCDEFGHILMNOPQRSTUVZXYKW",3);
  osd.write_to_screen(" abcdefghilmnopqrstuvzxykw",4);
  osd.write_to_screen("  .,+-*/%",5);
  osd.write_to_screen("    Autore:", 6);
  osd.write_to_screen("    Andrea Esposito", 7);
  osd.write_to_screen("    AnTrea  :)", 8);
  float x=5.25;

  char y[10];
  //itoa(x,y,10);
  floatToString(y,x,3);
  Serial.println("ciao");
  Serial.println(x);
  Serial.println(y);
  osd.write_to_screen(y, 10,10);


}


void loop()
{

}
Arduino, MODs e DIY: blackstufflabs.com

kikko_965

Ciao AnTrea,
mi sono preso anche io il modulino con il MAX7456, hai un contatto mp che avrei l'esigenza di chiederti alcune delucidazioni in merito ai tuoi post.

AnTrea


Ciao AnTrea,
mi sono preso anche io il modulino con il MAX7456, hai un contatto mp che avrei l'esigenza di chiederti alcune delucidazioni in merito ai tuoi post.


sotto la mia foto trovi tutti i contatti che ti servono :)
Arduino, MODs e DIY: blackstufflabs.com

kikko_965

#19
Feb 23, 2013, 05:12 pm Last Edit: Feb 23, 2013, 05:16 pm by kikko_965 Reason: 1
Ciao,
vagando su internet ho trovato uno sketch che evita di dover sostituire il firmware su arduino per poter caricare la nuova tabella.

http://code.google.com/p/rushduino-osd/downloads/detail?name=RushOSD_CP_v1_0.pde

Si carica lo sketch e poi si invia su seriale il file mcm, ci mette un pò 15/20 minuti.
Provato con la tabella di AnTrea e funziona.
Ho fatto la prova con arduino UNO, tutto ok
Con la mega invece, lo sketch per far funzionare la scheda con il MAX non funziona non si visualizza niente.
Non ho perso molto tempo ma sarebbe bello a questo punto fare delle prove per far funzionare la mega e magari predisporre una tabella completa e poi fare l'elenco delle funzioni ammesse dalla libreria.
Penso sarebbe un bel lavoro per facilitare le cose a tutti.

AnTrea

#20
Feb 23, 2013, 05:16 pm Last Edit: Feb 23, 2013, 05:19 pm by AnTrea Reason: 1

Ciao,
vagando su internet ho trovato uno sketch che evita di dover sostituire il firmware su arduino per poter caricare la nuova tabella.

http://code.google.com/p/rushduino-osd/downloads/detail?name=RushOSD_CP_v1_0.pde

Si carica lo sketch e poi si invia su seriale il file mcm, ci mette un pò 15/20 minuti.
Provato con la tabella di AnTrea e funziona.
Ho fatto la prova con arduino UNO, tutto ok
Con la mega invece, lo sketch per far funzionare la scheda con il MAX non funziona non si visualizza niente.
Non ho perso molto tempo ma sarebbe bello a questo punto fare delle prove per far funzionare la mega e magari predisporre una tabella completa.



Ottimo feedback!

Probabilmente non funziona perchè il pinout dell'spi sulla mega è diverso che sulla uno, dovresti cambiare le pedinatura all'interno dell'header file della libreria del max

Update, infatti:

MEGA

DATAOUT 51//MOSI
DATAIN 50//MISO
SPICLOCK  52//sck
SLAVESELECT 53//ss
Arduino, MODs e DIY: blackstufflabs.com

AnTrea

Apri il file MAX7456.h e modifica queste righe:

DA
Code: [Select]
#define MAX7456_DATAOUT 11//MOSI
#define MAX7456_DATAIN  12//MISO
#define MAX7456_SCK  13//sck
#define MAX7456SELECT 10//ss


A:
Code: [Select]
#define MAX7456_DATAOUT 51//MOSI
#define MAX7456_DATAIN  50//MISO
#define MAX7456_SCK  52//sck
#define MAX7456SELECT 53//ss



Ovviamente cambia anche il wiring....
Arduino, MODs e DIY: blackstufflabs.com

kikko_965

Ok grazie.

Come si fa a ricavare i comandi/sintassi supportati dalla libreria.

AnTrea

#23
Feb 24, 2013, 02:57 pm Last Edit: Feb 24, 2013, 03:05 pm by AnTrea Reason: 1

Come si fa a ricavare i comandi/sintassi supportati dalla libreria.


basta interpretare i prototipi di funzione e/o leggere i commenti in testa ad ogni funzione...

...e usare il metodo "Troisi": http://youtu.be/1OtK7uKKYrs?t=2m43s
Arduino, MODs e DIY: blackstufflabs.com

Testato

Oltre a Troisi puoi leggere  il file colorindex della libreria che almeno ti dice i nomi delle funzioni. Dopodiché il sito dell'autore che in genere spiega l'utilizzo
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

kikko_965

Sperando di fare cosa gradita ho predisposto un file da caricare sul MAX con i caratteri della tabella ASCII.
Non è completo  e precisissimo nella definizione, ma quasi e poi sempre meglio che niente.....



AnTrea


Sperando di fare cosa gradita ho predisposto un file da caricare sul MAX con i caratteri della tabella ASCII.
Non è completo  e precisissimo nella definizione, ma quasi e poi sempre meglio che niente.....


Ho dato un occhio, ottimo.
Qui l'anteprima: http://localhostr.com/files/xRteurc/capture.png

Come funzionano con la libreria? tutto ok?
Arduino, MODs e DIY: blackstufflabs.com

kikko_965

Ciao, non l'ho provata con i caratteri (speciali).
Ho solo provato con i caratteri normali, dovrei perdere un pò di tempo per modificare lo sketch e fare le prove con glia altri caratteri.
Potresti farlo tu, poi pubblichi lo sketc, hi hi hi

AnTrea


Ciao, non l'ho provata con i caratteri (speciali).
Ho solo provato con i caratteri normali, dovrei perdere un pò di tempo per modificare lo sketch e fare le prove con glia altri caratteri.
Potresti farlo tu, poi pubblichi lo sketc, hi hi hi


hai scritto e pubblicato una tabella dei caratteri senza provarla?  :smiley-eek-blue:
Arduino, MODs e DIY: blackstufflabs.com

kikko_965

Certo, non volevo toglierti il gusto di provarla e farti prendere i meriti.

Go Up