SchaltplanEAGLE Schaltplan
Platinen LayoutEAGLE Platinen Layout

Netzwerkbrücke

Nachdem ich einige Erfahrungen mit RFM12 gemacht habe wollte ich mich nun mal mit dem guten alten Kupfernetzwerk beschäftigen.

Ich entschied mich einen Nachfolger für mein USB 2 RFM12 Modul zu entwickelt. Da dieses im Wohnzimmer stehen soll fande ich es auch noch für angebracht Infrarot zu integrieren.

Hier hatte ich mal wieder das Glück das mir die Arbeit abgenommen wurde. Bei Mikrocontroller.net ist IRMP zu finden. Diese Bibliothek unterstützt die gängigsten Infrarot Protokolle.

Für RFM12 habe ich die von mir erweiterte RFM12lib Bibliothek von das Labor benutzt. Allerdings ohne das sich das Modul bei Gibson OS anmeldet.

Auf der Netzwerkseite habe ich mich von Ulrich Radig inspirieren lassen. Ich habe seine Bibliothek soweit abgespeckt das sie nur noch UDP versteht und sich bei Gibson OS anmelden kann. In der Version ist sie sogar auf einen mega8 lauffähig. Als Netzwerkchip nutze ich den ENC28J60 und als Magjack (Netzwerk Anschlußbuchse) kommt ein TRJ0011 zum Einsatz.

Benötigte Bauteile

AnzahlPositionBezeichnungArtikelnummer
5C4, C7, C9, C11, C12Keramik-Kondensator 100NKERKO 100N (Reichelt)
4C5, C6, C13, C14Keramik-Kondensator 22PKERKO 22P (Reichelt)
2C1, C10Elko 63V 4.7μFAX 4,7/63 (Reichelt)
1C8Elko 63V 10.0μFAX 10/63 (Reichelt)
1D1Infrarot 5mm 880nm 20°SFH 485 (Reichelt)
1IC2Ethernet-Controller ENC28J60ENC 28J60-I/SP (Reichelt)
1IC3ATmega 32A DIPATMEGA 32A-PU (Reichelt)
1JP1, JP2StiftleisteSL 1X36G 2,54 (Reichelt)
1L1Drosselspule 10μHSMCC 10µ (Reichelt)
1LM317TSpannungsregler 3,3VLM 1117 T3,3 (Reichelt)
1PWR_LEDLED GrünLED 5MM ST GN (Reichelt)
1WRK_LEDLED GelbLED 5MM ST GE (Reichelt)
1Q1Quarz 25.0MHz Oberton25,0000-HC49U-S (Reichelt)
1Q3Quarz 16.0MHz Grundton16,0000-HC49U-S (Reichelt)
2R1, R13Widerstand 180Ω1/4W 180 (Reichelt)
2R2, R3Widerstand 330Ω1/4W 330 (Reichelt)
1R4Widerstand 1,1kΩ1/4W 1,1K (Reichelt)
1R5Widerstand 2kΩ1/4W 2,0K (Reichelt)
4R6, R7, R8, R9Widerstand 51Ω1/4W 51 (Reichelt)
1R10Widerstand 10kΩ1/4W 10K (Reichelt)
1R15Widerstand 68Ω1/4W 68 (Reichelt)
2SV1Wannenstecker 6-poligWSL 6G (Reichelt)
1T1Transitor NPN 337BC 337-40 (Reichelt)
1T1Transitor NPN 337BC 337-40 (Reichelt)
1UFunkmodul RFM12B 433MHz 3,3VFM-RFM12B-433-S1 (Octamex)
1Antenne 433Mhz SMAANT-SMA433-1L (Octamex)
1SMA Female 20cmST-SMAK-FE174-20 (Octamex)
1UWestern TRXCOM TRJ0011450 001 (Pollin)
1X1USB Serie B gewinkeltUSB BW (Reichelt)
2BuchsenleisteBL 1X10G8 2,54 (Reichelt)
1Schaltdraht Rot560 353 (Pollin)
1Schaltdraht Schwarz560 348 (Pollin)
1Gehäuse460 006 (Pollin)
1StreifenrasterplatineH25SR050 (Reichelt)
1IR-Empfänger-Module TSOP31236TSOP 31236 (Reichelt)
1IC2Sockel 28-poligGS 28P (Reichelt)
1IC3Sockel 40-poligGS 40P (Reichelt)

