Forum: Mikrocontroller und Digitale Elektronik LTC1286 --> AVR --> Software SPI


von Ulf (Gast)


Lesenswert?

Versuche gerade einen LTC1286 an einen Mega8 per Software SPI zum laufen 
zu bringen. Leider "sagt" er kein Mux. Hat jemand vielleicht ein ASM 
Beispiel für Software SPI am Mega?

von Falk B. (falk)


Lesenswert?


von Ulf (Gast)


Lesenswert?

Danke! Schaue ich gleich mal durch.

von Ulf (Gast)


Lesenswert?

Habe mir die Beispiele jetzt mal angeschaut.

Habe keinerlei Wartepausen zischen den Flanken entdecken können. Sind da 
keine nötigt?
Laut dem Datenblatt vom LTC1286 erkenne ich zumindestens beim Startup 
eine gewisse einzuhaltende Warrtezeit, denke ich.

von Falk B. (falk)


Lesenswert?

@  Ulf (Gast)

>Habe keinerlei Wartepausen zischen den Flanken entdecken können. Sind da
>keine nötigt?

Kommt darauf an, wie schnell der SPI-Slave getaktet werden kann. Die 
74xx595 sind da sehr schnell.

>Laut dem Datenblatt vom LTC1286 erkenne ich zumindestens beim Startup
>eine gewisse einzuhaltende Warrtezeit, denke ich.

Dann bau sie doch einfach ein.

MfG
Falk

von Ulf (Gast)


Lesenswert?

Wie funktioniert das mit dem CLK Signal, gib es da auch eine Zeit wie 
lange HIGH und LOW sein muss? Kann das aus dem Datenblatt nicht so 
richtig raus lesen.

von Falk B. (falk)


Lesenswert?

@  Ulf (Gast)

>Wie funktioniert das mit dem CLK Signal, gib es da auch eine Zeit wie
>lange HIGH und LOW sein muss?

Die gibt es immer.

> Kann das aus dem Datenblatt nicht so richtig raus lesen.

Tomaten auf den Augen?

http://www.linear.com/pc/downloadDocument.do?navId=H0,C1,C1155,C1001,C1158,P1444,D2760

Seite 2, fclk, max. 200kHz.

MFG
Falk

von Ulf (Gast)


Lesenswert?

Also muss ich schauen wie mien AVR getaktet ist, das durch Fclk=200kHz 
teilen und weiss dann wie viele Takte ich warten muss? Ist das so 
richtig?

von Falk B. (falk)


Lesenswert?

Ja.

von Ulf (Gast)


Lesenswert?

Probiere ich dann heute Nachmittag gleich mal aus. Vielen Dank schon mal 
für deine Hilfe FALK.

von Ulf (Gast)


Angehängte Dateien:

Lesenswert?

Habe jetzt alles in ein Programm gefasst. Leider bekomme ich immer noch 
keine Werte. Finde den Fehler einfach nicht.

Habe als Anhang mal die .asm Datei mit dran gehängt. Wäre schön wenn sie 
sich mal jemand angucken könnte.

von Falk B. (falk)


Lesenswert?

@ Ulf (Gast)

>Habe jetzt alles in ein Programm gefasst. Leider bekomme ich immer noch
>keine Werte. Finde den Fehler einfach nicht.

In eine Register passen kein 12 Bit, die oberen 4 landen im Nirvana.

>     ldi temp3, 12                 ; Bitz�hler


Und du hast einen kleinen Lapsus drin

>        ldi temp1, (1<<CS)        ; Port C CS=HIGH
>        out DDRC, temp1

Das soll sicher heissen

        out PORTC, temp1

Ausserdem ist es sehr schlecht, den gesamten Port zu schreiben. Damit 
beeinflusst du auch CLK. Nimm lieber sbi und cbi.

MfG
Falk

von Ulf (Gast)


Lesenswert?

Das mit den 12Bit ist klar. Da kümmer ich mich später drum. Will einfach 
erst mal ein Lebenszeichen vom ADC.

Die anderen beiden Sachen ändere ich gleich und schaue mal ob es geht.

von Ulf (Gast)


Angehängte Dateien:

Lesenswert?

LÄUFT !!! Ich danke dir sehr FALK! Da kann ich heute Nacht wenigstens In 
Ruhe einschlafen :-).

Es war noch ein anderer Fehler drin.

      sbic PINB, Dout     ; wenn Null, nächsten Befehl überspringen

musste natürlich PINC sein. Hatte es von deinem LINK rauskopiert und 
vergessen zu ändern.

      sbic PINC, Dout     ; wenn Null, nächsten Befehl überspringen

Jetzt bin ich meinem großen Projekt wieder ein Stück näher.

Viele Grüße Ulf

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.