Forum: Compiler & IDEs SPI testen


von Benno Müller (Gast)


Lesenswert?

Hi!

Ich habe an meinem ATmega8 'nen Atmel Dataflash (AT45DB161B) mit 16MBit 
Speicher angeschlossen:

ATmega8    - AT45DB161B
-----------------------
PB5 (SCK)  - SCK
PB4 (MISO) - SO
PB3 (MOSI) - SI
PB2 (/SS)  - /CS

/WP, /RESET und RDY/(/BUSY) sind nicht connected.
Der Dataflash hängt ansonsten natürlich noch an VCC 3,3V und an GND.

1. Frage ist nun: Ist das so ok oder muss ich die nicht verbundenen Pins 
noch verbinden?
2. Hat irgendwer ein Testprogramm womit ich testen kann das der 
Dataflash funktioniert (man also darauf lesen und schreiben kann)?

von Benno Müller (Gast)


Lesenswert?

Ich sollte vielleicht erwähnen das der Dataflash seriell (per 
SPI-Protokoll) geschrieben wird.

von Bernhard T (Gast)


Lesenswert?

Hallo Benno,
/Reset und /WD musst du auf high legen . Ob der SPI-BUS richtig 
angeschlossen ist ??. Bsp. gibt's bei ATMEL (AN 335 glaub ich), die 
benutzen alle Leitungen und den kleinen 2K Bruder aus der Familie.
Gruss Bernhard

von Benno Müller (Gast)


Lesenswert?

Den Reset habe ich mittlerweile mit dem Reset des Controllers verbunden 
(Der ist ja auch im Normalfalle ja auch auf High).
/WP und RDYBSY habe ich auf den Port PB1 und PB0 gelegt.

Meine Initialisierung sieht so aus:

DDRB = 0x2E;   // SPI Port initialisation
    // SCK   MISO  MOSI  CS    WP    RDYBSY
    // PB5   PB4   PB3   PB2   PB1   PB0
    //  O     I     O     O     O     I
    //  1     0     1     1     1     0

PORTB = 0xFF;   // all outputs high, inputs have pullups (LED is off)

Macht das hier eigentlich was aus das auf PB6 XTAL1 und auf PB7 XTAL2 
liegt?

von Bernhard T (Gast)


Lesenswert?

Ich denke das macht nichts aus. Du könntest PB6 und PB7 aber nutzen wenn 
du den internen Oszillator statt den Quarz benutzt. Dafür musst du die 
entsprechenden Fuse-bit programmieren. Dann kannst du die gleiche 
Pinnbelegung nehmen wie in der AN.
Sorry wegen der falschen Behauptung zur AN 335 die ja doch mit deinem 
Teil arbeitet. Ich hab da was durcheinander gebracht.
Gruß Bernhard

von Bernhard T (Gast)


Lesenswert?

Peinlich, peinlich peinlich - mein letztes posting war auch wieder nur 
Müll. Das Atmel behauptet, der Port B beim Mega8 ist ein echter 8 Bit 
i/o, ist eine glatte Lüge. Ein paar Seiten weiter steht die Wahrheit PB6 
und PB7 können anstelle des Quarzes nur für nen Teimer genutzt werden .. 
Sorry
Bernhard

von Benno Müller (Gast)


Lesenswert?

Macht nichts, aber trotzdem Danke. Werde PB6 und 7 erstmal außer acht 
lassen.

von Hans-Jürgen Heidenreich (Gast)


Lesenswert?

Hallo,
habe nach der SPI-Schnittstelle gesucht und diese Seite gefunden.
Ich möchte den LTC1286 (AD-Wandler) auslesen, der eine
SPI-Schnittstelle hat. Diesen habe ich zunächst an die RS232
angeschlossen. Später soll es der Atmel übernehmen. Leider kommt nur
Datenmüll an. Beim TLC549 funktioniert es. Den kann man fast statisch
auslesen. Vielleicht ist die RS232 für diesen Fall zu langsam???
Wer kan helfen?
Gruß aus Magdeburg
H.-J. Heidenreich

von RoBSki! (Gast)


Angehängte Dateien:

Lesenswert?

Peinlich, peinlich peinlich - mein letztes posting war auch wieder nur
Müll. Das Atmel behauptet, der Port B beim Mega8 ist ein echter 8 Bit
i/o, ist eine glatte Lüge. Ein paar Seiten weiter steht die Wahrheit
PB6
und PB7 können anstelle des Quarzes nur für nen Teimer genutzt werden
..
Sorry
Bernhard

Nein, kein Lüge

Port B Mega8 PB6 und PB7 sind echte i/o ?

von Peter Fleury (Gast)


Lesenswert?

Port B Mega8 PB6 und PB7 sind echte IO, wenn external Quartz/Clock oder
Timer-Input nicht verwendet wird.
Hast Du das neueste Datasheet ?

In meinen steht unter Revisions:
12. Corrected PB6 and PB7 in “Alternate Functions of Port B” on page
56.

von Peter D. (peda)


Lesenswert?

Der Mega8 hat je nach Fusebits bis zu 23 I/Os, 2*8Bit (Port B,D) und
1*7Bit (Port C).


Peter

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.