Ethernet till AtMega1284 (var:Ethernet till en AtMega168)
Re: Ethernet till AtMega1284 (var:Ethernet till en AtMega168
Jag kör W5100 med en PIC18 och trots att jag är ethernet-rookie så har jag fått den att fungera. Jag är dock inte i stånd att bedömma hur den är prestandamässigt i förhållande till en mjukvarustack. Jag kör SPI mellan W5100 och PIC'en så flaskhalsen är garanterat där i mitt fall. Som du sa, kul chip!
Re: Ethernet till AtMega1284 (var:Ethernet till en AtMega168
Eller Texas/Luminary LM3S6965. Har inbyggd PHY.
Lätt som en plätt med lwIP.
Deja vu?
Lätt som en plätt med lwIP.
Deja vu?
Re: Ethernet till AtMega1284 (var:Ethernet till en AtMega168
jesper: det är bra att du påminner
listpris verkar vara ca 11USD i 100 tal.
H.o: Jag tror spi kommer bli flaskhalsen, om jag förstog databladet rätt finns det inget sätt att läsa ut en hel buffer utan man måste hålla på och skicka läskommando för varje byte, så för att läsa ut 8 bitar behövs det 24 klockpulser, och min spi klocka verkar vara 70ns / 14.28MHz, vilket då skulle betyda 581 kByte/s. Vilket väll iof lär hålla de flesta 8bitars µC upptagna, om de ens kan generera en 14MHz spi klocka från början.
Jag tror jag behöver ca 100-150 kBit/s

H.o: Jag tror spi kommer bli flaskhalsen, om jag förstog databladet rätt finns det inget sätt att läsa ut en hel buffer utan man måste hålla på och skicka läskommando för varje byte, så för att läsa ut 8 bitar behövs det 24 klockpulser, och min spi klocka verkar vara 70ns / 14.28MHz, vilket då skulle betyda 581 kByte/s. Vilket väll iof lär hålla de flesta 8bitars µC upptagna, om de ens kan generera en 14MHz spi klocka från början.
Jag tror jag behöver ca 100-150 kBit/s
Re: Ethernet till AtMega1284 (var:Ethernet till en AtMega168
Det finns en lite billigare variant, LM3S6100, ca $8 vid 100.
Inga direkt billiga kretsar kanske, men å andra sidan är det oftast den enda som behövs då PHY är inbyggd.
Föreslog denna sist du frågade, då det verkade vara bråttom.
Hur länge har du hållit på att försöka labba fram en lösning? Och hur funkar det?
Att lägga in en lwIP stack i en LM3S krets tar endast marginelt längre än själva nedladdningen.
Tid är pengar. (Om inte man inte bara gör det för att lära sig eller för skojs skull).
Inga direkt billiga kretsar kanske, men å andra sidan är det oftast den enda som behövs då PHY är inbyggd.
Föreslog denna sist du frågade, då det verkade vara bråttom.
Hur länge har du hållit på att försöka labba fram en lösning? Och hur funkar det?
Att lägga in en lwIP stack i en LM3S krets tar endast marginelt längre än själva nedladdningen.
Tid är pengar. (Om inte man inte bara gör det för att lära sig eller för skojs skull).
Re: Ethernet till AtMega1284 (var:Ethernet till en AtMega168
Angående W5100:
Det är riktigt, i SPI mode måste varje byte som ska läsas eller skrivas addreseras individuellt. Dessutom måste du lägga till en OP-kod (läs/skriv) så det går åt 32 klockpulser per byte.
Det finns något dom kallar Indirect Bus Interface Mode där man, om jag förstår det rätt, klockar in en startadress (via databussen (inte adressbussen)) och sedan läser (eller skriver) data sekventiellt. Detta borde vara betydligt snabbare än SPI men med det kostar fler I/O, dock inte lika många som Direct Interface vilket av naturliga skäl också är det snabbaste.
W5100-specen säger just minimum 70 ns för SPI-klockan så fortare än ~14 MHz eller ~430 kByte/s är inte aktuellt med SPI oavsett vilken CPU du har.
Det är riktigt, i SPI mode måste varje byte som ska läsas eller skrivas addreseras individuellt. Dessutom måste du lägga till en OP-kod (läs/skriv) så det går åt 32 klockpulser per byte.
Det finns något dom kallar Indirect Bus Interface Mode där man, om jag förstår det rätt, klockar in en startadress (via databussen (inte adressbussen)) och sedan läser (eller skriver) data sekventiellt. Detta borde vara betydligt snabbare än SPI men med det kostar fler I/O, dock inte lika många som Direct Interface vilket av naturliga skäl också är det snabbaste.
W5100-specen säger just minimum 70 ns för SPI-klockan så fortare än ~14 MHz eller ~430 kByte/s är inte aktuellt med SPI oavsett vilken CPU du har.
Re: Ethernet till AtMega1284 (var:Ethernet till en AtMega168
Heltid sen jag starta tråden.... 
Nä, några strötimmar här och några strötimmar där, när någon sticker ett utvecklingskit under näsan provar jag väll det under några timmar.
Det handlar mer om 10% / labprojekt/ petproject än en tids/penga pressad produktutveckling, så det är nog än så länge mer läro/skoj än något annat.
Enda som faktiskt har gett mig en fungerande tcp koppling hittils är silabs cp2201...
ho: stämmer såklart, hade för mig det bara var en addresbyte. Vad jag tyckte var lite synd på SPI versionen var att IRQ linan inte användas? Hade ju varit smidigt att veta att något hänt utan att behöva polla hela tiden.. Annars verkar det behövas 4 i/o för SPI , 14 för indirect och 27 för direct, så det gäller att ha gott om i/o...

Nä, några strötimmar här och några strötimmar där, när någon sticker ett utvecklingskit under näsan provar jag väll det under några timmar.
Det handlar mer om 10% / labprojekt/ petproject än en tids/penga pressad produktutveckling, så det är nog än så länge mer läro/skoj än något annat.
Enda som faktiskt har gett mig en fungerande tcp koppling hittils är silabs cp2201...
ho: stämmer såklart, hade för mig det bara var en addresbyte. Vad jag tyckte var lite synd på SPI versionen var att IRQ linan inte användas? Hade ju varit smidigt att veta att något hänt utan att behöva polla hela tiden.. Annars verkar det behövas 4 i/o för SPI , 14 för indirect och 27 för direct, så det gäller att ha gott om i/o...
Re: Ethernet till AtMega1284 (var:Ethernet till en AtMega168
C8051F120 är en vanlig µC inget ethernet chip...
Re: Ethernet till AtMega1284 (var:Ethernet till en AtMega168
AndLi,
Jag har inte provat/verifierat men vad jag förstår så ska /INT-pinnen fungera oavsett mode. Det finns en app-note för SPI och där står /INT-pinnen listad som optional så min uppfattning är att den ska fungera.
En nackdel med W5100 är att den inte är direkt prototyp-vänligt - 0.2mm ben på 0.4mm pitch, det gick att montera den med vanlig lödkolv men det var lite pilligt och inget jag vill göra speciellt ofta....
Såg just att det finns en W5200 som också har SPI (till skillnad mot W5300) men 32k buffert-minne, 8 sockets och SPI klockfrekvens på upp till 80 MHz.
Jag har inte provat/verifierat men vad jag förstår så ska /INT-pinnen fungera oavsett mode. Det finns en app-note för SPI och där står /INT-pinnen listad som optional så min uppfattning är att den ska fungera.
En nackdel med W5100 är att den inte är direkt prototyp-vänligt - 0.2mm ben på 0.4mm pitch, det gick att montera den med vanlig lödkolv men det var lite pilligt och inget jag vill göra speciellt ofta....
Såg just att det finns en W5200 som också har SPI (till skillnad mot W5300) men 32k buffert-minne, 8 sockets och SPI klockfrekvens på upp till 80 MHz.
-
- Inlägg: 8444
- Blev medlem: 15 april 2006, 18:57:29
- Ort: Typ Nyköping
Re: Ethernet till AtMega1284 (var:Ethernet till en AtMega168
Om du tittar i denna tråd så kanske du får mera matnyttigt.
http://elektronikforumet.com/forum/view ... it=MEGA128
Så jag rekommenderar starkt Davicom DM9000 den kommer att funka mycket bra mot AtMEGEA1284.
http://elektronikforumet.com/forum/view ... it=MEGA128
Så jag rekommenderar starkt Davicom DM9000 den kommer att funka mycket bra mot AtMEGEA1284.
Re: Ethernet till AtMega1284 (var:Ethernet till en AtMega168
Den förkompilerade CMX stacken från Silabs kollar att man faktiskt kör mot ett Silabs chip, och F380 är för nytt för att passera den testen... Ryktet säger att det ska fixas, kan man kompilera stacken från källkod funkar den mot en F380...
Fick en stund över att prova W5100 idag, och lysdioderna för ethstatus tänds (vilket typ kräver ström och rätt spänning på resetpinnen ) men jag kan bara skicka ner en sekvens av READ/WRITE ADDR ADDR DATA över SPI. Första gången gör den precis som den ska, klockar ut 0,1,2,3 om man gör en WRITE och 0,1,2,data om man gör en write. Men försöker man sen sig på en lösning/skrivning i något annat (eller samma) register igen är MISO pinnen helt still. Div delayer och olika snabba klockor är också provade. Drar man i resetpinnen och provar ett nytt register funkar det precis som det ska igen..
Lite magiskt tycker jag, eftersom jag såklart tycker att jag gör allt rätt, höjer och sänker ChipSelect osv, men något är bevisligen fel
Får kolla lite fler exempelkoder tror jag, kanske rent av sno någons kod 
Fick en stund över att prova W5100 idag, och lysdioderna för ethstatus tänds (vilket typ kräver ström och rätt spänning på resetpinnen ) men jag kan bara skicka ner en sekvens av READ/WRITE ADDR ADDR DATA över SPI. Första gången gör den precis som den ska, klockar ut 0,1,2,3 om man gör en WRITE och 0,1,2,data om man gör en write. Men försöker man sen sig på en lösning/skrivning i något annat (eller samma) register igen är MISO pinnen helt still. Div delayer och olika snabba klockor är också provade. Drar man i resetpinnen och provar ett nytt register funkar det precis som det ska igen..
Lite magiskt tycker jag, eftersom jag såklart tycker att jag gör allt rätt, höjer och sänker ChipSelect osv, men något är bevisligen fel


Re: Ethernet till AtMega1284 (var:Ethernet till en AtMega168
Har du testat att, som första operation köra en soft-reset (skriv $80 till mode-registret)?
Släpper du /CS pinnen mellan de individuella försöken att läsa/skriva eller håller du den låg? Nu var det ett tag sedan jag läste databladet så jag vet inte om man bör/ska/måste släppa den men jag gör det i min kod och det har fungerat fint.
/Henrik.
Släpper du /CS pinnen mellan de individuella försöken att läsa/skriva eller håller du den låg? Nu var det ett tag sedan jag läste databladet så jag vet inte om man bör/ska/måste släppa den men jag gör det i min kod och det har fungerat fint.
/Henrik.
Re: Ethernet till AtMega1284 (var:Ethernet till en AtMega168
Yepp, soft reset är det första jag gör, och den gör som den ska(=MISO ändras, räknas upp) , men försöker jag sen läsa tillbaka den, eller skicka en softreset till ligger MISO hög hela tiden.
/CS går hög mellan varje 4 tecken alltså efter en sekvens av R/W ADDR ADDR DATA.
CLK ligger låg mellan alla tecken och MOSI ligger på vad den råkar vara, timeingen mellan alla omslag tycker jag ser ut att vara rätt, började med klockan på 10MHz och sen 5MHz. Tycker inte det borde vara problemet då de första 4 teckena klockas in rätt.
/CS går hög mellan varje 4 tecken alltså efter en sekvens av R/W ADDR ADDR DATA.
CLK ligger låg mellan alla tecken och MOSI ligger på vad den råkar vara, timeingen mellan alla omslag tycker jag ser ut att vara rätt, började med klockan på 10MHz och sen 5MHz. Tycker inte det borde vara problemet då de första 4 teckena klockas in rätt.
Re: Ethernet till AtMega1284 (var:Ethernet till en AtMega168
Finns det inget kod- eller timingexempel att använda som referens?
Re: Ethernet till AtMega1284 (var:Ethernet till en AtMega168
Jodå, det finns ganska många som använt chipet för atmegor på nätet, och databladet har ganska tydlig bild på hur timingen ska vara, iof hittar jag inga minimum tider mellan två olika registerskrivningar..