Seite 2 von 2

Re: 2x IP-Stack von Harrison Pham

Verfasst: Mi 22. Jan 2014, 00:23
von yeti
PIC18F2550 hat geschrieben:Die SPI-Routienen waren doch auch bei der Hydra am werkeln die lief doch mit 100Mhz denke ich jedenfals. :?
10 MHz-Quarz mit Multiplikator 8 ... ist, was mir zur Hydra spontan einfällt...

Re: 2x IP-Stack von Harrison Pham

Verfasst: Mi 22. Jan 2014, 00:54
von PIC18F2550
Wenn was angepasst werden müsste dann währe das an 4 stellen nötig.

"movi frqa, #%0100_0000_0 ' Write out data." mal sehen das das bedeutet und wie es funktioniert. :D

Re: 2x IP-Stack von Harrison Pham

Verfasst: Mi 22. Jan 2014, 01:26
von yeti
Unten bei den Konstanten:

Code: Alles auswählen

freqr                   long    $2000_0000              'frequency of SCK /8 for receive
freqw                   long    $4000_0000              'frequency of SCK /4 for send
Die SPI-Out/In-Schleifen:

Code: Alles auswählen

spi_out_      andn      outa, clkpin
              shl       arg0, #24              
              mov       phsb, arg0              ' data to write
              mov       frqa, freqw             ' 20MHz write frequency
              mov       phsa, #0                ' start at clocking at 0
              
              mov       ctra, ctramode          ' send data @ 20MHz
              rol       phsb, #1
              rol       phsb, #1
              rol       phsb, #1
              rol       phsb, #1
              rol       phsb, #1
              rol       phsb, #1
              rol       phsb, #1
              mov       ctra, #0                ' disable
              andn      outa, clkpin
                       
spi_out__ret  ret

spi_in_       andn      outa, clkpin
              mov       phsa, phsr              ' start phs for clock
              mov       frqa, freqr             ' 10MHz read frequency
              nop

              mov       ctra, ctramode          ' start clocking
              test      dipin, ina wc
              rcl       arg0, #1
              test      dipin, ina wc
              rcl       arg0, #1
              test      dipin, ina wc
              rcl       arg0, #1
              test      dipin, ina wc
              rcl       arg0, #1
              test      dipin, ina wc
              rcl       arg0, #1
              test      dipin, ina wc
              rcl       arg0, #1
              test      dipin, ina wc
              rcl       arg0, #1
              test      dipin, ina wc
              mov       ctra, #0                ' stop clocking
              rcl       arg0, #1
              andn      outa, clkpin
                            
spi_in__ret   ret
Wenn die Schreibschleife bei 100 MHz Systemtakt zu schnell für den ENC28J60 ist (SPI-Clock maximal 20MHz meine ich für diesen Chip zu erinnern), würde ich sie erstmal blauäugig auf den selben Rhythmus wie die Leseschleife bringen, indem frqw denselben Wert wie frqr bekommt und vor oder nach (nochmal begrübeln, ich tendiere derzeit noch zu nach...) jeder Ausgabeoperation ein NOP eingeflochten wird.

Quick und hasenfüßig... es gibt tote Helden und lebende Feiglinge... und ich lebe noch... tunen und tieferlegen kann man später immernoch... aber da die frq-Werte am Instruktionstiming orientiert angelegt werden müssen, hat man bei diesen Schleifen wenig Spielraum.


Hab ich was übersehen oder 'n anderen Denkknoten darin?

Re: 2x IP-Stack von Harrison Pham

Verfasst: Mi 22. Jan 2014, 11:27
von PIC18F2550
Hi yeti,

wenn ich das richtig sehe betrifft das ja nur die Senderoutine.

Die Empfangsroutine arbeitet derzeit mit 10Mhz das währen dann 12,5Mhz und kein Problem.

Bei der Senderoutine währe beim einfügen von NOP's und gleicher Konstante auch 12,5Mhz möglich.

Der unterschied sollte nicht weiter stören.

Kann mir einer erklären was der Wert in freqw in frqa bewirkt?

Re: 2x IP-Stack von Harrison Pham

Verfasst: Mi 22. Jan 2014, 11:37
von PIC18F2550
Der Taktout vom ENC ist der beim einschalten Aktiv oder muss ich den erst aktivieren?

Wenn ich das Datenblatt richtig lese muss ich Ihn erst aktivieren.
Und mein Loader muss erst ein mal im RC-Modus fahren.

Wenn werde ich ihn mit 25Mhz belegen.
Bei einem falschen Wert macht der prop trotzdem was aber halt nur langsamer. ;)

Re: 2x IP-Stack von Harrison Pham

Verfasst: Mi 22. Jan 2014, 11:51
von yeti
Neneee... CLKOUT rennt defaultig 6.25MHz, wenn ich mich da richtig erinnere... ich hab's vor längerer Zeit mal als Takt benutzt ohne Ethernet zu brauchen und hab dafür nix initialisieren müssen...

Auch das Datenblatt ist meiner Meinung:
http://ww1.microchip.com/downloads/en/D ... 39662c.pdf --> 2.3 CLKOUT Pin

Wieso bist Du so auf die 25 MHZ fixiert?
Mir gefällt 6.25*16 viiiiel besser... :-D

Re: 2x IP-Stack von Harrison Pham

Verfasst: Mi 22. Jan 2014, 12:26
von PIC18F2550
Die meisten Netzwerkkarten werden mit einem 25Mhz Quarz betrieben. :D <--- EDIT: :-? Sorry der PIC läuft nur mit 20MHZ (binn doch schon Blind)
Davonhab ich noch einige rummliegen aber keinen einzigen mit 6.25Mhz. :oops:

Sorry das alte Problem mit der Übersetztung. :oops: Ich gelobe Besserung.

6,25 wird Assimiliert.

Re: 2x IP-Stack von Harrison Pham

Verfasst: Mi 22. Jan 2014, 12:47
von TuxFan
Moin moin!
yeti hat geschrieben:..........(SPI-Clock maximal 20MHz meine ich für diesen Chip zu erinnern)...........
Wen ich so ins Datenblatt des ENC28J60 auf den allerersten Absatz blicke
Ethernet Controller Features
.
SPI Interface with speed up to 10Mb/s (....Geschwindigkeit bis 10Mb/s)

@ pic : Du hast etwas in deinen vorherigen Posts geändert, bezüglich der Quarzfrequenz, ich meine vorher etwas von 25 MHz gelesen zu haben und einem PLL-Faktor von 4. War der von Dir getestete Aufbau mit einem Quarz oder einem externen Oszillator?
Meine bisherigen Recherchen über Quarzfrequenzen beim Overclocking des Prop kamen auf Quarze mit maximal 14,318 MHz und PLL = 8 die stabil bei 3,3V gearbeitet haben. Bei Quarzfrequenzen von 15MHz und mehr soll es nicht mehr stabil laufen. Aus diesen Gründen bin ich beim CP/Mchen bei einem 12MHz Quarz geblieben (auch wegen der verfügbaren SMD-Bauformen). Dabei merkt man aber eine fühlbare höhere Erwärmung des Prop gegenüber einer Bestückung mit 10MHz Quarz.
Ein Grund für die Frequenzbeschränkung soll der interne PLL-Oszillator sein. Z.B. Meine 10MHz und 12MHz Quarze funktionieren nicht mit PLL = 16.
Gruß
TuxFan

Re: 2x IP-Stack von Harrison Pham

Verfasst: Mi 22. Jan 2014, 13:00
von yeti
TuxFan hat geschrieben:Moin moin!
yeti hat geschrieben:..........(SPI-Clock maximal 20MHz meine ich für diesen Chip zu erinnern)...........
Wen ich so ins Datenblatt des ENC28J60 auf den allerersten Absatz blicke
Ethernet Controller Features
.
SPI Interface with speed up to 10Mb/s (....Geschwindigkeit bis 10Mb/s)
http://ww1.microchip.com/downloads/en/DeviceDoc/39662c.pdf hat geschrieben: Ethernet Controller Features
• IEEE 802.3TM Compatible Ethernet Controller
• Fully Compatible with 10/100/1000Base-T Networks
• Integrated MAC and 10Base-T PHY
• Supports One 10Base-T Port with Automatic
Polarity Detection and Correction
• Supports Full and Half-Duplex modes
• Programmable Automatic Retransmit on Collision
• Programmable Padding and CRC Generation
• Programmable Automatic Rejection of Erroneous Packets
SPI Interface with Clock Speeds Up to 20 MHz
Es geistern tatsächlich auch PDFs durchs Netz, die was von 10 MHz schreiben, aber die sind wohl veraltete Pre-Releases der ENC28J60-Doku...

...hab's im Beitrag, in dem ich die Altdoku als URL angab, entsprechend kommentiert...

Re: 2x IP-Stack von Harrison Pham

Verfasst: Mi 22. Jan 2014, 13:14
von TuxFan
yeti hat geschrieben:.......Es geistern tatsächlich auch PDFs durchs Netz, die was von 10 MHz schreiben, aber die sind wohl veraltete Pre-Releases der ENC28J60-Doku...
Aaaahhhh, bedankt, mein Datenblatt ist von 2004 und damit entsorgt. Da macht auch die 20MHz-Routine Sinn. Gut, die funktionierte bei meinen Propeller-Versuchen eh.
[OT] Ich hab den ENC28J60 zwischenzeitlich auch an 3,3V/8MHz und 5V/16MHz(mit Levelshifter) Arduinos ausprobiert und läuft. [/OT]
Was man auch mal ausprobieren könnte ist die "Power down" Funktion des ENC. Könnte auch bei Hive im Betrieb ohne Ethernet zum Stromsparen interessant sein.
Gruß
TuxFan