SPI-Treiber SPI-Order MSB

in SPIoutLong möglicher Fehler ?

golf
Benutzer
Avatar
Gender:
Location: Donauwörth
Age: 71
Posts: 256
Registered: 11 / 2009
Subject:

SPI-Treiber SPI-Order MSB

 · 
Posted: 08.04.2016 - 22:52  ·  #1
all,
ich habe bisher die ganzen SPI-Ein/Ausgaben fast immer mit Bitbanging gemacht. Der Prozessor war da meist schnell genug. Nun wollte ich doch bei einem Projekt die volle Geschwindigkeit. Da ist mir aufgefallen, daß es bei SPI-Order MSB und SPIOutLong für mich einen Fehler gibt.

Wenn ich im Beispiel SPIOutLongD($01400005) mache, wird bei Order LSB das Longword korrekt ausgegeben, das ergibt dann $A0000280 . Bei Order MSB sollte es $01400005 sein, es wird aber $05004001 gesendet. Oder verstehe ich da was falsch ?

golf


// über SPI-Treiber

Import SPI_D;

SPIorderD = MSB; // SPIorderD = LSB;
SPImodeD = 0;
SPIprescD = 1;
SPI_SSD = PortD, 4;

....

HL := $01400005;
SPIoutLongD(HL);



// über Bit-Bang

excl (AD4350LE); // // LE auf Low

HL := $01400005; // InitAD4350ArrayFrac1[1];
bitz:=31; // Bitzähler, 32 relevante Bits werden gesendet
repeat
AD4350Data := bit(HL,(bitz));
incl (AD4350Clk);//
excl (AD4350Clk);//
dec (bitz);
until bitz=255;

incl (AD4350LE); // LE auf High
Attachments
$01400005 korrekt  Bit-Bang MSB first.
Filename: $01400005 korrekt B … irst.PNG
Filesize: 16.14 KB
Title: $01400005 korrekt Bit-Bang MSB first.
Information: korrekte Ausgabe mit Bitbanging
Download counter: 132
$05004001 SPI Order MSB
Filename: $05004001 SPI Order MSB.PNG
Filesize: 19.38 KB
Title: $05004001 SPI Order MSB
Information: Ausgabe mit SPIOutLong, Order MSB, für mich falsch
Download counter: 134
$A0000280 SPI Order LSB korrekt.
Filename: $A0000280 SPI Order  … rekt.PNG
Filesize: 19.66 KB
Title: $A0000280 SPI Order LSB korrekt.
Information: SPIAusgabe Order LSB, korrekt
Download counter: 132
golf
Benutzer
Avatar
Gender:
Location: Donauwörth
Age: 71
Posts: 256
Registered: 11 / 2009
Subject:

Re: SPI-Treiber SPI-Order MSB

 · 
Posted: 09.04.2016 - 09:35  ·  #2
All,
meine gewünschte Ausgabe läßt jedenfalls mit dem SPI-Treiber doch lösen. Ich habe das nun so geschrieben und dann funktioniert mein Frequenzgenerator wieder wie gewünscht. In gleicher Art sind dann auch 24-Bit SpiOuts lösbar...

HL := $01400005; //InitMax2870ArrayFrac1[1];

excl (Max2870LE); // LE auf Low
SPIoutD(@HL+3,1);
SPIoutD(@HL+2,1);
SPIoutD(@HL+1,1);
SPIoutD(@HL,1);
incl (Max2870LE); // LE auf High

Anghängt hab ich mal 3 Bilder des Projekts, ein Frequenzgenerator, der mit dem MAX2870 bis 6,4 Ghz in 1 kHz Schritten einstellbar ist. Steuerbar über LAN mit dem einwandfrei funktionierendem Wiznet5200 Treiber oder auch über USB. Für das verwendete billige FR4-Material bin ich mit dem Frequenzgang zufrieden.

golf
Attachments
Spektrum bei 25 Mhz
Filename: Generator Spektrum bei 25 Mhz.PNG
Filesize: 14.8 KB
Title: Spektrum bei 25 Mhz
Download counter: 129
Frequenzgang bis 3 Ghz gemessen
Filename: Frequenzgang des Gen …  Ghz.jpg
Filesize: 48.92 KB
Title: Frequenzgang bis 3 Ghz gemessen
Download counter: 134
Generator mit 4 gleichen Ausgängen ,Teilansicht
Filename: Generator 4 Ausgänge …  Ghz.jpg
Filesize: 134.14 KB
Title: Generator mit 4 gleichen Ausgängen ,Teilansicht
Information: billige FR4-Platinen
Download counter: 130
AVRfan
Benutzer
Avatar
Gender: n/a
Age: 68
Posts: 16
Registered: 11 / 2009
Subject:

Re: SPI-Treiber SPI-Order MSB

 · 
Posted: 09.04.2016 - 14:18  ·  #3
Hallo Golf,

tolles Projekt.
Zu SPI-order:
das betrifft nur das einzelne Byte beim Senden.
msBit zuerst oder lsBit zuerst.

Fan
miparo
Administrator
Avatar
Gender:
Location: Germany
Age: 58
Posts: 959
Registered: 09 / 2007
Subject:

Re: SPI-Treiber SPI-Order MSB

 · 
Posted: 09.04.2016 - 15:25  ·  #4
Hallo Golf,
positives liest man ja selten :)

Quote
einwandfrei funktionierendem Wiznet5200 Treiber
golf
Benutzer
Avatar
Gender:
Location: Donauwörth
Age: 71
Posts: 256
Registered: 11 / 2009
Subject:

Re: SPI-Treiber SPI-Order MSB

 · 
Posted: 09.04.2016 - 16:17  ·  #5
Hallo AVRFan,
ok, dann habe ich das doch falsch verstanden. Ich dachte, wenn da ein Longword gesendet wird, daß sich das MSB dann auf das Longword bezieht und nicht nur auf Einzelbytes. So werden die mir bekannten ICs auch programmiert. Aber was solls, ich hab eine funktionierende Lösung gefunden und die Hardware läuft wie geplant.

Hallo Miparo,
ja, als ich das gelesen hab mit der Unterstützung für den W5200, hab ich da gleich welche bestellt und in dem Projekt nun getestet. Der W5200 gefällt mir besser als der W5100. Ich verwende den Treiber ohne Processes, funktionierte hier auf Anhieb, danke.

golf
Nambela1987
 
Avatar
 
Subject:

Re: SPI-Treiber SPI-Order MSB

 · 
Posted: 14.10.2016 - 15:16  ·  #6
Quote by golf

All,
meine gewünschte Ausgabe läßt jedenfalls mit dem SPI-Treiber doch lösen. Ich habe das nun so geschrieben und dann funktioniert mein Frequenzgenerator wieder wie gewünscht. In gleicher Art sind dann auch 24-Bit SpiOuts lösbar...

HL := $01400005; //InitMax2870ArrayFrac1[1];

excl (Max2870LE); // LE auf Low
SPIoutD(@HL+3,1);
SPIoutD(@HL+2,1);
SPIoutD(@HL+1,1);
SPIoutD(@HL,1);
incl (Max2870LE); // LE auf High

Anghängt hab ich mal 3 Bilder des Projekts, ein Frequenzgenerator, der mit dem MAX2870 bis 6,4 Ghz in 1 kHz Schritten einstellbar ist. Steuerbar über LAN mit dem einwandfrei funktionierendem Wiznet5200 Treiber oder auch über USB. Für das verwendete billige FR4-Material bin ich mit dem Frequenzgang zufrieden.

golf


Hi golf, I'm Nambela, greeting from Indonesia, would you like to share the pcb layout and schematic?. Thank a alot.

Nambela
golf
Benutzer
Avatar
Gender:
Location: Donauwörth
Age: 71
Posts: 256
Registered: 11 / 2009
Subject:

Re: SPI-Treiber SPI-Order MSB

 · 
Posted: 26.10.2016 - 06:47  ·  #7
Hallo Nambela,
sorry, it´s no open source project. i designed it for a company.
but it´s a easy design. pcb 0.8 mm Fr4, rf-track 1.397 mm. at the output a 4x splitter and a AD8319 for power measurement. this all was for a BITE-system.

golf
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 17 · Cache Hits: 15   131   146 · Page-Gen-Time: 0.091376s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI