Pages: 1 2 3 [4] 5   Go Down
Author Topic: caricare sketch con un altro arduino  (Read 3062 times)
0 Members and 1 Guest are viewing this topic.
Torino
Offline Offline
God Member
*****
Karma: 2
Posts: 753
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
si tonid  ho ancora di problemi nel bootdrive 
Ok. Fammi per favore un riassunto della situazione e vediamo,con un quadro completo, se posso aiutarti ....mi serve sapere anche con che versione dell'ide generi i file hex che metti poi nella SD card,i collegamenti fra arduino e chip in stand alone (rx/tx/reset).
Io a suo tempo ero riuscito,come hai letto,a far funzionare il tutto,se è il caso monto tutto e ti do una mano.
Ciao 
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

allora per quanto riguarda il boot drive avevo provato a collegare il duemilanove come programmatore e un uno come target senza risultai , poi avevo provato con il mega ma ancora niente, successivamente provai a collegare il il duemilanove ad un atmega 328 in standalone naturalmente cambiando i valori nel programma per adattarli a quelli dell arduino duemilanove ma ancora niente da fare, per  i collegamenti ho seguito esattamente quelli dell'immagine l'unica cosa per cui si differenziava era che al posto di usare un modulo sd ho usato un adattatore di micro sd collegato hai pin spi al quale cambio le microsd (  che funziona in quanto testato con lo sketch d esempio dumpfile) l'arduino uno adesso non lo possiedo più perchè me l'aveva prestato un mio amico che poi ha rotto quindi i material in mio possesso sono : un arduino duemilanove, un arduino mega e due atmega 328 e un atmega 328 bloccato a causa del test con il bootloader 2boot.
Logged

Torino
Offline Offline
God Member
*****
Karma: 2
Posts: 753
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora nelle mie prove avevo usato un'arduino 1 ed un Atmega328p in stand alone con il quarzo da 16 MHz ed il led e resistenza sul pin digitale 13 che è il 19 del chip.
Per quanto riguarda la scheda SD ho uno shield che utilizza gli stessi pin dello skecht del boot drive (cs sul pin 10).
Per prima cosa devi caricare il bootloader sul chip vergine tramite la tecnica ISP sfruttando l'arduino 1 come programmatore ISP con il relativo sketch persente negli esempi dell'ide caricato.
Ora ti devi preparare il blink.hex da caricare sulla SD.
Per fare questo devi usare la versione dell'ide 1.0 perchè nel mio caso con diverse prove fatte con l'ide 1.0.1 il file hex generato in fase di compilazione e trasferito poi su SD card non viene caricato sul micro in stand alone. Dopo aver controllato ho notato che ci sono delle differenze tra i due file hex generati(ide 1.0 ed ide 1.0.1),nel primo caso(ide1.0)la cartella ha 2,85KB mentre nel secondo caso 3KB.
La cartelle comparirà con il nome Blink.cpp e conterrà il file HEX ed andrà chiamata allo stesso modo che usi nello sketch.
Ad esempio se chiami la cartella Blink nello sketch dovrai scrivere Blink.hex.
Ora monta la SD card all'arduino,carica lo sketch bootdrive ed eseguita questa operazione stacca tensione e collegati il pin tx arduino all'rx stand alone(pin 2) ,il pin rx arduino al pin tx dello stand alone(pin 3)ed infine il reset che lo prenderai dal pin 6 di arduino e lo porti allo stand alone pin 1 con una R da 10K in pull-up ed infine dai tensione.
Per trasferire il file della sd non devi aprire il serial monitor altrimenti non funge,ti da degli errori,devi solo premere il tasto reset dell'arduino ed attendere circa 5/6 secondi e dovresti vedere due serie di lampeggi sul pin digitale 13 dello stand alone e subito dopo cominciare con il blink che avevi scritto nella sd.
Fammi sapere

 
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

grazie tonid adesso funziona , ma caricando il mio sketch creato utilizzando  la libreria tv out non riesco a caricarlo da SD , mentre le demo di quella libreria si e funzionano .... ??
Logged

Torino
Offline Offline
God Member
*****
Karma: 2
Posts: 753
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
grazie tonid adesso funziona , ma caricando il mio sketch creato utilizzando  la libreria tv out non riesco a caricarlo da SD , mentre le demo di quella libreria si e funzionano .... ??
Beh,almeno inizia a funzionare qualcosa.
Ma il file hex lo tiri fuori sempre dall'ide 1.0 ?
E' tanto grande come KB ?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

