Ardutester - Arduino Component Tester (INCOMPLETO)

io sono in ferie, Leo no, sono avvantaggiato :slight_smile:

a me non e' mai capitato che mettendo il -b non funzionasse, ma di certo hai fatto piu' esperimenti tu. Inoltre essendo dichiaratamente un parametro "Override", puo' essere credo sempre omesso

Se si parla di programmazione ISP via terminale usando un Arduino + ArduinoISP se non si mette la velocità a 19200 l'operazione non funziona.
Se si parla di comunicare con l'Atmega328 tramite il chip Atmega8/16U2 della UNO (oppure l'FT232 della 2009) allora la velocità da mettere è 115200 (oppure 57600) perché avrdude non dialoga con l'ArduinoISP ma con il firmware del chip convertitore (oppure direttamente con l'FT232).
Sono 2 casi distinti. Però se si sta usando l'Arduino+ArduinoISP per leggere un Atmega8L, questo immagino sarà montato su breadboard, quindi la velocità da mettere è 19200.

non ti seguo,

per memorizzare il programma presente su un micro messo su breadboard, via arduinoisp, l'arduinoisp verra' connesso via usb al pc che mandera' i comandi. il -b riguarda la seriale che esiste tra pc e arduinoisp, e sara' sempre un convertitore usb seriale.

No. Quando dialoghi con l'ArduinoISP devi "parlare" alla velocità specificata nello sketch. L'ArduinoISP lavora a 19200 bps, se ci parli più velocemente o più lentamente non funziona.
Non confondere la velocità con cui "parli" con il chip convertitore, nel caso dell'Atmega8/16U2 questa è 115200 e nel caso dell'FT232 è 57600: lui però è un tramite. Durante la programmazione, mette in comunicazione il PC con il chip da programmare e deve comunicare con lo sketch ArduinoISP che, ricordo, è un "emulatore" di un programmatore, quindi la velocità non può essere troppo elevata altrimenti non riesce a ricevere i dati e contemporaneamente a spedirli: per questo motivo, la sua velocità è impostata a 19200.
Ecco l'inizio del setup dell'ArduinoISP:

void setup() {
  Serial.begin(19200);
  ....

Come vedi, lo sketch apre la seriale a 19200 bps. Se non specifichi questa velocità, vai fuori temporizzazione e ricevi i messaggi di not in synch.

mmm
ora ti seguo, ma come mai usando la stringa mia originale, con una Uno, funziona a 115200 ? :grin:
Ho pensato forse che entra in gioco qualche buffer hw nel convertitore ?
Non sono a casa per farti una prova in realtime, ma ho letto altre volte con la stringa che ti ho messo, chip via arduinoisp

Se usi l'Arduino solo come convertitore, con il chip rimosso, e lo sketch lo spedisci ad un chip in standalone con bootloader caricato sopra, allora la velocità è quella che dici tu, ossia 57600/115200 bps. Ma se il chip in standalone non ha il bootloader ed usi la scheda Arduino con il suo micro e lo sketch ArduinoISP, allora la velocità deve essere 19200.

Te la do' vinta, per ora, non ho voglia di testare :slight_smile:
Ma ritornerò sulla questione :slight_smile:

Testato:
... non ho voglia di testare ...

Con il tuo nick, non puoi farne a meno :stuck_out_tongue: XD

(scusa, non ho proprio resistito :wink: XD)

Incongruenza è voluta, per sottolineare la mia attuale voglia di fare :slight_smile:

@Pighixxx
come suggerito da Leo si potrebbe sostituire la divisione nella ReadU con uno shiftamento
Questo

  //Convert to voltage;
  Value *= U;                                    //ADC readings * U_ref
  Value /= 1024;                                 // / 1024 for 10bit ADC

diventa

  //Convert to voltage;
  Value *= U;                                    //ADC readings * U_ref
  Value = (Value>>10);                                 // / 1024 for 10bit ADC

Molto più veloce della divisione, così Markus è felice. :grin:

P.S.
Credo si possa scrivere anche

  Value >>= 10;                                 // / 1024 for 10bit ADC

Testato:
Te la do' vinta, per ora, non ho voglia di testare :slight_smile:
Ma ritornerò sulla questione :slight_smile:

Sono tornato sulla questione come promesso, ed il risultato e' che... Hai ragione tu :slight_smile:

la stringa originale che ho messo io, -b 115200, non e' sbagliata, ma la uso per lavorare su un normale arduino via avrdude (ricordate gli esperimenti di lettura eeprom e lettura flash via usb ?)
Mentre per usare un arduino come programmatore, via ArduinoISP, che e' quello che voleva fare appunto paolo, serve il -b a 19200

Ero certo della cosa. Con avrdude ci lavoro spesso via terminale e ne conosco i parametri a memoria.

Ciao,
nessuno è tornato ancora dalle ferie?

Vorrei darvi una mano a testare, è possibile richiedere le shield?

Ho realizzato una versione con res 5% per provare, ma non va benissimo su UNO R3 ecco i risultati:

  1. resistor 100k 1-3 KO
    Probing...
    Found: FET
    MOSFET N-ch enh.
    GDS=231
    Vth=2656mV
    Cgs=0pF

  1. resistor 100k 1-2 KO
    Probing...
    Wait a moment...

Found: Resistor
1-[]-2
37.98kO


  1. resistor 100k 2-3 KO
    Probing...
    Found: FET
    MOSFET N-ch enh.
    GDS=132
    Vth=2588mV
    Cgs=0pF

  1. condenser 33nF 1-2 GOOD
    Probing...
    Wait a moment...

Found: Capacitor
1-||-2
32.39nF


  1. condenser 33nF 1-3 KO
    Probing...
    Wait a moment...

Found: Capacitor
1-||-3
20.12µF


  1. condenser 33nF 2-3 KO
    Probing...
    Wait a moment...

Found: Capacitor
2-||-3
20.14µF

Saluti,
Dino.

Progetto morto e sepolto? o mi sono perso qualche cosa?

L'autore principale, Pighi, è impegnato in un altro progetto.
Tra circa un mese dovremmo riprenderne lo sviluppo.

Grazie Paolo, mi hai anticipato :wink:
Come già detto non è stato sepolto niente, solo sono cambiate alcune priorità.
Ciao a tutti.

Ho appena comprato un arduino uno rev.3 per farlo, sfortunatamente userò componenti a foro passante con tolleranza 1% spero di trovare gli smd con tolleranza 0,1%. Una domandina, serve per forza il PCF8574?? Oppure può funzionare con un banale display con controller HD44780 compatibile senza null'altro?? Pighi complimentoni per l'ottimo lavoro.
Cercherò di fare una shield TH pronta da fresare, se mi date questa info sul display.

Funziona anche con un normale display LCD. Devi cambiare i #define prima di compilarlo.

Perfetto, stasera mi metto a lavoro per ricavare una shield th e i file gerber. Ho modificato la mia stampante 3D per fresare qualche PCB con i bulini. Mi studio ben benino il codice della 07F, grazie della info

Fai prima una prova su breadboard.
C'è una parentesi chiusa in più. Togline una alla fine dell'IF dove da errore.

Compilata per Arduino UNO con la nuova toolchain su IDE 1.5.5

Lo sketch usa 19.654 byte (60%) dello spazio disponibile per i programmi. Il massimo è 32.256 byte.
Le variabili globali usano 633 byte (30%) di memoria dinamica, lasciando 1.415 byte liberi per le variabili locali. Il massimo è 2.048 byte

at07f.ino (188 KB)