Ho quello che spero sia una semplice domanda relativa ai microcontrollori Atmel AVR. Quindi voglio usare il comparatore analogico di ATTiny85 per determinare se un segnale è sopra o sotto una soglia. Questo segnale è normalmente "flottante" e tirato verso terra quando "attivo" (cioè è un segnale collettore attivo basso aperto). Se attivo pullup sul pin di ingresso (che è anche l'ingresso del comparatore) facendo:Comparatore analogico AVR + Pullup interno?
DDRB = 0x00; // DDRB.1 = 0 = input
PORTB = 0xFF; // PORTB.1 = 1 = internal pullup enabled
Se uso comparatore analogico e selezionare PORTB.1 come AIN1 sarà pullup interna essere applicati al mio segnale di ingresso ? Spero che qualcuno abbia esperienza personale per verificare questo comportamento. Spero che questa domanda non sia troppo "orientata all'hardware" per lo stack overflow. Grazie!
EDIT In risposta ad alcune delle osservazioni di seguito per l'effetto di "perché non trattarlo digitially", è perché il mio "segnale" viene generato da un sensore (cioè un sensore IR ottico). Non posso essere sicuro che verrà abbattuto "abbastanza difficile" da essere interpretato come zero in digitale, quindi userò il riferimento interno da 2,56 V come soglia di commutazione. Sto solo cercando di raccogliere l'evento "IR", quindi questo mi è sembrato il modo più semplice per me.
Inoltre, utilizzando il comparatore analogico, posso rilevare l'evento "asincrono" utilizzando un'ISR. Certo, alcuni dei pin possono invocare un interrupt su un bordo digitale, ma quello non vuole fare affidamento sulla risposta per abbassarsi sotto V_IL.
+1 per indirizzarlo alla scheda tecnica; sempre il primo posto dove guardare. – Clifford
Sì, è quello che pensavo, grazie! – vicatcu
Sfortunatamente, ho accettato questa risposta prima di provarla. Risulta (nonostante l'inferenza dal foglio dati) che il pullup interno * deve * essere disabilitato per poter usare un pin come input per il comparatore analogico. – vicatcu