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.
Brauchst Du wirklich einen getrennten CS und CE für einen Chip?
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.