Forum: Mikrocontroller und Digitale Elektronik Atmel im Ethernet mit Assembler?


von Daniel Hackman (Gast)


Lesenswert?

Hi,
bin jetzt ganz neu eingestiegen und hab bis jetzt ein wenig mit
Assembler im Atmega8 programmiert, sprich led's
leuchten/blinken/lauflicht lassen und töne erzeugen. Jetzt frage ich
mich ob es möglich ist einen kleinen WEbserver zu programmieren (so wie
hier im Forum schon oft besprochen)aber nicht mit C sondern mit
Assembler, oder ist das generel nur mit C möglich?
Gruß
Daniel

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Das ist mit Assembler prinzipiell schon möglich, aber so aufwendig dass
sich keiner die Mühe macht. Und als Einsteigerprojekt ist es völlig
ungeeignet.

von Markus (Gast)


Lesenswert?

Hallo Daniel!

Ich versuche für mein Studium UDP-Packete im LAN zu verschicken. Das
meche ich mit CodevisionAVR. Dabei habe ich bisher mitbekommen, wie
umfangreich die Thematik ist. Es soll Network auf einfachster Ebene
sein.

Wenn du erst wenig Erfahrung in Assembler hast, dann nutze besser C.

Gruß Markus

von m4444x (Gast)


Angehängte Dateien:

Lesenswert?

NEIN es mit ASSEMBLER ist es UNMÖGLICH ;-) (zumindest der TCP/HTTP teil)
Es funktioniert aber trotzdem!

So überaus aufwendig und Anfänger ungeeignet isses nun auch wieder
nicht. Nach dem üblichen LCD gespiele hab ich mich gleich an den
Webserver ran gesetzt. Inzwischen macht der CANoverETH mit UDP und
hostet eine kleine Website im lokalen LAN.

Wer will kann ja mal in den SourceCode reinschielen...

von DerInder (Gast)


Lesenswert?

@m4444x: entspricht deine Hardware der von Ulrich Radig??
Deinen Asm-Code find ich richtrig gut :)

-=jens=-

von m4444x (Gast)


Lesenswert?

Die Netzwerkkarte und der ATmega32 Controller sind natürlich die
gleichen wie bei Ulrich. Ich hab die Ports aber anders angeschlossen:

PA0-4 -> Adresse (PA5-7 bleiben frei für AD-Messungen)
PC0-7 -> Daten (I2C dafür in software emuliert)
PORTD -> verschiedene Control Leitungen (IORD,IOWR,RST,LED,Taster,..)
PORTB -> SPI und I2C

Auf die MMC Karte musste ich leider verzichten, da ich keinen passenden
DIP-Adapter gefunden hab. Stattdessen werden die HTML Daten auf zwei
externen I2C EEPROMs gespeichert. Der Trick dabei ist: Die beiden Chips
teilen sich eine CLK Leitung haben aber getrennte Daten Leitungen. So
kann man immer zwei Bytes gleichzeitig über den I2C Bus schieben.
Zweimal AT24c512 ergibt also 128 kB Webspace. Im Zip ist ein Tool
enthalten mit dem die HTML, JPG und CSS Dateien compiliert und in den
Webserver hochgeladen werden können. ( make upload )

Außerdem ist noch ein MCP2515 CAN Controller mit von der Partie. Der
gestattet es dem Microcontroller, den CAN Bus über UDP auf den PC
weiterzuleiten. Die Software im pcrc Verzeichnis (QuickHack basierend
auf dem Qt-Toolkit (www.troll.no)) zeigt dann an was so los ist auf dem
CAN Bus. Später soll das dann auch mit jedem beliebigen WebBrowser
möglich sein. Das CAN Protokoll ist aber noch nicht ganz fertig...

Achso: An Pin PA7 wird die CAN Bus Versungsspannung gemessen. Bei einer
Spannung von ~ 10 Volt oder weniger wird über Pin PD5 der LM2575-T5
Switching Regulator, der die Netzwerkkarte mit Strom versorgt,
abgeschaltet. Bei über 12 Volt wird sie dann wieder eingeschaltet. Das
sollte meine Batterie schonen. Jetzt hab ich aber eine Netzwerkkarte
(ohne BNC) gefunden die eh bloß noch 0,05 A braucht. Deshalb ist das
ein- und ausgeschalte eigentlich nicht mehr nötig. Die ursprüngliche
Karte wollte doch tatsächlich das zehnfache haben, da hat sich der
Switch schon eher gelohnt.

Ich werd jetzt noch mal ein Schema mit den ganzen Bauteilen malen..

von m4444x (Gast)


Angehängte Dateien:

Lesenswert?

so hier sind die eagle files. ich hoffe ich hab das richtig gezeichnet.
wenn ich wieder säure da hab werd ich das board mal ausprobieren.

noch fragen?

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.