Hallo ich versuche mich verzweifelt daran, die Software sowie Hardware von Nik-Bramert nach zu bilden. Software und Hardware habe ich aus diesem Thread: http://www.mikrocontroller.net/forum/read-4-343017.html#new Als Controller kommt auch ein ATmega8 zum Einsatz, jedoch mit externem Takt von 12MHz. Dieses habe ich im Source auch angepasst. Ich denke, dass ich Probleme beim SPI habe. Im Anhang ein Screenshot vom Oszi was der "SCK" vom Atmega zum ENC treibt...Ich habe eigentlich einen kontinuirrlichen Takt erwartet...?!? Oder verstehe ich da was falsch?
Hallo, ein kontinuierlicher Takt ist nicht zu erwarten, da der ATmega8 bei einem Voll getaktetem SPI-Bus nicht schafft die Daten nahtlos nachzuliefern. Das ist aber auch nicht schlimm, da der Slave ja die takte verfolgt, und so keine verlieren sollte. Was aber seldsam ausschaut ist der Takt an sich, der ist nicht wirklich rechteckig. Entweder liegt das am Oszi oder du solltest mal die SPI-Leitung überprüfen oder schaun ob der ATmega und der ENC28J60 mit Kondensatoren geblockt sind. Und nicht vergessen, die Selectleitung für den ENC28J60 vom ATmega. Ohne die kann der senden was er will. MfG Dirk
Hi Was genau meinst Du mit geblockt? Beide Controller haben VVC zu GND 100nF. Bei den SPI Leitungen handelt es sich um kurze Drahtbrücken, ca. 10cm Freiluft, was bei der Frequenz allerdings kein Problem sein sollte. Könnte ich die SPI Leitungen gegen VCC ziehen? In meiner Schaltung läuft der ATmega auf 5V, der ENC auf 3,3V. Die SPI Leitungen vom ENC sind aber alle 5V Kompatibel (laut Datenblatt). Der Takt selber schaut mir auch eher nach "Eine Seite geöffnet" aus! Am Oszi selber liegt es nicht, ich habe noch einen externen Takt der den ATmega speist - dieser ist "sauber".
Hallo ich habe auch Probleme mit dem SPI zu einem LCD-Display. Mein Oszi ist nicht besonders gut (altes Hameg), aber ich erkenne zu mindest, das der Takt auch sehr unsauber ist, beziehungsweise rauscht. Ählnich wie bei dem Bild von Hannes. Hat hierzu noch jemand einen Tipp?
Hallo, anbei mal ein Bild wie sowas bei mir mal vor ca 1 Jahr aussah als ich mal test mit spi gemacht habe. gut zu sehen der Takt und die Daten. Das ganze ist mit ca 8MHz SPI-Takt gmacht worden. Habt ihr an die CS-Leitung fuer den ENC28J60 gedacht ?
Wirklich rechteckig ist das aber auch nicht... ;-) die Peaks am Anfang sind aber nicht so ausgeprägt...mmh
:-) eigentlich braucht man sich auch nur das datensignal oben anschaun. das hatt immr noch ca 2MHz und schaut recht sauber aus, und das mit ca 1m messleitung :-) und das unten konnte ich nicht wirklich messen, sonst hätte für meine zwecke damals nicht alles mit rauf gepasst. Aber ich denke mal man sieht was gemeint ist. CA Dirk
>> In meiner Schaltung läuft der ATmega auf 5V, >> der ENC auf 3,3V. Die SPI Leitungen vom ENC >> sind aber alle 5V Kompatibel (laut Datenblatt). Die Eingänge des ENC sind 5V-tolerant. Hast Du einen Level-Shifter von SO (ENC) nach SI (µC)?
Also denn, dort wird ein AND Gatter empfohlen. Ich habe kurzer Hand in das Datenblatt des 74HCT08 geschaut und frage mich nun, ob ich den LevelShifter bisher verstanden habe. Der LevelShifter benötigt 5V VCC und bekommt als Eingang 3,3V - gut, daraus macht er dann 5V (AND beschaltung ist klar). Wenn ich das Ding umgekehrt (5V zu 3,3V) einsetzen möchte, muss ich ein Gatter nutzen, welches für VCC 3,3V vorgesehen ist, oder?
Umgekehrt reicht einfach ein Spannungteiler, möglichst hochohmig. Von 5 -> 3.3V macht der nicht, da die usgänge immer mit voller Betriebsspannung betrieben werden beim 74HCT08. CA
Auch ich betreibe hier einen ENC28J60 mit 3.3 V direkt an einem Atmega mit 5V ohne Levelshifter. Ich habe MISO, MOSI, SCK und Chip-Select 1:1 über normale Drähte verbunden, und es läuft einwandfrei über Stunden (MP3-Webradio, bis 320kbps). Der Atmega32 läuft mit 14.7456 MHz, und der SPI-Speed ist auf das absolute Maximum eingestellt (Clk/2). Auch mit langsameren Clocks funktioniert es (getestet mit Clk/128). Der ENC liefert dafür eine genug hohe Spannung (3.3V bei High). Gemäss Datenblatt von Atmel (Electrical Characteristics) beträgt die Mindestspannung für eine sichere Erkennung des High-Pegels: Zitat: >Input High Voltage except XTAL1 and RESET pins: 0.6 VCC (VCC=2.7 - 5.5). >"Min" means the lowest value where the pin is guaranteed to be read as high Bei 5V sind das also 3V, die 3.3 V liegen klar darüber. Den Levelshifter kann man sich also sparen. @Hannes Reagiert der ENC denn auf einfache Befehle wie Register auslesen? Falls nicht, ist der Pin "SS" am Atmega auf Ausgang geschaltet? Falls nicht, meint der Atmega, er sei ein SPI-Slave. Gruss Christian
Du brauchst beim ENC28J60 den Level-Shifter doch eigentlich nur für die Richtung vom ENC zum Mega8 (SO, INT). Die Eingänge des ENC kommen mit den 5V-Signalen des Mega8 klar.
Den unsauberen SCK habe ich nun eleminiert. Ich bin mir zu 100% sicher, dass es am externen Takt lag, dieser war auch nicht wirklich sauber. Nun habe ich am ATmega einen Quarz-Oszillator mit 8MHz. Die Peaks sind verschwunden. Ein relativ deutlicher Rechteck zeichnet sich ab, Anstiegszeit bei 10ns ist auch im grünen Bereich. Der ENC reagiert meiner Ansicht nach überhaupt nicht. Der Port PB2 (SS) ist als Ausgang geschaltet...
Auch hier die Frage: Bekommst du einen Link wenn du ein RJ45 Kabel in die Buchse steckst(natürlich sollte das andere Ende des Kabels mit einem PC oder einem Switch verbunden sein)? @Chrisg: WebRadio hört sich interessant an. Gibt es irgendwo etwas zu deinem Projekt zu lesen? Sowas wollte ich auch schon immer bauen :-) Grüße
@Hannes Ich würde auch erst mal testen, ob der ENC überhaupt läuft. Die Taktung soll relativ heikel sein: Es wird ein Grundfrequenz-Quarz benötigt. Ich habe mich deshalb für ein fertiges Modul von jelu.se entschieden, welches ich an meine Schaltung gehängt habe. Das Modul hat aber eine Fehlbeschaltung auf Ethernet-Seite, da muss man 2 Drähte vetauschen. Hier im Shop gibt es jetzt ja auch ein entsprechendes Modul. @Patrick Mania Da gibt es nicht viel zu erzählen, ich verwende nur Standardkomponenten. Für den Empfang benutze ich ein ENC-Modul von jelu.se, für den Empfangspuffer ein 128kByte-RAM mit zwei Latches (zum Pin-Sparen), für die Anzeige ein 16x2-LCD, und für die MP3-Dekondierung einen vs1011 auf einer Tochterplatine von jelu.se. Das ENC-Modul ersetzt einen X-Port, mit welchem ich leider nur max. 96kbps (sowie ein paar 128kbps-Stationen) zuverlässig direkt empfangen konnte. Als Stack verwende ich einen modifizierten uip, erweitert um eine einfache Fehlerkorrektur (bei einem Paketverlust werden nachfolgende Pakete nicht einfach weggeworfen, sondern nur das fehlende erneut angefordert). Empfangen kann man damit Shoutcast-Radios (mp3-Streams) von www.shoutcast.com. Das Protokoll ist extrem simpel, man schickt einen speziellen HTTP-Request ähnlich wie bei einer Webseite, und erhält einen MP3-Stream mit Meta-Daten zurück.
@ChrisG: Danke für die Info. Letztendlich ist für mich wirklich die Shoutcast Umsetzung und die Synchronisation zwischen Daten abspielen und Daten empfangen interessant. Grüße
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.