Ich habe einen ATtiny13 und brauche alle PINs für per SPI angebundenes
Device (MI, MO, Takt, Chipselect, Chipenable) und einen für ADC. Also 6
Pins, einer zuviel.
Jetzt habe ich mir überlegt, den Pin für den Takt auf SPI mit dem ADC1
zuammenzulegen. Wenn ich den als ADC1 nutze ist er als Eingang
beschaltet vom SPI-Slave sollte ja nix kommen da dessen Takteingang eben
als Eingang beschaltet ist.
Der ADC muss nicht genau sein, misst nur einen Schwellwert.
Das SPI Device hat einen Powerdownmode, das würde ich dann bei
ADC-Messung in den Schlaf schicken.
Geht das so oder kommt da bei der ADC nur Müll raus?
Im Prinzip könnte ich den Resetpin nehmen aber dann müsste ich umfusen
und man kann den Chip danach nur noch mit einem HIGH-Voltage-Programmer
neu flashen, sowas habe ich leider nicht.
Dem Controller sollte das nichts ausmachen und ich denke, dass der
gemessene Wert auch brauchbar ist.
Die analoge Spannung müsste aber über einen Widerstand von der
Taktleitung getrennt sein, damit die Spannung das Taktsignal nicht
überlagert.
@ peter (Gast)
>Jetzt habe ich mir überlegt, den Pin für den Takt auf SPI mit dem ADC1>zuammenzulegen. Wenn ich den als ADC1 nutze ist er als Eingang>beschaltet vom SPI-Slave sollte ja nix kommen da dessen Takteingang eben>als Eingang beschaltet ist.
Kann man machen, dabei muss man aber den Ausgang deines Analogwertes
über einen Widerstand entkoppeln. So 1-10k sollten reichen.
Das ist ein typischer Mobby! Ich nehme den kleinsten Controller und
verränke mich bis ich einen Knoten im Hals habe.
Warum nicht einfach ein IC mit mehr Beinchen?
peter schrieb:> Jetzt habe ich mir überlegt, den Pin für den Takt auf SPI mit dem ADC1> zuammenzulegen. Wenn ich den als ADC1 nutze ist er als Eingang> beschaltet vom SPI-Slave sollte ja nix kommen da dessen Takteingang eben> als Eingang beschaltet ist.> Geht das so
Wie immer bei solchen Sachen kommt es auf's Detail an. Folgende Probleme
sind denkbar:
1) Einwirkung der Analogspannung auf den Takteingang des SPI-Slaves.
Takteingänge sind üblicherweise nicht als Trigger ausgelegt, was
bedeutet, daß Spannungen im "verbotenen" Bereich zumindest Teile der
Logik des SPI-Slave zu wilden Schwingungen anregen können.
Eine einfache Gegenmaßnahme wäre, dafür zu sorgen, daß die
Analogspannung immer sicher im Low-Bereich des Clock-Eingangs bleibt, um
dabei keine ADC-Auflösung einzubüßen, müßte natürlich auch eine
entsprechend geringe Referenzspannung verwendet werden.
2) Einwirkung des Clock-Ausgangs auf die Quelle der Analogspannung. Da
du zu dieser Quelle nichts gesagt hast, kann man weder einschätzen, ob
das ein Problem sein kann noch kann man Vorschläge für Workarounds
machen.
3) Einwirkung der Quelle der Analogspannung auf das Clock-Signal. Wenn
die Quelle der Analogspannung niederohmig genug ist, wird sie sogar mit
Sicherheit das Clocksignal negativ beeinflussen. Abhilfe wäre hier
natürlich, das Analogsignal hochohmig anzubinden, dem sind aber recht
enge Grenzen gesetzt, weil die dynamische Impedanz des ADC-Eingangs
relativ gering ist.
Alles in allem wohl wahrscheinlich irgendwie machbar, aber in jedem Fall
werden dafür aber recht miese Kompromisse nötig.
Sinnvoller wäre wahrscheinlich, darüber nachzudenken, ob und wie man
ChipSelect, ChipEnable und SCK des Slaves eventuell mit nur zwei Pins
bedienen kann.
Dussel schrieb:> Die analoge Spannung müsste aber über einen Widerstand von der> Taktleitung getrennt sein, damit die Spannung das Taktsignal nicht> überlagert.> 2) Einwirkung des Clock-Ausgangs auf die Quelle der Analogspannung. Da> du zu dieser Quelle nichts gesagt hast, kann man weder einschätzen, ob> das ein Problem sein kann noch kann man Vorschläge für Workarounds> machen.
Der ADC misst einfach ob überhaupt eine Spannung vorhanden ist
(Feuchtemessung), ansonsten ist dort 'offen' also R=inf.
Dummerweise brauche ich das SPI-Device erst wenn eine Spannung anliegt,
R ist dann im Bereich >= 1MOhm, da hängt dann noch ein Pulldown mit
10..50k oder mehr. Die Werte kann man relativ frei wählen kann man
alles über einen Threshhold wieder anpassen, als V_ref habe ich die
internen 1,1V gewählt.
Als reiner ADC beschaltet funktioniert das bisher bestens.
Ich dachte erst der Tiny reicht weil ich den Reset-Pin mit hinzugezählt
habe, habe erst später gemerkt, dass der dann Tiny nur noch per
High-Voltage-Programmer flashbar ist, wenn man den Reset Pin anderweitig
nutzen will.
Ich dachte auch dass ich ohne MI Leitung auskommen, muss dann aber doch
ein Register in dem SPI Device zwingend lesen, habe ich in meinem
bisherigen Code für das SPI-Device in einem andere Projekt übersehen, da
hatte ich genug Pins.
> 3) Einwirkung der Quelle der Analogspannung auf das Clock-Signal. Wenn> die Quelle der Analogspannung niederohmig genug ist, wird sie sogar mit> Sicherheit das Clocksignal negativ beeinflussen. Abhilfe wäre hier> natürlich, das Analogsignal hochohmig anzubinden, dem sind aber recht> enge Grenzen gesetzt, weil die dynamische Impedanz des ADC-Eingangs> relativ gering ist.
Ist hochohmig, s.o.
> Alles in allem wohl wahrscheinlich irgendwie machbar, aber in jedem Fall> werden dafür aber recht miese Kompromisse nötig.
Meine Bedenken sind eher ob ich das SPI Device schrotte aber da alles
hochohmig ist müsste es hinhauen.
> Sinnvoller wäre wahrscheinlich, darüber nachzudenken, ob und wie man> ChipSelect, ChipEnable und SCK des Slaves eventuell mit nur zwei Pins> bedienen kann.
Ist ein Modul da kann ich nicht viel ändern. ChipEnabled muss eigentlich
immer Low sein, braucht nur in einem Fall einen µs HIGH-Puls um eine
Aktion am Modul auszuführen.
Chipselect brauche ich ständig für Konfiguration des SPI Slaves.