mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik FTDI VNC1L über SPI mit ATmega64?


Autor: Müller Hans (Firma: Blauweiss AG) (soprano)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Hat jemand von euch Erfahrung mit einem VNC1L von FTDI?
Ich möchte das Ding über SPI mit eine ATmega64 steueren.

Das Problem ist, nach dem Studium der Datenblätter bin ich mir nicht 
sicher ob dies reibungslos möglich ist?

Ist es richtig, dass er ausser im Input Binär Modus immer das LSB zuerst 
verlangt?

Danke
Gruss Hans

Autor: Hätt Lbeisen (Firma: Edelweiss AG) (knutsen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Hans

Funktioniert den VNC1L mit dem ATMega64 bereits? Und hast du Erfolg mit 
deiner Firma Blauweiss AG?

Gruss Hätt

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Viel schlimmer finde ich, daß der VNC1L 10 Bit pro read/write braucht. 
Und die meisten MC haben 8...so wie es bei SPI üblich ist.
Wie willst Du 10 Bits erzeugen?

Autor: Roland Bumm (rolandb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Müller Hans wrote:
> Hallo
>
> Hat jemand von euch Erfahrung mit einem VNC1L von FTDI?
> Ich möchte das Ding über SPI mit eine ATmega64 steueren.
>
> Das Problem ist, nach dem Studium der Datenblätter bin ich mir nicht
> sicher ob dies reibungslos möglich ist?
>
> Ist es richtig, dass er ausser im Input Binär Modus immer das LSB zuerst
> verlangt?
>
> Danke
> Gruss Hans

Ich bin auch gerade dabei. Wenn ich es richtig lese ist der MSB immer 
zuerst. Unabhängig vom Binär/ASCII Modus was die Kommunikation über dem 
SPI Modus betrifft.

Habe ein kleines Kommunikationsschnippsel erzeugt, ich denke das ist die 
Routine um erstmal zum synchronisieren zu kommen.Diese Routine wäre eine 
für den NICHT ShortCommandModus.
;Aufbau für MASTER(Atmega8) an SLAVE(VDIP1/VNC1L) senden
;2 Bytes senden über MOSI
;
;->1. Byte 00000|D2|D1|D0
;    D2=1! Startbit
;    D1=0! an Slave senden, R/~W
;    D0=0 ins Datenregister schreiben, D0=1 ins Statusregister schreiben
;->2.Byte 
;  Datenbyte aus SPDR senden
;Nun Status abwarten:
;      1. auf MISO testen, nur ein Bit zulassen indem CS bzw SS 0 gesetzt wird!!
;      ->Stausbit 
;        A=0 Daten akzeptiert
;        A=1 Daten nicht akzeptiert/Puffer voll    
;CS bzw SS auf 0 setzen  

SPI_SENDEN_STATUS:
;Statusregister ansprechen des VNC1L   
;1. Byte, vorbereiten des 2.Bytes.; hier soll 2.Byte ein Statuswort sein
;beide Bytes vorbereiten
  ldi temp,0x05   ;Slave ansprechen
  ldi temp1,FF  ;Echo senden
;1.Byte zum Slave
  out SPDR,temp  ;"Dienst" setzen des Slaves
SPI_SENDEN_STATUS_w1:
  sbis SPSR,SPIF  ;warten bis Übertragung zu Ende
  rjmp SPI_SENDEN_STATUS_w1
;2.Byte zum  Slave  
  out SPDR,temp1  ;"Echo senden" für Sync-Zweckes des VNC1L
SPI_SENDEN_STATUS_w2:
  sbis SPSR,SPIF  ;warten bis Übertragung zu Ende
  rjmp SPI_SENDEN_STATUS_w2 
ret
;WAS noch fehlt:
; 1.MISO abfragen ob Bit A gesetzt wurde, wenn ja dann Slave Puffer voll
; 2.CS bzw. SS für einen Takt auf Null setzen

Habe meinen VDIP1 gerade in den Himmel gejagt. Muss also erstmal 
theoretisch den Spass durchspielen. Um Daten an den VNC1L zu senden 
müsste die obere Routine ja erstmal richtig sein? Was mit noch fehlt 
steht ja unten im Code. Wie bekomme ich eine Abfrage hin, ob ein Bit im 
Schieberegister vorhanden ist oder nicht?

Meine Idee:
Nachdem SPI_SENDEN_STATUS_w2 abgearbeitet ist, 1 Takt die CS Leitung 
noch 1 lassen, dann 0 setzen(Wie schaff ich nur ein Takt?). Im SPDR muss 
ja nun der Inhalt vom Slave stehen(welche Position?) und das Bit muss 
maskiert werden, dann Abfrage ob gesendete Daten vom Master angenommen 
oder nicht.

Damit wäre das Senden erstmal beendet. Nun kommt ja ein Antwort Byte 
noch.. aber dazu später.

Sind meine Ideen erstmal richtig?

mfg

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.