RFM Protokoll

Fertige PlatineFertig gelötete Platine
Fertige Platine mit AntenneFertig gelötete Platine mit Antenne
Fertige Platine mit Antenne von UntenFertig gelötete Platine mit Antenne von Unten

Ich habe mich auch entschloßen das Funkprotokoll zu erweitern. Es wird jetzt die Absenderadresse mitgeschickt sowie eine Paketnummer. Außerdem wurde ein Fehler bei der Checksummerberechnung entfernt.

Empfangsbestätigung

  Länge Bytenummer
Daten Typ 1 1
Paketnummer 1 2
Senderadresse 1 3
Checksumme 1 4

Handshake empfangen

  Länge Bytenummer
Daten Typ 1 1
Modul Typ 1 2
Modulname 1-16 3-18
Paketnummer 1 4-19
Senderadresse 1 5-20
Checksumme 1 6-21

Handshake senden

  Länge Bytenummer
Daten Typ 1 1
Adresse 1 2
Gruppen Adresse 1 1 3
Gruppen Adresse 2 1 4
Gruppen Adresse 3 1 5
Gruppen Adresse 4 1 6
Modulnamen Länge 1 7
Modulname 1-16 8-15
Paketnummer 1 9-16
Senderadresse 1 10-17
Checksumme 1 11-18

Nicht gesetzte Gruppen Addressen beinhalten die Modul Adresse.

Status anfordern

  Länge Bytenummer
Daten Typ 1 1
Paketnummer 1 2
Senderadresse 1 3
Checksumme 1 4

Status empfangen

  Länge Bytenummer
Daten Typ 1 1
Daten 1-192 2-193
Paketnummer 1 3-194
Senderadresse 1 4-195
Checksumme 1 5-196

Daten

  Länge Bytenummer
Daten Typ 1 1
Daten 1-192 2-193
Paketnummer 1 3-194
Senderadresse 1 4-195
Checksumme 1 5-196

ETH Protokoll

Gehäuse von InnenGehäuse von Innen
Gehäuse von InnenGehäuse von Innen
Gehäuse von der SeiteGehäuse von der Seite

Ich verzichte bei meinem Netzwerkmodulen auf TCP. Denn TCP hat einiges an Overhead. Was in meinem Fall die Kommunikation nur verlangsamen würde. So entschied ich mich für UDP. Die Kommunikation darüber ist sehr einfach. Ein Paket reciht aus um mit der Gegenstelle zu kommunizieren. Das passt mir sehr gut in den Kramm da es so meinem RFM Protokoll ähnlich ist und ich vieles davon abgucken kann.

Empfangsbestätigung

  Länge Bytenummer
Daten Typ 1 1
Paketnummer 1 2
Senderadresse 1 3
Checksumme 1 4

Handshake empfangen

  Länge Bytenummer
Daten Typ 1 1
Modul Typ 1 2
Modulname 1-16 3-18
Paketnummer 1 4-19
Senderadresse 1 5-20
Checksumme 1 6-21

Handshake senden

  Länge Bytenummer
Daten Typ 1 1
Adresse 1 2
Modulnamen Länge 1 7
Modulname 1-16 8-15
Paketnummer 1 9-16
Senderadresse 1 10-17
Checksumme 1 11-18

Status anfordern

  Länge Bytenummer
Daten Typ 1 1
Paketnummer 1 2
Senderadresse 1 3
Checksumme 1 4

Status empfangen

  Länge Bytenummer
Daten Typ 1 1
Daten 1-192 2-193
Paketnummer 1 3-194
Senderadresse 1 4-195
Checksumme 1 5-196

Daten

  Länge Bytenummer
Daten Typ 1 1
Daten 1-192 2-193
Paketnummer 1 3-194
Senderadresse 1 4-195
Checksumme 1 5-196

Vorhandene Probleme

Ich habe bei Radig zwar gelesen das das Netzwerkmodul gelegentlich neu startet. Doch bei mir macht er es leider einigemale pro Stunde. Außerdem streikt der Funk noch ziemlcih. Er geht in den ersten paar Sekunden oder Minuten doch dann plötzlich nicht mehr auch der reset des Modules hilft nicht. Erst nachdem man es vom Strom abgezogen hat klappt es wieder für kurze Zeit.

Download

EAGLE Schaltplan & Layout

Download

AtmelStudio Projekt