PIC med Ethernet och SD-kort

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Rick81
Inlägg: 755
Blev medlem: 30 december 2005, 13:07:09

PIC med Ethernet och SD-kort

Inlägg av Rick81 »

Jag såg denna: PIC Ethernet Board

och blev lite sugen på att göra en egen PIC server.

Någon som gjort något liknande projekt och har tips på lämpliga och billiga ethernet kretser? Lite kod kunde ju också vara trevligt att titta på.

Det hade varit kul om man kunde lägga data på SD-kort, men vad jag läst så måste man skriva 512 byte i taget vilket är mer än det RAM-minne som finns tillgängligt på PICar så det blir lite klurigt hur man ska skriva data. Om någon har interfacat ett SD-kort med PIC så vore det kul att se hur detta är gjort, gärna lite kod där med.
bearing
Inlägg: 11677
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Inlägg av bearing »

Finns en här tråd om en pic som webserver.

Det finns PICar med mer än 512 byte SRAM.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Innan någon annan gör det...
Hur mycket har du letat hos www.microchip.com ??

> 512 byte i taget vilket är mer än det RAM-minne som finns tillgängligt på PICar

Var har du fått det ifrån ???
Användarvisningsbild
strombom
Inlägg: 3305
Blev medlem: 27 maj 2003, 10:50:20
Ort: Västra Götaland
Kontakt:

Inlägg av strombom »

Angående SD-kort
-------------------

Här är exempelkod (skriven för AVR men är nog inte så svår att porta): avrlib mmc

Datablad: Samsung mmc

Bra guide med mycket info: Elm-chan mmc

Man kan ställa om blocklängden (CMD16). I SDHC kort är den dock låst till 512 bytes eftersom man där anger adressen i sektorer istället för bytes.
Senast redigerad av strombom 2 augusti 2008, 13:02:34, redigerad totalt 1 gång.
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg av Micke_s »

Ta en titt på http://elm-chan.org/fsw/ff/00index_e.html
FAT12/16 och FAT32 stöd.
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg av Micke_s »

finns ju pic:ar med inbyggd ethernet nu. PIC18 Ethernet

Ta en titt på dataflash också, elfa har t.e.x AT45DB041B-SI

Ger halv megabyte datautrymme och mycket enklare att kommunicera än SDHC. Finns inget som hindrar att du har SDkortshåller också förvisso.
Rick81
Inlägg: 755
Blev medlem: 30 december 2005, 13:07:09

Inlägg av Rick81 »

Jag tackar för alla intressanta svar.

Först får jag ursäkta att jag kollade RAM-minnet på stenålders PICar. Finns mycket riktigt betydligt mer nu för tiden. Snart så man kan kalla en PIC för mikroprocessor :D

Stort tack till strombom som skickade många intressant SD-korts länkar. Ska kolla dess noggrannare.

Micke_S: mycket trevlig PIC det där...någon som har exempel kod för PIC med inbyggd ethernet? Är det lika krångligt som med USB i PIC eller är det något som man kan fixa relativt snabbt och smidigt? (Jag tröttnade på att implementera USB i PIC för det var för jobbigt. Jag menar bara man läser i databladet att det förutsätter att man kan USB protokollet blir man ju avskräckt)
Användarvisningsbild
callelj
Inlägg: 351
Blev medlem: 9 april 2008, 18:03:25
Ort: Linköping

Inlägg av callelj »

Rick81: Om du kör med microC så finns det inbyggt stöd för de nya PIC18FxxJ60 processorerna.
Men det programmet kostar ifs pengar om man nu inte hittar något annat sätt att fixa det på... ;-)

http://www.mikroe.com/
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> finns ju pic:ar med inbyggd ethernet nu.

Men å andra sidan så får man ett mycket mindre antal olika
modeller at välja på, än om man kör med den lösa Ethernet kretsen.

Jag är inte helt säker, men jag tror inte att TCPIP programvaran
blir så där väldigt mycket enklare bara för att Ethernet hårdvaran
sitter i samma krets istället för i en separat, men kanske. Man slipper
ett extra SPI steg i alla fall. Men mindre än 64-Pin TQFP verkar man
inte komma...
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 47013
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Inlägg av TomasL »

Går aldeles utmärkt att köra TCP/IP och http på en "stenålderspic" bara programminnet är tillräckligt stort.
RAMet är i princip ointressant, med rätt teknik.
Vill minnas att den första webservern utveklades för en 86a eller nått sånt.
18F452 (40-pin DIL) och dess ersättare räcker långt.

Det stora problemet med TCP/IP/Ethernet är att kontrollsummorna som räknas på hela paketet ( strax över 1500 byte) ligger i början, vilket kan skapa problem om man utgår i från att man måste ha hela paketet i minnet, vilket man inte behöver.

Det fina i det hela är att man behöver inte hålla hela paketet i minnet, man behöver i princip inget minne alls.

Grejjen går ut på att man utnytjar ethernetkretsens buffertminne, både vid sändning och mottagning.

Vid sändning skickar man paketet till ethernetkretsen, och "on the fly" sas, räknar kontrollsumman, sedan återställer man adresspekaren och skriver kontrollsumman och skickar iväg paketet.

För att speeda upp det hela, kan man, för html-sidorna använda förberäknade kontrollsummor, "addera" kontrollsumman för förändringen, och skicka den.

Vid mottagning, gör man i princip samma sak, kontrollera om det är rätt mottagare, kontrollräkna kontrollsumman, om bägge är rätt, processar man paketet, som fortfarande ligger i ethernetkretsens buffert.

