Forum: Mikrocontroller und Digitale Elektronik Welchen Quellcode für einen AVR-Webserver?


von Rene S. (reene80)


Lesenswert?

Hallo zusammen,

ich habe mir einen kleinen spartanischen webserver gebaut mit einem
atmega644p, dem enc28j60, einer microsd-Karte (per levelconverter mit an
spi angeschlossen) und den Anschlüssen für JTAG und ADC.
Mich interessiert nur die funktionierende Anzeige der programmierten
Webseiten im atmega und auf der sd-Karte und der Zugriff auf die 
sd-Karte
per ftp.
Deshalb möchte ich wissen, welchen von den vielen
abgewandelten/erweiterten stacks ihr mir vor allem für den ftp-Zugriff
auf die Karte aktuell empfehlen könnt.

Ich teste gerade die Implementierung von Roland Riegel (Ver 1.1.06),
aber dabei habe ich noch Schwierigkeiten mit der sd-Karte. Gibt es 
Software, die dort schon weiter ist? Die ihr mir aktuell empfehlen 
könnt?

Danke.

von tom (Gast)


Lesenswert?

schau doch erstmal ob deine hw vernünftig tut, stichwort level shifter 
3,3<->5V zur sd karte z.B. ?

von Rene S. (reene80)


Lesenswert?

Der level translator (ADG3304) sollte korrekt arbeiten. Nach kleinen 
Änderungen habe ich den auf richtige Funktionweise mit Multimeter und 
Oszi überprüft.

Ich habe mir bloß einige Schnittstellen gespart und kann deswegen ohne 
rumbasteln keine Ausgaben über usart/telnet auswerten.
Im stack von Roland Riegel seh ich noch nicht so richtig durch, wie der 
gemeinsam genutzte SPI-Bus getimed wird. Außerdem ist (un)select_card 
verwirrend, weil er bei select z.B. die cs-Leitung auf low zieht:
1
#define select_card() PORTB &= ~(1 << PB1)   //cs auf low
2
#define unselect_card() PORTB |= (1 << PB1)  //cs auf high

Beim Zugriff auf die Karte fehlt mir das Aus/Einschalten des enc.
... oder seh ich das was falsch und der stack läuft ohne Probleme mit 
den kleinen Änderungen der cs Leitungen?

von dunno.. (Gast)


Lesenswert?

der spi bus funktioniert nunmal so, das chip select low active ist. 
deswegen oft auch !sel oder nsel..

normalerweise sollte man am spi so programmieren, das man nsel immer auf 
1 stellt, nachdem man mit einem zugriff auf ein gerät fertig ist.
also select, zugriff, deselect.

wenn das alle zugreifenden codes am spi so machen, wirst keine probleme 
bekommen..

meistens sieht man außerdem auch noch nen pullup an nsel vor, dann 
braucht man auch beim initialisieren nicht drauf achten, erstmal alle 
geräte zu deselecten..

mfg

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.