Kann man den Analog Komparator Eingag des Atmel Attiny gleichzeitig als
ADC und Komparator benutzen? Ich meine, wenn die Spannung eine
Schwellenspannung überschreitet oder unterschreitet soll interrupt
ausgelöst werden. Gleichzeitig möchte ich aber außerhalb der
Schwellenwerte die Spannung am Pin über ADC verarbeiten. ADC und Analog
Komparator sind auf dem selben Pin.
karim schrieb:> Kann man den Analog Komparator Eingag des Atmel Attiny gleichzeitig als> ADC und Komparator benutzen? Ich meine, wenn die Spannung eine
Nein, gleichzeitig geht nicht. Vielleicht schnell im Wechsel aber das
bei deinem Attiny eventuell auch nicht.
karim schrieb:> Kann man den Analog Komparator Eingag des Atmel Attiny gleichzeitig als> ADC und Komparator benutzen?
Was hindert dich daran, das einfach auszuprobieren?
köhler schrieb:> Nein, gleichzeitig geht nicht.
Woher weisst du das so genau? Den Reset-Pin kann man bei einigen Attiny
auch per ADC einlesen und daran z.B. mittels Spannungsteiler einen
Taster abfragen. Warum soll das beim AC-Pin nicht gehen?
mfg.
Thomas Eckmann schrieb:> Taster abfragen. Warum soll das beim AC-Pin nicht gehen?
Ja, AC und ADC auf gleichem Pin könnte gehen. Gebe ich zu :( Aber mehr
nicht, solange da nichts konkretes bekannt ist. - Gleichzeitigkeit ist
immer so eine Sache.
köhler schrieb:> Gleichzeitigkeit ist immer so eine Sache.
Das hat ja nichts mit Gleichzeitigkeit zu tun.
ADC und AC lassen sich gemeinsam unabhängig voneinander betreiben. Beide
Eingänge sind hochohmig. Was hindert einen also daran, den Multiplexer
des ADC auf den AC-Pin zu schalten? Aber das steht nicht im Datenblatt.
Ist auch so nicht vorgesehen. Man muss es einfach nur ausprobieren. Wie
beim Reset-Pin. Das steht auch nirgendwo geschrieben.
Würde man die Verbindung aussen über 2 Pins herstellen, würde man auch
nicht an der Funktion zweifeln. Warum sollte man das tun, wenn man sie
intern herstellt?
Wie sagt Gene Cranz im Film "Apollo 13" so schön: " Es interessiert mich
nicht, wofür etwas gemacht ist. Ich will wissen, was es kann".
mfg.
karim schrieb:> Kann man den Analog Komparator Eingag des Atmel Attiny gleichzeitig als> ADC und Komparator benutzen?
Die Gleichzeitigkeit geht bis maximal Setzen des Interruptflags.
Messen mit ADC auf Resetpin habe ich selbst schon gemacht aber nicht
gleichzeitig mit Resetzustand.
köhler schrieb:> Die Gleichzeitigkeit geht bis maximal Setzen des Interruptflags.
Ja. Wenn der Schwellwert erreicht ist, setzt der AC sein Flag und der
Controller geht in die ISR. Wenn der ADC gerade am messen ist, tut er
das unabhängig davon weiter und setzt sein Flag, wenn er damit fertig
ist. Wenn die ISR des AC abgearbeitet ist, springt der Controller in die
ADC-ISR. Das ist die normalste Sache der Welt, wenn mehrere
Interruptquellen in Betrieb sind.
köhler schrieb:> Messen mit ADC auf Resetpin habe ich selbst schon gemacht aber nicht> gleichzeitig mit Resetzustand.
Das ist ja auch Quatsch. Im Reset passiert ausser Reset gar nichts.
mfg.
köhler schrieb:> karim schrieb:>> Kann man den Analog Komparator Eingag des Atmel Attiny gleichzeitig als>> ADC und Komparator benutzen?>> Die Gleichzeitigkeit geht bis maximal Setzen des Interruptflags.>> Messen mit ADC auf Resetpin habe ich selbst schon gemacht aber nicht> gleichzeitig mit Resetzustand.
Die Gleichzeitigkeit soll auch bis zum Interuptflag des AC gesetzt wird
fuktionieren. Ich möchte ja nicht einen zweiten Spannungsteiler für den
ADC bauen. Außerdem sind alle pins besetzt.
Ein Pin kann man also gleichzeitig im ADC-Register für die ADC-Messung
und im AC-Register als Analog Komparator konfigurieren.
karim schrieb:> Kann man den Analog Komparator Eingag des Atmel Attiny gleichzeitig als> ADC und Komparator benutzen?
Natürlich. Jedenfalls mindestens immer dann, wenn ein ADCx und ein AINx
auf demselben Pin liegen. U.u. aber auch noch in mehr Fällen, das hängt
von den konkreten ADMUX-Optionen ab.
Ob eines von beidem der Fall ist, steht im (Mod: Obszöniät gelöscht)
Datenblatt des konkreten µC. Welcher das ist, hast du uns in der
unerfindlichen Weisheit (oder vielmehr deren vollständiger Abwesenheit)
ja leider nicht mitgeteilt...
c-hater schrieb:> karim schrieb:>> Kann man den Analog Komparator Eingag des Atmel Attiny gleichzeitig als> ADC und Komparator benutzen?>> Natürlich. Jedenfalls mindestens immer dann, wenn ein ADCx und ein AINx> auf demselben Pin liegen. U.u. aber auch noch in mehr Fällen, das hängt> von den konkreten ADMUX-Optionen ab.>> Ob eines von beidem der Fall ist, steht im
.. Datenblatt des
> konkreten µC. Welcher das ist, hast du uns in der unerfindlichen> Weisheit (oder vielmehr deren vollständiger Abwesenheit) ja leider nicht> mitgeteilt...
Ich benutze Attiny461. AC und ADC liegen auch auf dem selben Pin. Ich
probiere jetzt einfach aus. ich hoffe dass es klappt :)
Thomas Eckmann schrieb:> Den Reset-Pin kann man bei einigen Attiny> auch per ADC einlesen
Das interessiert mich sehr, da die Pins bei den Tinys ja oft nicht
reichen. Ich dachte, man könnte den Reset nicht benutzen, solange man
ihn nicht per Fuse deaktiviert.
Wie ist deine Aussage zu verstehen? Wie du auch sagtest, kann er
natürlich nicht auf Low gezogen werden. Aber in welchen Bereich ist er
denn nutzbar? Das Datenblatt des Tiny85 sagt für Reset: High-voltage min
= 0,9Vcc, und Low darf er nicht sein. D.h. es gibt so gut wie keinen
Bereich für die Nutzung nach Spezifikation. Ich kann da nur annehmen,
dass du den praktischen Bereich verwendest - also ausprobieren wann er
auf Low und damit auf Reset geht. Das ist dann wohl riskant bei
Temperatur- und Spg-Änderung und erfordert entsprechenden
Sicherheitsabstand. Den internen Pull-up muss man auch noch
berücksichtigen.
Wie stellst du es also an mit der praktischen Nutzung des Reset-Pins?
Und wo sind die Grenzen?
Hermann schrieb:> Ich dachte, man könnte den Reset nicht benutzen, solange man> ihn nicht per Fuse deaktiviert.
So steht es auch im Datenbuch (nein, nicht -blatt -bei 242 Seiten!)
Zitat:
• Port B, Bit 7 – RESET/ dW/ ADC10/ PCINT15
• RESET, Reset pin: When the RSTDISBL Fuse is programmed, this pin
functions as a normal
I/O pin, and the part will have to rely on Power-on Reset and Brown-out
Reset as its reset
sources. When the RSTDISBL Fuse is unprogrammed, the reset circuitry is
connected to the
pin, and the pin can not be used as an I/O pin.
• If PB7 is used as a reset pin, DDB7, PORTB7 and PINB7 will all read 0.
Ende Zitat.
MfG Paul
Hermann schrieb:> Wie stellst du es also an mit der praktischen Nutzung des Reset-Pins?> Und wo sind die Grenzen?
Nehmen wir einen Attiny13:
RESET = PB5 = ADC0
Auch wenn es nicht explizit im Datenblatt beschrieben steht:
Der Multiplexer des ADC lässt sich grundsäzlich immer auf diesen Pin
schalten und misst dann artig die Spannung an diesem. Ist dieser Pin,
wie es sich gehört, der Reset-Pin, misst er eben die Spannung, die über
dem Pullup dort anliegt, also normalerweise Vcc.
Senkt man die Spannung mittels passend dimensioniertem Spannungsteiler
ein wenig ab, misst der ADC eine etwas geringere Spannung, die man dann
als Tastendruck interpretieren kann.
Dazu reicht eine Absenkung um 10% vollkommen aus. Womit man dann sogar
noch in der Spezifikation für Reset High bleibt. Allerdings wird auch
eine wesentlich grössere Absenkung noch nicht als Reset von der
Resetschaltung des Controllers ausgewertet.
Natürlich ist das keine Option für eine professionelle Anwendung. Aber
zum Basteln, insbesondere in der Entwicklung, ist das durchaus eine
Möglichkeit, sich einen weiteren Pin zu "beschaffen". Ohne sich mit dem
"Wegfusen" des Reset, in Ermangelung eines HV-Programmers, aus dem
Controller auszusperren.
Es gibt noch andere Sachen, die nicht im Datenblatt stehen, aber
trotzdem funktionieren. Z.B. einen freilaufenden ADC als Timer
einzusetzen oder mit dem Aref-Pin einen oder sogar mehrere Taster
einzulesen.
Und spart euch die Zitate aus dem Datenblatt. Das sind Dinge, die man
als Hacker-Scheiss oder als besonders pfiffig oder irgendwo dazwischen
bezeichnen mag. Fakt ist, dass sie funktionieren und den Controller
nicht kaputt machen.
mfg.
Paul Baumann schrieb:> If PB7 is used as a reset pin, DDB7, PORTB7 and PINB7 will all read 0.
Ja, so steht es beim Tiny861. Beim Tiny85 steht es deutlicher: "Pullup
is
activated and output driver and digital input are deactivated when the
pin is used as the RESET pin."
Was auch klar ist: Digital I/O geht nicht. Thomas sprach aber von der
ADC-Nutzung.
Das ist mir aber auch unklar. Vref=1,1V wird man wohl nicht nutzen
können, da dass vermutlich schon RESET auslöst. Vielleicht geht es mit
Vref=2,56V und dann evtl. der Bereich von 2,0 bis 2,56V.
Damit könnte man gerade noch einen Schalter abfragen.
Hermann schrieb:> Das ist mir aber auch unklar. Vref=1,1V wird man wohl nicht nutzen> können, da dass vermutlich schon RESET auslöst. Vielleicht geht es mit> Vref=2,56V und dann evtl. der Bereich von 2,0 bis 2,56V.> Damit könnte man gerade noch einen Schalter abfragen.
Hierbei handelt es sich um eine Messung, bei der keine absoluten Werte,
sondern Verhältnisse bestimmt werden. Dazu verwendet man üblicherweise
Vcc als Referenz.
mfg.
Thomas Eckmann schrieb:> Es gibt noch andere Sachen, die nicht im Datenblatt stehen, aber> trotzdem funktionieren.
Mein Post kam zu spät.
Ist schon sehr interessant, einen Pin zu gewinnen ist oft wichtig. Also
Grenzen testen und doch lieber Vref=Vcc.
Aref-Pin nutzen? An welchen µC denkst du da? Wenn es kein Port-Pin ist,
also ohne zusätzliche Funktionen (z.B. Mega48) - wie kommt man da dran?
Und ADC als Timer? Erzähl mal weiter!!
Beim älteren Tiny26 habe ich es mal probiert den AC und ADC auf einem
Pin (gemeinsame Funktion) zu nutzen - hat irgendwie nicht funktioniert.
Wenn der ADC aktiv war ging der Komparator nicht. So intensiv habe ich
es aber nicht durchgespielt - so wichtig war mir die Komparator-funktion
nicht.
Der ADC im free running Mode als Timer geht übrigens ganz gut,
insbesondere für eine Software UART. Der Teiler 13 vom ADC sorgt gerade
dafür um von 2,4,8,16 MHz auf die Standardbaudraten zu kommen.
Hermann schrieb:> Aref-Pin nutzen? An welchen µC denkst du da? Wenn es kein Port-Pin ist,> also ohne zusätzliche Funktionen (z.B. Mega48) - wie kommt man da dran?Beitrag "[Atmega48..328] Ein Pin zu wenig, Taste einlesen?"Hermann schrieb:> Und ADC als Timer?
Normalerweise kann man einen Timer natürlich für mehrere Dinge
verwenden. Aber, wenn es absolut nicht geht und man einen einigermassen
genauen zyklischen Takt braucht, kann man den ADC laufen lassen und
betrachtet den Interrupt als Timer-Interrupt. Mit dem ADC-Prescaler kann
man den sogar noch einstellen. Bei 1MHz und Prescaler 128 kommt man
dabei mit den normalen 13 ADC Clock Cycles auf ungefähr 600Hz.
Aber auch, wenn man den ADC bestimmungsgemäss verwendet, liefert er
einen regelmässigen Takt, der z.B. zum Muxen allemal ausreicht. Für eine
Uhr taugt das natürlich nichts.
mfg.
Thomas Eckmann schrieb:> Aber auch, wenn man den ADC bestimmungsgemäss verwendet, liefert er> einen regelmässigen Takt, der z.B. zum Muxen allemal ausreicht. Für eine> Uhr taugt das natürlich nichts.
Natürlich geht damit auch eine Uhr. Der CPU-Takt wird exakt geteilt,
unabhängig von der Interruptausführung.
Bei den ATtiny25..85 und 261..861 ist Reset auch ein Analogeingang.
Mit z.B. 1k gegen VCC und 20k gegen eine Taste, 47k gegen eine andere
nach GND, lassen sich bequem 2 Tasten einlesen.