Forum: Mikrocontroller und Digitale Elektronik Levelshifter für ATmega256 und ATMEL Dataflash AT45DB161D-S


von Roland Z. (r-zimmermann)


Lesenswert?

Hi,

ich möchte an einen ATmega256 mehrere Dataflash-Bausteine von Atmel 
anschließen. Da die Flash-Tierchen ja 3.3 Volt haben und der AVR 5 
benötige ich einen Levelshifter. Welchen muß ich nehmen und wie ist die 
Beschaltung?
Ich erinnere mich dunkel einmal was von einem LVX244 gelesen zu haben.
Da die Lösung absolut zuverlässig sein muß, bin ich mir nicht sicher ob 
ich das auch diskret lösen kann oder ob vorgefertigte Lösungen "on Chip" 
nicht besser sind. Das weitere Problem ist die geschwindigkeit, die 
Daten aus dem Flash werden mit der größten Geschwindigkeit ausgelesen 
die der AVR bei vollem Takt (16MHz) zu bieten hat.
Weiterhin ist die Frage wie ich diese Flashbausteine kaskadieren kann.

Kann mir jemand helfen?

MfG
Rolle

von Zilp (Gast)


Lesenswert?

Die Datenflash sollen 5V tolerant sein, dh mit Seriewiderstaenden sollte 
man durchkommen. Sonst Teiler. Kaskadieren... die CS passend ansteuern.

von Falk B. (falk)


Lesenswert?


von Roland Z. (r-zimmermann)


Lesenswert?

Hi,

gibt es konkrete Pläne oder unterlagen dafür oder hat jemand das schon 
mal gemacht? Der direkte Anschluß an den uC soll ja wie ich hier im 
forum gelesen habe möglich sein, nur habe ich in den schaltschwellen 
dann sehr wenig "Luft" nach oben. Levelshifter wäre glaube ich sicherer. 
Gibt es dafür Beispiele wie man den Anschluß ausführt?

MFG
Rolle

Zilp wrote:
> Die Datenflash sollen 5V tolerant sein, dh mit Seriewiderstaenden sollte
> man durchkommen. Sonst Teiler. Kaskadieren... die CS passend ansteuern.

von Roland Z. (r-zimmermann)


Lesenswert?

ok, bin grade heimgekommen und habe gesehen daß sich mein posting von 
heute morgen bevor ich zur Arbeit gefahren bin mit der gesuchten Antwort 
von Falk Brunner überschnitten hat.

(Man sollte halt nach dem Posten auf Reload drücken bevor man die Kiste 
abstellt und abzischt, Sorry mein Fehler;)

MfG
Rolle

von Roland Z. (r-zimmermann)


Lesenswert?

Ich schon wieder ;-)

Ich habe mittlerweile, nachdem wegen chronischer Arbeitsüberlastung im 
Betrieb meine Projekte eine weile ruhen mußten mich nochmals mit der 
Levelshifter-Geschichte beschäftigt. Da so ein Dataflash ja immerhin mit 
mehreren MHz als SPI-Clock angesteuert werden kann fallen 
Transistor-Shifter mit Pull-Up usw. ja schon mal raus. Ich habe bei 
Farnell was nettes kleines gefunden vielleicht kann mir jemand sagen ob 
ich das Teil so wie ich mir gedacht habe verwenden kann. Es handelt sich 
um ein einzelnes (!) Gatter in SMD-Bauweise (zugegeben ich bin 
SMD-Freak) Bezeichnung: SN74AHCT1G125DBVR Farnell-Nr.: 1105927

Ich dachte daß ich das Gatter an der 3,3V Versorgung betreibe und ihm 
die MOSI Leitung des Masters (=ATmega) an den eingang lege. Nur bin ich 
mir nicht sicher ob die Spannung am Eingang die Speisespannung des ICs 
überschreiten darf. In die andere Richtung ist das ja kein Problem, da 
der AHCT1 ja alles über 2V als logisch High erkennt, wenn ich diesen 
dann noch mit 5 Volt Speise müßte das gut gehen (für die Daten die vom 
Flash auf die MISO Leitung des Megas wollen) Falls das jedoch so geht, 
Klasse die dinger sind recht billig da bestell ich mir doch mal nen paar 
10 Stück.
Oder ist der SN74LVC1G07DCKRG4 doch besser dafür?