Har läst nånstans om en webbserver, som ligger i en av de minsta picarna (under 1000 ord pm, och nått tiotal byte ram)
Dunkels stack lär gå att pressa in under 512 ord har jag hört, dock rätt handikappad.

Har själv skruvat ihop en server för mitt "lilla" projekt, i en 18F8722, tar just nu ca 19 kord, men då ingår HTTP och FTP server, mail-klient, plus en del annat.
Har fn implementerat TCP och UDP samt SMTP, förutom MAC-Lagret, ARP och IP.
Nästa steg är DHCP, både klient och ev server.


Bträffande SD så är det iofs inte speciellt svårt, så länge man inte ger sig på att implementera FAT.

SD och använder sig bl.a. av nåt I2C liknande protolkoll (förutom USB) vill jag minnas, så det är bara att skriva i princip.
Vill man ha det PC-läsbart och inte känner för att implementera FAT, så kan man göra det "the dirty way", dvs använda förformaterade minnen med, skapa filen på kortet med en PC, hacka kortet, för att ta reda på absoluta adresser till filen i fråga samt äve de ställen i FAT som håller reda på start/stopp/storlek och ev datum, hårdkoda dessa adresser, sedan är det bara att skriva, och vips har man ett PC-kompatibelt SD-kort.

Vill man implementera FAT, så finns det några mer eller mindre PD-versioner att tillgå, annars kan man hämta hem hela specen från MS, vilket är gratis, så länge man inte börjar sälja produkten (då får man ev betala en licens till MS).
Gissar dock att man behöver gå upp till PIC24 eller hellre PIC32 för att det skall bli nån vidare bra lösning om man vill ha hela FATen implementerad.

De FATonChip jag sett hitills och även de flesta PD lösningar brukar vilja ha en ARM eller liknande
Rick81
Inlägg: 755
Blev medlem: 30 december 2005, 13:07:09

Inlägg av Rick81 »

TomasL: Mycket intressant info du har. Ditt "lilla" projekt verkar riktigt imponerade och inte så litet. Du skulle inte kunna lägga upp projektet med kretsar och kod på nätet? Jag vill gärna kolla på det. Om inte, vilken ethernet krets använder du?
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 47013
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Inlägg av TomasL »

Sorry, ingen kod och inga scheman, patent mm.
Använder RTL8019 fn. Funderar dock på att byta till en 100Mb Krets.
Har inte hittat nån vettig 1Gb än.

Innan nån annan gör sig lustig över att köra en PIC på ett 1Gb Nätverks.
Naturligtvis kan man inte förvänta sig att kunna stream 1Gb med en 10MIPS processor, det är fullständigt omöjligt, går i princip inte ens att streama i 10Mb/s.
MEN, varje paket skickas med den högre hastigheten, vilket gör kommunikationen snabbare, sedan att jag kanske inte kan skicka mer än nått hundratal paket per sekund, har ingen betydelse, packet går iväg med full bandbredd.

Som en start kan du kika poå uCHIP's PICDEM.Net, den gamla versionen med RTL8019.
Den nya använder ENC, vill jag minnas, alternativt nån med PIC med inbyggd MAC.
Sedan finns det rätt många mer eller mindre färdiga projekt på nätet.
En av dem är Adam Dunkel's uIP, eller vad den heter.

Jeremy Bantam (tror jag han heter) har också gjort en, dessutom har han skrivit en bra bok.

Lite länkar:
http://www.iosoft.co.uk
http://www.picoweb.net
http://www.unusualresearch.com/tinytcp/tinytcp.htm
http://www.sics.se/~adam/uip/index.php/Main_Page

Nödvändigt är att läsa, riktigt mycket, annars har man inte chans att först vad som händer, och varför.
Skaffa några bra böcker, den från IOSOFT rekommenderas, finns även några svenska, som ger en hyffsad inblick i TCP/IP/Ethernet.
Nödvändigt är också att kunna alla RFC, helst utantill, ungefär som "gångertabellen", samma gäller kretsarna.
jas39
Inlägg: 122
Blev medlem: 24 december 2005, 23:23:09
Ort: Älvsjö

Inlägg av jas39 »

Kan annars rekommendera http://www.ftpmicro.com, En italienare som gjort
Schema och kod för att köra Microchips 18f97j60 tillsammans med ett FAT-formaterat SD kort. Färdiga kort finns att köpa.

Har byggt vidare på den själv, nån form av ögonblicksstatus fanns
borttagen men trafiken sänkte min router.

Kortet, som är 2,5x4cm tvålagers ytmonterat med 0603 komponenter, är tillverkat i Kina av PCBCart.com


/&&
Senast redigerad av jas39 1 augusti 2008, 16:42:40, redigerad totalt 1 gång.
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Inlägg av Andax »

ftpmicro verkar ju riktigt trevlig. Visserligen 69 euro för en färdig modul, men det kan det vara värt.
Matte
Inlägg: 218
Blev medlem: 4 april 2007, 19:54:17
Ort: Stockholm

Inlägg av Matte »

Försökte mig på ett projekt med att porta ett FAT biblotek+SD till en pic för många år sen. koden var i C så tänkte väll "hur svårt kan det va" då falerade allt på att det inte går att direkt adressera 512byte minne med 8bitars addressering(byta bank i mitten blev struligt). Finns säkert nått bra kompilator trix för detta eller så är det löst nu men då kom jag aldrig över den tröskeln.
Skriv svar