Problema con ATMEGA328P-PU

Premesso che sono nuovo del forum e lo trovo interessante e pieno di spunti
Il Micro è nuovo (Polacco) e lo programmo standalone(XINO basic) con arduino uno + ArduinoISP
Ho fatto i seguenti test
1 Lo sketch blink funzionava alla frequenza interna 1MHz (tempi 16 sec ed anche senza quarzo)
ho provato cambiando il valore low_fues(Pag.40 manuale Menniti) ma ho scoperto che così non
va ho risolto facendo burn bootloader e poi con un Upload co ArduinoISP ho verificato che funziona a 16MHz
2 Ho fatto uno sketch di test con un ingresso analogico che viene letto ed inviato ad un LCD
tramite seriale I2C, se lo scarico su Arduino uno funziona mentre se se lo invio al Micro standalone con
ArduinoISP il display funziona mentre la lettura analogica rimane sempre zero
Ho montato il Micro al posto dell’originale nell’ Arduino e caricando lo sketch da lo stesso problema
Come se il riferimento fosse settato esterno proverò a mettere 5V su AREF
Se qualcuno ha qualche suggerimento grazie

Questo è lo sketch di test

#define VERSION “1.1”
#include <Wire.h>
#include <inttypes.h>
#include <LCDi2cW.h>
LCDi2cW lcd = LCDi2cW(4,20,0x4C,0);
uint8_t rows = 4;
uint8_t cols = 20;

int sensorPin = A0;
int sensorValue = 0;

void setup()
{
analogReference(DEFAULT);
lcd.init();
lcd.print(“COPYRIGHT”);
delay(1000);
}

void loop()
{
sensorValue = analogRead(sensorPin);
lcd.clear();
lcd.print(sensorValue);
delay(100);
}

analogReference(DEFAULT) imposta il reference al valore di default, che nel 328 è 5V. http://arduino.cc/en/Reference/AnalogReference

Detto questo, non ho capito il problema. Non può essere un problema di collegamenti?

Non è un problema di collegamenti ho fatto gli stessi collegamenti su Arduino e XINO standalone ripeto in Arduino leggo i valori su LCD con XINO standalone il display funziona il valore è sempre zero uso un potenziometro per variare il valore su A0 Ho provato a settare il riferimento su esterno e collegare AREF a +5V ma leggo sempre zero

Col tester leggi ovviamente qualcosa in ingresso al pin? Con l'Atmega "originale" lo sketch funziona, giusto?

Quindi o è un problema di micro o di flashatura che hai fatto tu.

lambon: Ho provato a settare il riferimento su esterno e collegare AREF a +5V ma leggo sempre zero

Se non vari via SW la sorgente della Aref a external e metti 5V su Aref lo rompi. Ciao Uwe

uwefed:

lambon: Ho provato a settare il riferimento su esterno e collegare AREF a +5V ma leggo sempre zero

Se non vari via SW la sorgente della Aref a external e metti 5V su Aref lo rompi. Ciao Uwe

Ho inserito nello sketch il comando " analogReference(EXTERNAL);" e come ulteriore precauzione una resistenza da 22K in serie al pim AREF

Ciao, nella Guida (pag. 59) avevo scritto "Un nuovo caricamento del bootloader sarebbe necessario solo in caso di variazione della frequenza di clock oppure in caso di errore", quindi in realtà ciò che hai scoperto era già stato spiegato, vuol dire che nella prossima versione farò in modo che sia ben chiaro che per cambiare i valori dei fuse la PRIMA operazione da fare deve essere quella di effettuare il burn bootloader con una board virtuale con i valori desiderati. Invece non ho capito la prova del blink: il micro esce di fabbrica a 1MHz, quindi se invii lo sketch del blink tramite una board virtuale settata a 1000000 il led deve lampeggiare regolarmente una volta al secondo.

menniti: Ciao, nella Guida (pag. 59) avevo scritto "Un nuovo caricamento del bootloader sarebbe necessario solo in caso di variazione della frequenza di clock oppure in caso di errore", quindi in realtà ciò che hai scoperto era già stato spiegato, vuol dire che nella prossima versione farò in modo che sia ben chiaro che per cambiare i valori dei fuse la PRIMA operazione da fare deve essere quella di effettuare il burn bootloader con una board virtuale con i valori desiderati. Invece non ho capito la prova del blink: il micro esce di fabbrica a 1MHz, quindi se invii lo sketch del blink tramite una board virtuale settata a 1000000 il led deve lampeggiare regolarmente una volta al secondo.

Grazie per la risposta ed anche per l'ottima Guida Ho creato una la board virtuale “ATmega in Stand Alone 16MHz (w/ Arduino as ISP)" esattamente come descritto sulla guida e la ho usata per caricare sul micro vergine lo sketch blink Così mi sono trovato con i tempi di 16sec invece di 1sec , io pensavo che i fuse della board virtuale servissero a settare la frequenza " quarzo 16MHz " ma evidentemente non è così

lambon: Ho creato una la board virtuale “ATmega in Stand Alone 16MHz (w/ Arduino as ISP)" esattamente come descritto sulla guida e la ho usata per caricare sul micro vergine lo sketch blink Così mi sono trovato con i tempi di 16sec invece di 1sec , io pensavo che i fuse della board virtuale servissero a settare la frequenza " quarzo 16MHz " ma evidentemente non è così

I valori delle board aggiuntive sono usati per modificare i fuse solo se flashi il bootloader. Quando spedisci uno sketch con il normale upload, i fuse NON vengono cambiati.