Der Grund dafür ist daß ich ein paar Dataflash-SMD-Bausteine bestellt 
habe und jetzt gemerkt habe das der AT45DB011B NICHT 5V tolerant ist. Es 
steht nix im Datenblatt! Der AT45DB011D (man beachte das "D") dieser ist 
laut Datasheet 5V tolerant, die B Variante jedoch nicht. Somit muß ich 
gezwungenermaßen Levelshifter verwenden. Der AT45DB011B ist jedoch für 
ein anderes Projekt bestimmt, ich schreibs hier nur rein weils halt 
Thematisch passt. ;-)

EDIT: Mist, der SN74AHCT1G125DBVR hat einen erlaubten 
Versorgungsspannungsbereich von 4,5 - 5 Volt :( somit fällt der für die 
Wandlung von der 5V zur 3,3V Eben flach :(

MfG
Roland

von Andreas K. (a-k)


Lesenswert?

Beim AT45DB011B steht unter "Absolute Maximum Ratings" eine 
Eingangsspannung bis 6.25V ohne Bezug auf Vcc drin. Das ist zwar keine 
wasserdichte Aussage, aber ein sehr deutliches Indiz, denn sonst stünde 
da wie bei den Output das übliche Vcc+0,xV drin.

In Atmels Application Note "Interfacing the 3-volt DataFlash with a 
5-volt System" steht ohne Einschränkung auf bestimmte Typen der Satz 
"The DataFlash input pins are tolerant to 5-volt input levels ...". 
Gleiches steht in Atmels FAQ.

von Roland Z. (r-zimmermann)


Lesenswert?

@Andreas Kaiser,

da hast du recht aber bei den Datenblättern der anderen (D-Serie) 
Dataflash Bausteine steht auf der ersten Seite gleich im fett gedruckten 
Text dabei das diese 5V tolerant sind. Bei der B-Serie steht zwar unter 
absolute maximum Ratings daß der Baustein das verträgt aber eine 
definitive Aussage finde ich das nicht. Komisch ist daß es bei der 
B-Serie, zumindest bei den 1Mbit Bausteinen nicht erwähnt wird. Die 
Datenblätter der ICs sind auch fast gleich, lediglich das Timing ist 
beim B-Typ etwas schneller, ist aber nur interessant wenn man den Chip 
an seinen Grenzen betreiben will. Der B-Typ ist auch komischerweise 
etwas billiger wie der D-Typ.

Nachtrag: Die Levelshifter wie oben beschrieben gehen anscheinend doch. 
Ich habe mir bei Farnell jetzt mal ein paar bestellt (kosten ja nicht 
die Welt...), die kommen am Montag im Laufe des Tages bei mir an. 
Platine ist schon gemacht, dann werden wir mal sehen ob das ordentlich 
funktioniert.

Bei Interesse kann ich das ganze hier veröffentlichen oder nach 
Absprache mit Andreas Schwarz das vielleich auch ans Pegelwandler-Wiki 
ankleben.

Wenn sich die sache bewährt werde ich mir mal ein paar der Levelshifter 
auf Halde legen, ich bin dann auch bereit welche abzugeben, da ja nicht 
jeder die möglichkeit hat bei Farnell zu bestellen.

MfG
Roland

von Andreas K. (a-k)


Lesenswert?

Im Datasheet vom AT45DB041B steht es zwar auf der ersten Seite drin, im 
Datenteil jedoch auch nicht. In Verbindung mit der unmissverständlichen 
Aussage von Atmel sowohl in der AN als auch im FAQ reicht mir das aus.

Und daher habe ich den AT45DB011B schon in 5V-Kontext verwendet, mit 
Pegelwandler (HCT125) nur am Ausgang. An den Eingängen liegt 
nachweislich 5V, an Vcc 3,3V. Eventuelle Schutzdioden gegen Vcc würden 
das so nicht zulassen.

von Roland Z. (r-zimmermann)


Lesenswert?

Hi Andreas Kaiser,

das klingt plausibel, wenn da schutzdioden nach VCC wären würdne die dir 
ja die 3,3V quasi hochziehen. Ich werde mir das Datasheet noch mal in 
ruhe komplett durchlesen vielleicht finde ich noch etas an Infos die ich 
beim ersten mal überlesen habe.


MfG
Roland

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Die genannten ATMEL-Dataflashs sind beide definitiv 5V-tolerant. Die 
Eingänge können direkt mit dem AVR verbunden werden. SDO als Ausgang 
liefert als High-Pegel an einer 3.3V-Spannungsquelle zwar nur knapp 3.3V 
High-Pegel, was aber beim AVR reicht, als High erkannt zu werden. 
Zusätzlich kann man im Eingang des AVR, der SDO empfängt, noch den 
internen PullUp aktivieren. Das bringt zusätzliche Störsicherheit, geht 
auf kurze Distanz aber auch ohne. Wir haben auf Arbeit mehrere 
Schaltungen auf diese Weise problemlos am Laufen.

von Roland Z. (r-zimmermann)


Lesenswert?

Hi Travel Rec.,

du schriebst daß ich auf der Arbeit so eine Schaltung in betrieb habt. 
Darf man Fragen was für Schaltungen das sind, bzw. die Funktion/Zweck 
dieser?

Da ich die Dataflash-ICs wegen der leichten verfügbarkeit, der einfachen 
Schnittstelle und nicht zuletzt wegen des günstiges Preises in mehreren 
Projekten verwenden möchte wäre die "direkte" Schaltung ohne 
Levelshifter wenn der Störabstand stimmt natürlich Ideal. Allerdings 
werden diese Geräte dann an Industriemaschinen eingesetzt an denen ein 
recht großer Störpegel herrscht (Stichwort Frequenzumformer usw). Wenn 
ich da anschließend Probleme habe wäre das net so gut. Vielleicht kannst 
du mir sagen in welchem Bereich und in welchem Umfang die Schaltungen 
bei euch im Betrieb Laufen. Mit welchem SPI-Takt läßt du die teile 
rennen?

Da die Levelshifter schon bestellt sind, werde ich in jedem Fall eine 
Testschaltung aufbauen, da diese nicht so teuer sind und außerdem in 
einer Appnote von Atmel diese schaltung auch empfohlen wird. Besser wäre 
natürlich ohne, aber ich habe da so meine Bedenken wegen dem Einsatzort.

MfG
Roland

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Hallo Roland,

die Schaltungen arbeiten als Steuereinheit für eine busgesteuerte 
Datenerfassung und die Dataflashs enthalten Firmware für die Busslaves. 
Die Anbindung der Flashs an den Mastercontroller geschehen über 2cm 
"lange" Leiterzüge, wodurch induktive Einkopplungen so gut wie unmöglich 
sind. Die Platine ist mit großzügem Massepolygon gefüllt. Der SPI-Takt 
ist ca. 3.5Mhz. Wenn Du Levelshifter einsetzen möchtest, brauchst Du nur 
einen am SDO des DataFlashs in Richtung des µControllers.

>Weiterhin ist die Frage wie ich diese Flashbausteine kaskadieren kann.

Jedem eine eigene /CS_leitung am Controller spendieren. Der SPI-Bus geht 
parallel an alle, auch hier ist nur ein LevelShifter nötig, da die 
Ausgänge der nichtselektierten Bausteine Tristate sind. Dataflash gibt 
es inzwischen schon mit 64 MBit, reicht das nicht?

http://www.atmel.com/dyn/products/product_card.asp?part_id=3777

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
Noch kein Account? Hier anmelden.