si dall ide 1.0 ed è 63 k  ma anche riducendolo a 37 non va ... non saprei proprio
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

o meglio lo sketch lo carica ma per qualche strano motivo mi da problemi , il led sul pin tredici inizia a lampeggiare velocemente e sulla televisione niente .... ho fatto diverse prove :
modificando lievemente lo sketch della demo funziona tutto bene ( ad esempio modificando le parole che dovrebbe visualizzare su tv)
cancellando tutto in modo che il software visualizzi una frase sullo schermo niente stesso problema di prima... qualcuno conosce il perchè? sarà un problema di libreria o altro ?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

nuove scoperte
Code:
#include <TVout.h>
#include <fontALL.h>
#include "schematic.h"
#include "TVOlogo.h"

TVout TV;

int zOff = 150;
int xOff = 0;
int yOff = 0;
int cSize = 50;
int view_plane = 64;
float angle = PI/60;


void setup() {
  TV.begin(PAL,120,96);
  TV.select_font(font6x8);
 
 
  //rectangles and lines
  TV.clear_screen();
  TV.draw_rect(20,20,80,56,WHITE);
  TV.delay(500);
  TV.draw_rect(10,10,100,76,WHITE,INVERT);
  TV.delay(500);
  TV.draw_line(60,20,60,76,INVERT);
  TV.draw_line(20,48,100,48,INVERT);
  TV.delay(500);
  TV.draw_line(10,10,110,86,INVERT);
  TV.draw_line(10,86,110,10,INVERT);
  TV.delay(2000);
 
  //random cube forever.
  TV.clear_screen();
  TV.print(16,40,"Random Cube");
  TV.print(28,48,"Rotation");
  TV.delay(2000);
 
 
}

void loop() {
 
}

cosi va .

Code:
#include <TVout.h>
#include <fontALL.h>
#include "schematic.h"
#include "TVOlogo.h"

TVout TV;

int zOff = 150;
int xOff = 0;
int yOff = 0;
int cSize = 50;
int view_plane = 64;
float angle = PI/60;


void setup() {
  TV.begin(PAL,120,96);
  TV.select_font(font6x8);
 
 
 
 
 
 
 
  //rectangles and lines
  TV.clear_screen();
  TV.draw_rect(20,20,80,56,WHITE);
  TV.delay(500);
  TV.draw_rect(10,10,100,76,WHITE,INVERT);
  TV.delay(500);
  TV.draw_line(60,20,60,76,INVERT);
  TV.draw_line(20,48,100,48,INVERT);
  TV.delay(500);
  TV.draw_line(10,10,110,86,INVERT);
  TV.draw_line(10,86,110,10,INVERT);
  TV.delay(2000);
 
  //random cube forever.
  TV.clear_screen();
  TV.print(16,40,"Random Cube");
  TV.print(28,48,"Rotation");
  TV.delay(2000);
 
 
}

void loop() {
  TV.println(16,40,"ciao");
}

cosi non va più

ho aggiunto solo una riga nel loop smiley-sweat
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21624
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma a RAM come sei messo? Hai controllato se non viene saturata?
Uno degli esempi della TVout, così com'è, ti funziona oppure no?
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

la ram penso che sia sufficiente, visto che se il mio programma lo carico sull' atmega328p con l'arduino  e poi lo stacco dallo zoccolo e lo metto in un circuito separato funziona benissimo .... l'esempio che c'è nella libreria cosi com'è funziona, è per questo che non capisco il perchè
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21624
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Prova a mettere un blink del led 13 nel loop.
Così capiamo se è un problema di memoria esaurita dalla TVout oppure se si tratta di un altro problema.
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

no non funziona ugualmente
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21624
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Io controllerei la Ram libera, allora.
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ma se fosse un problema di ram non credi che pure la demoPal sarebbe troppo grossa?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

non credo sia la ram siccome la demoPal completa va mentre questo sketch da due righe no..
Quote
#include <TVout.h>
#include <fontALL.h>
#include "schematic.h"
#include "TVOlogo.h"

TVout TV;



void setup() {
  TV.begin(PAL,120,96);
  TV.println("I am the TVout\nlibrary running on a freeduino\n");
  TV.delay(2500);
  }
  void loop() {
    }
Logged

Pages: 1 2 3 [4] 5   Go Up
Jump to: