SPI falsches Logiklevel trotz deaktiviertem Chip

Gast #4326765
Lesenswert?
• ▲
▼
Hallo zusammen,

ich nutze den TempSensor ADT7320 der Firma Analog Devices. Dieser 
verwendet den SPI Bus und ist mit einem PullUp Widerstand deaktiviert.

Trotzdem habe ich auf dem SPI Bus folgende Spannungen anliegen, die das 
Programmieren eines ATmega2560 per ISP unmöglich machen:

MISO: 2,5V - 3V (schwankend)
SCK: 2,7V
MOSI: 2,5V
RESET: 0V

Diese Werte liegen an, sobald ich nur die Versorgungsspannung von +5V 
anlege. Ich habe verschiedene Chips ausprobiert.

Wenn ich einen Arduino entsprechend Programmiere und dann an SPI 
anschließe, kann ich den Sensor wie gewünscht auslesen. Nur in meiner 
eigenen Schaltung programmiere ich den Controller halt per ISP und das 
funktioniert nicht.

Hat jemand eine Idee oder etwas vergleichbares schon einmal gesehen?
Angehängte Dateien:
Gast #4326796
Lesenswert?
• ▲
▼
Profi Frickler schrieb:
> AB schrieb:
>> MISO: 2,5V - 3V (schwankend)
>> SCK: 2,7V
>> MOSI: 2,5V
>> RESET: 0V
>
> ..... und wo hast du den CS deines ADT7320 angeschlossen?

Hallo Frickler,

die sind in der Schaltung an einem Pin des Mikrocontrollers.
Pull Ups, sind da auch dran. Eingezeichnet sind 1k PullUps, habs aber 
auch schon mit 10k versucht.

Siehe angehängtes Bild.
Angehängte Dateien:
#4326809
Lesenswert?
• ▲
▼
Der Slave hat seinen MISO-Ausgang hochohmig, wenn der CS high ist. Daher 
mal ne dumme Frage:
bei manchen Atmels war es damals so, dass der SPI-Bus nicht der 
Programmierbus war. Ist beim ATmega2560 das vielleicht auch der Fall und 
dein Sensor hat damit nichts zu tun?
Oder ist beim ISP der Reset nicht angebunden?
Gast #4326811
Lesenswert?
• ▲
▼
Felix A. schrieb:
> Der Slave hat seinen MISO-Ausgang hochohmig, wenn der CS high ist.
> Daher
> mal ne dumme Frage:
> bei manchen Atmels war es damals so, dass der SPI-Bus nicht der
> Programmierbus war. Ist beim ATmega2560 das vielleicht auch der Fall und
> dein Sensor hat damit nichts zu tun?
> Oder ist beim ISP der Reset nicht angebunden?


Wenn der Chip aus der Schaltung ist, lässt sich der ATmega ohne Probleme 
programmieren. Nur sobald er eingesetzt wird, gibts ein Problem.

ISP = SPI am ATmega2560, aber danke für die Idee!
ISP Reset ist angebunden.
Gast #4326844
Lesenswert?
• ▲
▼
Gerade gemacht.
1k in zwischen DOUT (MISO) und GND. Folgende Pegel stellte sich ein:

MISO: 0,01V - 0,03V schwankend
MOSI: 0,22V
SCK: 0,25V

Strom durch den Widerstand: 0,01 - 0,02 mA.

Ohne Widerstand hab ich es nicht gemessen. Bringt das einen 
Erkenntnisgewinn?
#4326848
Lesenswert?
• ▲
▼
Felix A. schrieb:
> Ist beim ATmega2560 das vielleicht auch der Fall und
> dein Sensor hat damit nichts zu tun?

Handbuch sagt: Pins PB1, PB2, PB3 bei TQFP100, PE0, PE1, PB1 bei TQFP64 
Package. Aber der OP kann den Atmega ja via ISP ansprechen außerhalb der 
Schaltung.

Wenn der Op mehr von seinem Schaltplan posten würde, könnte man 
eventuell sehen was da los ist. Vielleicht hat er auch nur einen dicken 
Kondensator am RESET.
Gast #4326876
Lesenswert?
• ▲
▼
Jim M. schrieb:
> Felix A. schrieb:
>> Ist beim ATmega2560 das vielleicht auch der Fall und
>> dein Sensor hat damit nichts zu tun?
>
> Handbuch sagt: Pins PB1, PB2, PB3 bei TQFP100, PE0, PE1, PB1 bei TQFP64
> Package. Aber der OP kann den Atmega ja via ISP ansprechen außerhalb der
> Schaltung.
>
> Wenn der Op mehr von seinem Schaltplan posten würde, könnte man
> eventuell sehen was da los ist. Vielleicht hat er auch nur einen dicken
> Kondensator am RESET.

Am RESET hängt nen 100nF, aber auch mit oder ohne ihm lässt sich der 
Controller nicht programmieren.

Ansonsten ist momentan nur der ADT7320 auf nem Breakout Board auf de 
Steckbrett vorhanden und zeigt ein solches Verhalten.
Gast #4326923
Lesenswert?
• ▲
▼
Stefan K. schrieb:
> Mess mal am CS Input des ADT7320. Dort muss High sein, wenn der
> Chip
> nicht angesprochen wird. Und dann sollte MISO vom ADT7320 auch nicht
> getrieben werden.
> Ein Serien-Widerstand in die MISO-Leitung vor den ADT7320 würde als
> Notlösung auch noch gehen (ca. 1k).
>
> Gruß, Stefan

Hi Stefan,
Das habe ich bereits mehrfach überprüft. Der ist in jedem Fall high!

Die AppNote von Atmel mit den Widerständen in der ISP Leitung kenne ich, 
allerdings würde ich gerne den "Fehler" finden. Bei nicht angelegtem CS 
(also CS = high), sollte der Chip doch eigentlich gar nichts tun...
#4327820
Lesenswert?
• ▲
▼
Zu dem Strom durch den Widerstand:
ja, gibt es. Der ADT treibt scheinbar nicht gegen deinen ISP.

Merkwürdig sind Reset = 0V und dass der ADT treiben soll.

Fehlt ein Pullup am Reset deines Controllers? Der Interne reicht meist 
nur, wenn extern nix dran hängt. Oder hat der Resetpin gar einen 
Kurzschluss nach Masse über die ADT-Platine?

Und der 100nF sollte durch kleinere Werte wie 1nF ersetzt werden. Alle 
meine Schaltungen machen selbst ohne diesen Kondensator keine 
merkwürdigen Resets.
#4328357
Lesenswert?
• ▲
▼
> MISO: 2,5V - 3V (schwankend)
> SCK: 2,7V
> MOSI: 2,5V
> RESET: 0V
>
> Diese Werte liegen an, sobald ich nur die Versorgungsspannung von +5V
> anlege.

Was micht wundert, ist die niedrige Spannung zwischen 2.5V und 3.0V, 
obwohl die Versorgung 5V ist. Ist sowohl der mc als auch der ADT7320 mit 
5V versorgt? Gibt es auch noch einen 3.0 oder 3.3V-Teil in der 
Schaltung?

Gruß, Stefan
#4328361
Lesenswert?
• ▲
▼
Stefan K. schrieb:
>> MISO: 2,5V - 3V (schwankend)
>> SCK: 2,7V
>> MOSI: 2,5V
>> RESET: 0V
>>
>> Diese Werte liegen an, sobald ich nur die Versorgungsspannung von +5V
>> anlege.
>
> Was micht wundert, ist die niedrige Spannung zwischen 2.5V und 3.0V,
> obwohl die Versorgung 5V ist.

Und warum ist Reset auf 0V?
Reset hat doch mit dem AD-Device überhaupt nichts zu tun.

Oder läuft während der MEssung die Programmierung schon? Dann wäre es 
allerdings klar.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren