2x IP-Stack von Harrison Pham

Du hast ein Betriebssystem für den Hive geschrieben oder beschäftigst dich mit den grundlegenden Systemfunktionen, dann bist du hier richtig!
Benutzeravatar
yeti
Beiträge: 2300
Registriert: Fr 27. Aug 2010, 14:48
Wohnort: Wrong Planet
Kontaktdaten:

Re: 2x IP-Stack von Harrison Pham

Beitrag 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...
𝖂𝖎𝖗 𝖐𝖔̈𝖓𝖓𝖊𝖓 𝖆𝖑𝖑𝖊𝖘 𝖆𝖚𝖘𝖘𝖊𝖗 𝖎𝖓 𝕱𝖗𝖚̈𝖍𝖑𝖎𝖓𝖌, 𝕾𝖔𝖒𝖒𝖊𝖗, 𝕳𝖊𝖗𝖇𝖘𝖙 𝖚𝖓𝖉 𝖂𝖎𝖓𝖙𝖊𝖗! – 𝕯𝖊𝖚𝖙𝖘𝖈𝖍𝖑𝖆𝖓𝖉.
"Du willst hier nicht klicken. Dies interessiert Dich nicht." — Yeti.
"DNA is a four letter word!" — Yeti.
Benutzeravatar
PIC18F2550
Beiträge: 2832
Registriert: Fr 30. Sep 2011, 13:08

Re: 2x IP-Stack von Harrison Pham

Beitrag 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
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
yeti
Beiträge: 2300
Registriert: Fr 27. Aug 2010, 14:48
Wohnort: Wrong Planet
Kontaktdaten:

Re: 2x IP-Stack von Harrison Pham

Beitrag 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?
𝖂𝖎𝖗 𝖐𝖔̈𝖓𝖓𝖊𝖓 𝖆𝖑𝖑𝖊𝖘 𝖆𝖚𝖘𝖘𝖊𝖗 𝖎𝖓 𝕱𝖗𝖚̈𝖍𝖑𝖎𝖓𝖌, 𝕾𝖔𝖒𝖒𝖊𝖗, 𝕳𝖊𝖗𝖇𝖘𝖙 𝖚𝖓𝖉 𝖂𝖎𝖓𝖙𝖊𝖗! – 𝕯𝖊𝖚𝖙𝖘𝖈𝖍𝖑𝖆𝖓𝖉.
"Du willst hier nicht klicken. Dies interessiert Dich nicht." — Yeti.
"DNA is a four letter word!" — Yeti.
Benutzeravatar
PIC18F2550
Beiträge: 2832
Registriert: Fr 30. Sep 2011, 13:08

Re: 2x IP-Stack von Harrison Pham

Beitrag 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?
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
PIC18F2550
Beiträge: 2832
Registriert: Fr 30. Sep 2011, 13:08

Re: 2x IP-Stack von Harrison Pham

Beitrag 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. ;)
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
yeti
Beiträge: 2300
Registriert: Fr 27. Aug 2010, 14:48
Wohnort: Wrong Planet
Kontaktdaten:

Re: 2x IP-Stack von Harrison Pham

Beitrag 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
𝖂𝖎𝖗 𝖐𝖔̈𝖓𝖓𝖊𝖓 𝖆𝖑𝖑𝖊𝖘 𝖆𝖚𝖘𝖘𝖊𝖗 𝖎𝖓 𝕱𝖗𝖚̈𝖍𝖑𝖎𝖓𝖌, 𝕾𝖔𝖒𝖒𝖊𝖗, 𝕳𝖊𝖗𝖇𝖘𝖙 𝖚𝖓𝖉 𝖂𝖎𝖓𝖙𝖊𝖗! – 𝕯𝖊𝖚𝖙𝖘𝖈𝖍𝖑𝖆𝖓𝖉.
"Du willst hier nicht klicken. Dies interessiert Dich nicht." — Yeti.
"DNA is a four letter word!" — Yeti.
Benutzeravatar
PIC18F2550
Beiträge: 2832
Registriert: Fr 30. Sep 2011, 13:08

Re: 2x IP-Stack von Harrison Pham

Beitrag 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.
Zuletzt geändert von PIC18F2550 am So 23. Feb 2014, 12:47, insgesamt 1-mal geändert.
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
TuxFan
Beiträge: 1022
Registriert: So 6. Sep 2009, 11:18

Re: 2x IP-Stack von Harrison Pham

Beitrag 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
Wunder gibt es immer wieder.......
Benutzeravatar
yeti
Beiträge: 2300
Registriert: Fr 27. Aug 2010, 14:48
Wohnort: Wrong Planet
Kontaktdaten:

Re: 2x IP-Stack von Harrison Pham

Beitrag 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...
𝖂𝖎𝖗 𝖐𝖔̈𝖓𝖓𝖊𝖓 𝖆𝖑𝖑𝖊𝖘 𝖆𝖚𝖘𝖘𝖊𝖗 𝖎𝖓 𝕱𝖗𝖚̈𝖍𝖑𝖎𝖓𝖌, 𝕾𝖔𝖒𝖒𝖊𝖗, 𝕳𝖊𝖗𝖇𝖘𝖙 𝖚𝖓𝖉 𝖂𝖎𝖓𝖙𝖊𝖗! – 𝕯𝖊𝖚𝖙𝖘𝖈𝖍𝖑𝖆𝖓𝖉.
"Du willst hier nicht klicken. Dies interessiert Dich nicht." — Yeti.
"DNA is a four letter word!" — Yeti.
Benutzeravatar
TuxFan
Beiträge: 1022
Registriert: So 6. Sep 2009, 11:18

Re: 2x IP-Stack von Harrison Pham

Beitrag 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
Wunder gibt es immer wieder.......
Antworten