Hallo an alle, ich bin ein Neuling was µC's angeht. Trotzdem habe ich mir direkt ein anspruchsvolles Projekt ausgedacht. Dieses möchte ich vorstellen und hoffe auf die Hilfe des einen oder anderen. Da ich aus der Basic-Entwicklung komme, so habe ich vor dieses Projekt auf der Basis von BASCOM zu entwickeln. Ich denke eine Einarbeitung in C würde länger dauern als das Projekt auf der Basis von Bascom zu realisieren. Nun zum Projekt: ---------------- Das Ziel des Projekt ist es, einen vorhandenen Dopplerpeiler an das Internet anzubinden. So sollen die Daten gesammelt und auf SD-Karte zum Abruf per http bereitgehalten werden. Datenquellen die am Peiler bereitstehen: ---------------------------------------- - 0-5V Peilqualität (0V keine Qualität, 5V gute Qualität) - 0-5V S-Wert (Ein Wert der die Feldstärke des zu peilenden angibt, 0V schlecht - 5V gut) - 0-5V NF-Quelle - 8-Bit parallel (5V) (Peilrichtung 0-255 - umzurechnen in ° [360/255 = 1,41° Auflösung) Ziel: ----- 1) Daten erfassen und speichern ------------------------------- Sobald die Peilqualität über 0V steigt (evnt. 100mV tolleranz) soll folgendes geschehen: - Zeitstempel wird festgehalten - Peilqualität wird festgehalten (durchschnitt einer Sekunde) - S-Wert wird festgehalten (durchschnitt einer Sekunde) - Peilrichtung wird festgehalten (durchschnitt einer Sekunde) - p.g. gesammelte Daten an eine Textdatei anhängen - NF wird über einen Zeitraum von einer Sekunde aufgezeichnet und als zwitstempel.wav auf der SD-Karte gespeichert. Samplingrate 5000Hz/8-Bit 2) Daten per http bereitstellen ------------------------------- - Weboerfläche (Liste aller gesammelten Daten - mit Filterfunktion) - Detailansicht eines Datensatzes mit der Möglichkeit die *.wav abzuspielen Nun habe ich im Internet schon einiges recherchiert, über Multi-Tasking eines µC, Dateisystem etc. etc. Da ich immer wieder irgendwo auf eine Sackgasse stoße, dachte ich mal ich sammle hier ein paar Denkanstöße. Wie würden die Fortgeschrittenen/Profis es machen? Die Hardware ist fest vorgegeben (myEthernet von myAVR) www.myavr.de - 10 Megabit Ethernet mit ENC28J60 von Microchip - ATmega644P 20 MHz mit vorinstalliertem Webserver - IP-Adresse einstellbar (192.168.20.96 = standard) - 64 K FLASH - 4 KByte SRAM - 2 KByte EEPROM - MicroSD-Kartenhalter - Ethernet Buchse mit Übertrager - ISP-Anschluss 10polig - TWI/UART/SPI-Schnittstelle Ich habe dieses Board in einer Kurzschlussreaktion einfach mal gekauft. So, nun hoffe ich auf viele, viele Ideen!! Gruß Kalle
>ich bin ein Neuling was µC's angeht. >So, nun hoffe ich auf viele, viele Ideen!! Fang mal mit einem Kosmos Elektronikbaukasten an. In ungefähr 10 Jahren machst du dich dann mal an dieses (ähem) große Projekt. Und dann auch nicht in Basic sondern in C.
Sorry , aber ich denke dass das in BASCOM wohl kein Zuckerschlecken ist. Empfehle dir auch erst einmal C zu lernen.---
>Ziel: >----- >1) Daten erfassen und speichern >------------------------------- >Sobald die Peilqualität über 0V steigt (evnt. 100mV tolleranz) soll >folgendes geschehen: 1.AD-Wandler-Kanal >- Zeitstempel wird festgehalten Eine Uhr ticken zu lassen ist ziemlich simpel. >- Peilqualität wird festgehalten (durchschnitt einer Sekunde) 2. AD-Wandler-Kanal >- S-Wert wird festgehalten (durchschnitt einer Sekunde) 3. AD-Wandler-Kanal >- Peilrichtung wird festgehalten (durchschnitt einer Sekunde) 4. AD-Wandler-Kanal Jetzt wird es ziemlich anstrengend: >- p.g. gesammelte Daten an eine Textdatei anhängen >- NF wird über einen Zeitraum von einer Sekunde aufgezeichnet und als >zwitstempel.wav auf der SD-Karte gespeichert. Samplingrate 5000Hz/8-Bit Mit einem AVR nicht mal in C zu realisieren. >2) Daten per http bereitstellen >------------------------------- >- Weboerfläche (Liste aller gesammelten Daten - mit Filterfunktion) >- Detailansicht eines Datensatzes mit der Möglichkeit die *.wav >abzuspielen Anzeigen sollte kein Problem sein. Das mit dem WAV solltest du dir erst mal abschminken.
@Bender Ich dachte bei BASCOM an die Zuhilfenahme des AVR-DOS. Ich möchte ja nicht das Rad neu erfinden. Mir sind die Teilschritte eigentlich auch alle klar, also die Aufnahme der Datei, das Ablegen dieser jenigen, das Anhängen von Daten an eine Textdatei. Auch werde ich wohl die HTTP Geschichte umsetzen können. Nur eins, das ist mir noch ein wenig Schleierhaft: Wie bringe ich das alles auf einmal hin, ohne Multitasking? Wie baue ich ein Multitasking auf? @Holger Fang mal mit einem Knigge-Kurs an. In ungefähr 10 Jahren machst du dich dann mal daran hilfreiche Kommentare zu geben ;) PS: Nein, ich erkläre nicht was oder wer Knigge ist.
Hallo Kalle! Lass Dich nicht von holger(gast) ins Boxhorn jagen! Dein Projekt ist sehr anspruchsvoll, aber machbar. Die Anaolog-Daten must Du über den AD-Wandler einlesen, die 8-Bit Daten über eben 8 Pins. Eigentlich kein Ding. Die größten Probleme sehe ich eher im Web-Server und SD-Speicherung. Keine Ahnung, ob es hier für BASCOM entsprechende Libs gibt, die Du nutzen kannst. Das selber zu entwickeln ist allerdings sehr anspruchsvoll. Eventuell schaust Du mal im Robort-Netz (http://www.roboternetz.de), dort sind wohl mehr BASCOM-Vertreter unterwegs. Mich wurde Dein vorhandener Dopplerpeiler interessieren, woher kommt das Teil? Gruß, Michael
@STK500-Besitzer Vielleicht bin ich einfach zu Naiv, aber vielleicht zeigst Du mir meinen Dankfehler auf. Der Aufbau einer *.wav ist ja prinzipiell ziemlich einfach. Ich taste einen 8-Bit AD 5000 mal / s ab, speichere die Daten in einem Array und lege Sie dann in einer Datei ab. Da ich allerdings 5kb Daten produziere, muss ich die Daten "segmetiert" speichern, oder SRAM erweitern (was sich bei meinem Kauf als nicht leicht bezeichnet). Habe ich einen Denkfehler?
@Micha Der Dopplerpeiler ist fix und fertig, gebaut durch einen Funkamateur und Freund. Guckst Du: http://www.peilgruppe-kalmit.de (Technik) Das Sammeln der Daten ist ja eigentlich das einfachste an der ganzen Sache. Bei der SD-Geschichte hilft (der Overhead - ich weiss) AVR-DOS. Es gibt LIB's für BASCOM, daher möchte ich es ja in BASCOM realisieren. Auch für den TCP/IP Stack gibt es LIBS. Ich muss nur lernen wie ich das alles unter einen Hut bekomme. Wer erklärt mir den Ablauf gleichzeitig laufender Timer, was passiert dadrin wenn ich mehrere IRQ's am laufen habe??
> Jetzt wird es ziemlich anstrengend: ack >>- p.g. gesammelte Daten an eine Textdatei anhängen >>- NF wird über einen Zeitraum von einer Sekunde aufgezeichnet und als >>zwitstempel.wav auf der SD-Karte gespeichert. Samplingrate 5000Hz/8-Bit > > Mit einem AVR nicht mal in C zu realisieren. na ja so ganz unrealistisch ist es nicht: http://www.atmel.com/dyn/resources/prod_documents/doc1456.pdf (schaffen zwar auch nur 4000 Hz, und auf einen Dataflash ohne Filesystem aber immerhin) Bei 20 MHz hast 4000 Instructions/Sample da könnte sogar das mit dem FS noch klappen. > >>2) Daten per http bereitstellen >>------------------------------- >>- Weboerfläche (Liste aller gesammelten Daten - mit Filterfunktion) >>- Detailansicht eines Datensatzes mit der Möglichkeit die *.wav >>abzuspielen > > Anzeigen sollte kein Problem sein. Das mit dem WAV solltest du dir erst > mal abschminken. s.O. Wenn man damit leben kann, dass das System beim Aufzeichnen der WAV-Datei (nahezu) voll ausgelastet ist könnte es klappen (aber nicht in Bascom) Gruß Roland
>Der Aufbau einer *.wav ist ja prinzipiell ziemlich einfach. Ich taste >einen 8-Bit AD 5000 mal / s ab, speichere die Daten in einem Array und >lege Sie dann in einer Datei ab. >Da ich allerdings 5kb Daten produziere, muss ich die Daten "segmetiert" >speichern, oder SRAM erweitern (was sich bei meinem Kauf als nicht >leicht bezeichnet). >Habe ich einen Denkfehler? Das nicht, aber ich befürchte, dass das, was du da vor hast, einen AVR nicht u.U. etwas überfordert. Ich würde die Aufgabe in einzelne Teile unterteilen (bei mir läge die AVW-Erzeugung im Feld der niedrigeren Prioritäten). Als Einstieg in die Mikrocontroller-Programmierung ist das Projekt etwas umfangreich. Ich würde erst mal mit AD-Wandlern etc. Erfahrungen sammeln, und dann immer etwas weiter gehen. Ich will dir auf keinen Fall den Wind aus den Segeln nehmen, aber wenn man mit kleinen Sachen anfängt, sind die Erfolgserlebnisse irgendwie auch schön...
>PS: Nein, ich erkläre nicht was oder wer Knigge ist. Brauchst du auch nicht. >- NF wird über einen Zeitraum von einer Sekunde aufgezeichnet und als >zwitstempel.wav auf der SD-Karte gespeichert. Samplingrate 5000Hz/8-Bit Da haben sich schon ganz andere die Zähne dran ausgebissen. Diese kleinen SD Dinger treten dir unglaublich fest in den Ar.... Der ATMega644 hat nicht genug RAM um die Problemchen zu lösen.
@Holger Freut mich, dass Du nun hilfreiches zu sagen hast. Das mit dem Speicher habe ich schon bemerkt, leider nach dem Kauf des Boards. Mittlerweile habe ich andere Boards mit SRAM-Erweiterungen gefunden :( Nunja, da wir alles Elekronikbastler sind, kennen wir es alle mit dem auszukommen das wir haben. Daher hatte ich die Überlegung den Speicher alle 125ms oder so zu entleeren. Wie gesagt, dazu habe ich noch zu wenig Ahnung was Multitasking angeht. Wenn ich einen Timer alle 125ms sage er soll die Variable1 nach SD entleeren und derweilen der Main beibringe eine andere zu füllen. Wird das nicht funktionieren??
@STK500-Besitzer Prinzipiell will ich Dir auf jeden Fall recht geben was Du sagst, es ist ein großes Projekt. Ich will das ja auch nich tkleinreden. Auch möchte ich an dieser Stelle bemerken das dieses Projekt nicht unter Zeitdruck steht. Es hat alle Zeit der Welt. Ich möchte nur, bevor ich anfange, die Rahmenbedingungen abklären. Hat ja keinen Sinn dass ich mich mit BASCOM beschäftige, wenn ich hier eindeutig zu lesen bekomme, dass es aus diesem und jenem Grund in BASCOM nicht zu realisieren ist. Was AD-Wandler angeht, so habe ich schon damit gespielt. Auch habe ich schon Timer berrechnet und laufen lassen. Es haben schon Lautsprecher getikkt, LED's geblinkt, LED's sind per PWM gedimmt worden und und und.... Nun soll mein erstes Projekt her, dass auch einen Sinn hat.
Hallo K. Warum muß es denn unbedingt durch einen Mikrocontroller veröffentlicht werden? Leistungsfähige, kleine und stromsparende PCs gibt es doch wie Sand am Meer. mfg, Stefan.
Das MyAVR Board gefällt mir im Detail nicht. Als Einsteiger Spielwiese bestimmt nicht schlecht, so richtig durchdachtes Layout hat das Teil aber meiner Meinung nach nicht. Der ATmega1284P könnte was für Dich sein. Ist zwar auch nicht schneller, hat aber mit 16 KB deutlich mehr SRAM. Der ist zwar noch nicht erhältlich aber da der Pin-kompatibel mit dem Mega644 ist kannst Du erstmal sehen, wie weit Du mit dem M644 überhaupt kommst. Gegen Probleme mit dem ADC hilft, einen externen Wandler einzusetzen, angebunden per SPI. Wenn der Controller in dem Moment nichts anderes als Daten schaufeln soll kann man das auch mit 2,5 MHz auf dem SPI machen. Und solange Du den Speicher nicht dafür hast, eben nur 1/4 Sekunde oder so die NF wandeln.
@Stefan May Hätte ich diesen Beitrag gelesen, so wäre Deine Frage wahrscheinlich auch meine erste gewesen. Es gibt eigentlich keine zwingenden Gründe, außer: - Der PC braucht doch schon viel Strom - Es wäre zu einfach :) - Ich würde nichts neues dazulernen. Ein wenig COM-Programmierung, ein kleiner Atmel zum weiterreichen der Daten an UART/Max232, Aufnahme über die Soundkarte, das ist alles nichts neues.
ok, wenn Du Dir unbedingt in den Fuß schießen musst.... :-)
@Rudolph R. Schön dass es einen PIN-Kompatiblen µC geben wird der mehr Speicher hat. Dann ist das Problem mit dem einbinden externen SRAM schon erledigt und ich komme im Prinzip mit dem Board weiter. Was genau gefällt Dir an diesem Board nicht? Was kann man im Nachhinein daran verbessern? Oder gefällt Dir die komplette Architektur nicht?
@Stefan May Ich stehe auf Schmerzen g Mal im Ernst. Wenn ich mich nicht fordere, dann lerne ich nichts. Wenn ich mich überfordere, dann lerne ich schnell. Wenn das Projekt nicht so zum Abschluß kommt wie von mir als Ziel gesetzt, es aber trotzdem seinen Zweck erfüllt, dann bin ich schon zufrieden. Mir geht es wirklich nicht darum, die Peildaten im Internet haben zu müssen. Mir geht es darum, was zu lernen. Ich habe mich seit Jahren nicht im Hardwarebereich bewegt, mein letzter Kontakt zur digitalen Hardware war noch zu TTL-Zeiten. AND, NAND, OR, XOR, FLIPFLOP etc. g Wird Zeit dass da was neues in mein Hirn kommt.
K. Erlenwein wrote:
> Was genau gefällt Dir an diesem Board nicht?
Hmm, verguckt, Du hast ja das myEthernet.
Das Layout von der MyAVR Hauptplatine fand ich nicht so gut.
Für das myEthernet finde ich auf der MyAVR Seite garnicht genug
Dokumentation um zu sagen, ob mir das gefällt oder nicht.
Nicht mal ein Bild von der Unterseite.
Einen Schaltplan schonmal garnicht.
Der Controller ist also in SMD und bei der Grösse der Platine vielleicht
gar als MLF-Version - die muss man erstmal löten können.
Von der Beschreibung find ich das Ding ja ganz witzig.
Ein Minimal Web-Server mit per SD-Karte bis 2 GB Speicher.
Vor allem schon mit passender Software.
Oh ja, die Software, die müsste man auch erstmal bekommen und auf den
Mega1284 anpassen können.
Dann habe ich überlegt, wenn ich das bei mir ins Netz hänge, so als
Web-Server für meine Projekte, meine DSL1000 Leitung ist sofort platt
wenn auch nur einer versucht, dass Ding von Aussen zu erreichen.
Was natürlich auch für jeden anderen Web-Server gilt.
> Für das myEthernet finde ich auf der MyAVR Seite garnicht genug > Dokumentation um zu sagen, ob mir das gefällt oder nicht. > > Nicht mal ein Bild von der Unterseite. > Einen Schaltplan schonmal garnicht. Hier ist die Unterseite und ein wenig Beschreibung, falls Dich das Modul interessiert. http://www.myavr.info/download/techb_myethernet_kurz.pdf > Der Controller ist also in SMD und bei der Grösse der Platine vielleicht > gar als MLF-Version - die muss man erstmal löten können. Nö, kann ich nicht :) > Von der Beschreibung find ich das Ding ja ganz witzig. > Ein Minimal Web-Server mit per SD-Karte bis 2 GB Speicher. > Vor allem schon mit passender Software. > > Oh ja, die Software, die müsste man auch erstmal bekommen und auf den > Mega1284 anpassen können. Auf die mitgelieferte Software möchte ich ja bewußt verzichten, denn die ist nicht so anpasungsfähig wie ich es bräuchte. Also weg damit :) > Dann habe ich überlegt, wenn ich das bei mir ins Netz hänge, so als > Web-Server für meine Projekte, meine DSL1000 Leitung ist sofort platt > wenn auch nur einer versucht, dass Ding von Aussen zu erreichen. Ach was, Du hast einen Upload von (128kbit/s???), da kannst Du einige HTML-Seiten übertragen bis die Leitung zu ist.
K. Erlenwein wrote: >> Für das myEthernet finde ich auf der MyAVR Seite garnicht genug >> Dokumentation um zu sagen, ob mir das gefällt oder nicht. >> >> Nicht mal ein Bild von der Unterseite. >> Einen Schaltplan schonmal garnicht. > > Hier ist die Unterseite und ein wenig Beschreibung, falls Dich das Modul > interessiert. http://www.myavr.info/download/techb_myethernet_kurz.pdf Man sieht nur die Oberseite und die Doku ist sehr dünn. :-) >> Der Controller ist also in SMD und bei der Grösse der Platine vielleicht >> gar als MLF-Version - die muss man erstmal löten können. > > Nö, kann ich nicht :) Fragen wir mal anders, hat der Mega644 auf dem Teil Pins? Oder nur metallische Stummel? >> Oh ja, die Software, die müsste man auch erstmal bekommen und auf den >> Mega1284 anpassen können. > > Auf die mitgelieferte Software möchte ich ja bewußt verzichten, denn die > ist nicht so anpasungsfähig wie ich es bräuchte. Also weg damit :) Okay, auch ein Weg. :-) >> Dann habe ich überlegt, wenn ich das bei mir ins Netz hänge, so als >> Web-Server für meine Projekte, meine DSL1000 Leitung ist sofort platt >> wenn auch nur einer versucht, dass Ding von Aussen zu erreichen. > > Ach was, Du hast einen Upload von (128kbit/s???), da kannst Du einige > HTML-Seiten übertragen bis die Leitung zu ist. Ja nee, ein wenig Grafik darf es dann auch sein. Und "mal eben" 200 KB kommen als Archiv ja leicht zusammen. Was nützen die bis zu 2 GB Speicher wenn man nicht einmal 1 MB anbieten kann? Und vor allem nicht mal mehr als einem User gleichzeitig? Für eine Anwendung im LAN wäre das was. So keine Ahnung, Haus-Vernetzung halt. So im Sinne, schauen wir doch mal nach, wie es der Solar-Anlage geht. Aber WAN mit DSL1000 geht garnicht.
> Fragen wir mal anders, hat der Mega644 auf dem Teil Pins?
Oder nur metallische Stummel?
Keine Ahnung, ist noch nicht geliefert. Ich sags Dir wenn es da ist.
Vielleicht ist dann auch eine Doku dabei. Bekommst dann auch Bilder von
beiden Seiten :)
Ja, so richtig als Webserver taugt das Teil nichts, zumal es nicht
einfach sein würde auch dynamische Inhalte anzubieten.
Für mein Projekt allerdings sollte die Bandbreite kein Problem sein,
denn mein WebServer im Internet bekommt einfach ein Skript in der
Crontab verpasst, dass jede Minute die neusten Updates zieht. Per
http-request soll es dann den µC dazu veranlassen die
"heruntergeladenen" Deteien zu löschen, bzw, die txt-Datei zu leeren.
Warum das ganze? Nun, ein Peiler macht wenig Sinn zum peilen. Man muss
mehrere vernetzen, erst dann wirds was mit der Kreuzpeilung. Wenn also
ein Peiler im Internet ist, dann ist der zweite nicht weit.
Dann kommt der eigentliche Teil. Eine Vektorisierte Karte (Süddeutscher
Raum) dient dann als Grundlage für die Peillinien. Aber das macht dann
alles schön der "richtige" Webserver.
Gruß
Kalle
Wegen der Sound-Geschichte könntest du dir mal folgende Seiten ansehen: http://elm-chan.org/works/vp/report.html bzw: Beitrag "2MB DRAM an AVR" (oder auch die AVR335 die ich weiter oben schon mal erwähnt hab) Den Sound-Teil könntest du dann in einen extra Controller auslagern und diesen mit UART/SPI ansprechen. Vorteil: - Du hast mehr Ressourcen - brauchst dir schon mal weniger Gedanken über Multitasking machen - das Projekt ist warbarer (letzteres für dich als Anfäger wichtig, weil du auch schneller zum Erfolg kommst) Nachteil: - zweiter Controller erforderlich - erhöhter Platzverbrauch - Kommunikationsprotokoll Im Prinzip brauchst du als Kommunikationsprotokoll nur Start/stop/replay an den Chip senden und anschließend die Daten abholen. Der Haupt-AVR kann sie dann gemütlich auf die SD-Karte schreiben. UART- Kommunikationsprotokoll könnte wie folgt aussehen: ( > = zum Sound AVR, < = vom Sound AVR ) > REC < OK > STOP < OK, 123456 Bytes > GET 0, 256 < OK 256 Bytes < .... 256 Byte Sounddaten // die nächsten 256 Bytes holen > GET 256, 256 < OK 256 Bytes < ... > GET 512, 256 ... usw UART hat den Vorteil, dass du es relativ einfach am PC debuggen kannt (mit Hyperterm & co.) Das Protokoll kann man natürlich noch 'maschineller' gestalten, so dass man keine Strings parsen muss. Gruß Roland
Hallo Roland, danke für Deinen Denkanstoß. Ich finde die Idee mit zwei Controllern ganz gut, auch wenn ich damit meine bisherigen Hardwarepläne ganz oder zumindest teilweise über den Haufen werfe. Was mir nicht gefällt ist die Kopplung beider AVR's. D.h. nicht wenn es auch einfacher gehen würde. Daher erschließt sich bei mir die Frage nach der Kopplung über ein Dual-RAM. Habe ich dann mein Leben nicht einfacher? Ich müsste nur mit dem "Samplingcontroller" die Daten in ein Dual-RAM schreiben, dem "SD-WEB-Controller" mitteilen dass nun Daten verfügbar sind, diese einlesen und auf SD schreiben. Ich habe kein Programmieraufwand was UART angeht, ich kann keine Fehler einbauen, das Programm wird kleiner und meine Faulheit würde mehr unterstützt :) Würde das so funktionieren? Bekommt man bei Reichelt & CO. solche Dual-RAM Speicher? Hast Du oder jemand anderes eine Bezeichnung? Sollte halt min. 8kbyte Daten aufnehmen können...
Eine Alternative zum SD-Flash wäre vielleicht das USB-Stick-Interface mit Vinculum-Prozessor, z.B. von ELV: http://www.elv.de/output/controller.aspx?cid=74&detail=10&detail2=20659 der brauct nur eine serielle Schnittstelle, um USB und das Dateisystem kümmert sich der Vinculum. PS: Der erste Dopplerpeiler der Kalmit-Gruppe war eine Spende von mir, ich hatte den Bausatz aus Bayern halb aufgebaut und dann das Interesse verloren.
Der Webserver kommt mit zwei Anschlussleisten die alle Pins nach aussen legen. Die sind allerdings nur noch nicht angelötet. Printzipiell kannst Du den myEthernet benutzen. Solltest aber beachten, dass Du SPI nicht verwenden kannst, da damit die Ethernetschnittstelle angesprochen wird. Der große Vorteil ist, dass die MicroSD bereits integriert ist. Mein Vorschlag wäre: Benutze die TinyFATFS von KhanN. Ich habe die bereits als Serial-Datalogger auf einem Atmega32 laufen. Beachte, dass Du nur eine Datei zur gleichen Zeit geöffnet hast. (Sonst solltest Du das FATFS nehmen und ziemlich genau auf Deinen Speicher achten). Die Daten, die Du einlesen willst, sind nicht viel und 5k Abtastrate auch nicht. Du würdest das auch locker mit einem uC schaffen, obwohl die Idee mit dem Zweiten durchaus Charme hat.... Für die Programmierung selbst: Hier gibt es ein sehr (!!) gutes AVR - Tutorial, dass nicht nur für Anfänger geeignet ist. Das solltest Du Dir mal zu Gemüte führen. Dann werden einige Deiner Fragen beantwortet werden. Ich habe bereits einige präemtive Multitasking realisiert, aber Echtes bekommst Du nur mit einem zweiten uC - ist aber nicht notwendig! Den "Sound" solltest Du Dir mit einem Spannungsteiler und einer ZDiode (5V) auf einen Analogeingang legen. Dann kannst Du ihn direkt abtasten. Dann kannst Du Dir einen Interrupt zeitgesteuert triggern lassen und den aktuellen Messwert in einem Buffer speichern. Wenn dieser Buffer einen definierten Füllstand erreicht hat (zB. 256 byte), schreibst Du ihn in Deine Datei auf der SD. Gruß, Herold
@Herold Danke für Deinen Beitrag. Du schreibst: >Wenn dieser Buffer einen >definierten Füllstand erreicht hat (zB. 256 byte), schreibst Du ihn in >Deine Datei auf der SD. Wie sammle ich dann meine Daten weiter? Ich muss dann quasi einen zweiten Buffer bilden, mit Daten füllen, entleeren und dann wieder den ersten. Schafft der Prozessor diese Aufgaben auf einmal? Ich taste mit 5k ab (notfalls tuen es auch 4k). Ich müsste also dazwischen genug Zeit haben, oder? Ich werde mir das Tutorial nun mal anschauen... Gruß Kalle
Hallo Kalle, Melde Dich mal über die Kalmit. Gruß
Rudolph R. wrote: > Ja nee, ein wenig Grafik darf es dann auch sein. > Und "mal eben" 200 KB kommen als Archiv ja leicht zusammen. > > Was nützen die bis zu 2 GB Speicher wenn man nicht einmal 1 MB anbieten > kann? > Und vor allem nicht mal mehr als einem User gleichzeitig? PRUST! Für das Aufrufen der 200KiB Seite, wirst du, bei dem, was der Controller derzeit zu tun hat, LOCKER eine Minute auf das Ende der Übertragung warten. Und das ist NICHT übertrieben. Achja, guter Thread. Allerdings fehlt mir gerade das Popcorn. Übrigens: Der Speicher wird nicht im geringsten reichen. Die 16KiB von dem vorgeschlagenen Mega1280 werden vielleicht gerade so reichen. Aber es ist ja auch immer noch unklar, wie du den aufs myEthernet Board kriegen willst. Dual RAM Speicher sind übrigens, soweit ich weiß, ziemlich teuer und ziemlich schwer beschaffbar.
Ich habe nun, um es einfach mal zu visualisieren, ein Flußdiagramm gemacht. Ich bitte um Kommentare, ob es so funktioniert, ob nicht, warum nicht, was anders sein muss etc. etc. Im Anhang das Diagramm. (Darauf sieht es so leicht aus :) Gruß Kalle
Ist denn ein Webserver mit HTTP wirklich notwendig? Wenn du so und so einen "richtigen" Webserver hast, der die Daten abfragen soll, kannst du vielleicht den kleinen entlasten. Implementiere ein einfaches auf UDP basierendes Protokoll. Die Aufbereitung der Daten scheint ja dann von dem richtigen Webserver aus zu geschehen. Ich denke, dann wird es wahrscheinlich einfacher. Schwierig stelle ich mir vor, wenn in dem Moment, in dem die SD-Karte gelesen werden soll, dein Zwischenspeicher zum Schreiben voll ist. Die meisten einfachen SD-Karten-Libs unterstützen immer nur eine geöffnete Datei. Steffen.
K. Erlenwein wrote: > Ich habe nun, um es einfach mal zu visualisieren, ein Flußdiagramm > gemacht. > > Ich bitte um Kommentare, ob es so funktioniert, ob nicht, warum nicht, > was anders sein muss etc. etc. So einfach funktioniert das nicht. Du kannst nicht einfach die Daten von der SD Karte herausschicken, sobald eine GET Anfrage reinkommt. Bis überhaupt die GET Anfrage ankommt müssen erst einmal andere Protokoll implementiert werden, die völlig fehlen. Des weiteren wird bei einer TCP/IP Verbindung in der Regel auf die Bestätigung eines Paketes von der Gegenstelle gewartet. Das ist ja alles bei dir gar nicht vorgesehen. Vermutlich mangels Erfahrung mit Netzwerktechnik. Sorry, aber ich wäre sogar beleidigt, wenn du mal eben einen Webserver als Laie einbaust, der deine TXT Datei über TCP/IP streamt. Ich hab, bis bei mir überhaupt was ging, locker 5 Jahre das übliche Lauflicht und andere Anfängerprojekte gebastelt.
Nun, ich wäre an Deiner Stelle auch beleidigt wenn mir das von Grundauf gelingen würde. Deshalb habe ich mich eben für Bascom entschieden. Dort gibt es LIBS die mir diese mühsehlige Arbeit abnehmen. Warum denn auch das Rad immer neu erfinden? Es gibt da zum Beispiel AVR-DOS mit einer dazugehörigen LIB MMC. Wie in alten Basiczeiten kann ich damit eine Datei öffnen, lesen, schreiben, anhängen,... sogar ein Binärmodus ist implementiert. Was die TCP-IP verbindung angeht, so gibt es auch dafür LIBS. Ich halte mich für absolut unfähig das alles selbst zu programmieren, doch das ist vielleicht auch nicht nötig. Schauen wir mal wie es endet.. Der Amfang wird wohl erstmal sein die Daten zu sammeln und abzulegen. Dann werde ich weitersehen...
K. Erlenwein wrote: > Nun, ich wäre an Deiner Stelle auch beleidigt wenn mir das von Grundauf > gelingen würde. > > Deshalb habe ich mich eben für Bascom entschieden. Dort gibt es LIBS die > mir diese mühsehlige Arbeit abnehmen. Warum denn auch das Rad immer neu > erfinden? Wie du diesem Thread bereits entnehmen kannst, dürfte Bascom (erst recht mit diesem AVR-DOS Schrott) für dich allein geschwindigkeitstechnisch schon völlig flachfallen. > Was die TCP-IP verbindung angeht, so gibt es auch dafür LIBS. Keine Ahnung, wie die "LIB" implementiert ist, aber auf einem AVR wirst du trotzdem noch die von mir genannten Probleme haben.
Würde mich ehrlich gesagt wundern wenn die nicht kommen :) Aber ich denke dass ich hier ganz gut aufgehoben bin, wenn ich ein Problem habe.
Simon K. wrote: > PRUST! Für das Aufrufen der 200KiB Seite, wirst du, bei dem, was der > Controller derzeit zu tun hat, LOCKER eine Minute auf das Ende der > Übertragung warten. > Und das ist NICHT übertrieben. Warum schreibst Du mir das, bzw. zitierst mich dazu? Ich habe bloss laut über die "bestimmungs-gemässe" Verwendung von dem Board nachgedacht, doch nur geschrieben, warum ich das für meine Anwendung alleine als Web-Server als nicht brauchbar erachte. Der Ethernet-Overhead ist sicherlich nicht ohne aber ich glaube, 100 KiB/s sollten drin sein, wenn das Ding eben nichts anderes macht. Nur mit DSL1000 ist bei <16 KiB/s Ende im Gelände und die Leitung dicht. > Übrigens: Der Speicher wird nicht im geringsten reichen. Die 16KiB von > dem vorgeschlagenen Mega1280 werden vielleicht gerade so reichen. Mega1284P. Und warum sollte das nicht reichen, wenn doch für den Web-Server jetzt 4KiB offenbar ausreichend sind? > Aber es ist ja auch immer noch unklar, wie du den aufs myEthernet Board > kriegen willst. Das sollte ihn nicht sofort von seinem Vorhaben abbringen. Aufgegeben kann man immer noch, nachdem man was gelernt hat.
Rudolph R. wrote: > Simon K. wrote: >> PRUST! Für das Aufrufen der 200KiB Seite, wirst du, bei dem, was der >> Controller derzeit zu tun hat, LOCKER eine Minute auf das Ende der >> Übertragung warten. >> Und das ist NICHT übertrieben. > > Warum schreibst Du mir das, bzw. zitierst mich dazu? > Ich habe bloss laut über die "bestimmungs-gemässe" Verwendung von dem > Board nachgedacht, doch nur geschrieben, warum ich das für *meine* > Anwendung alleine als Web-Server als nicht brauchbar erachte. Weiß ich auch nicht mehr. War wohl ein Versehen in meiner Rage ;) > Der Ethernet-Overhead ist sicherlich nicht ohne aber ich glaube, 100 > KiB/s sollten drin sein, wenn das Ding eben nichts anderes macht. Leider nicht. Die Mikro-Stacks für kleine AVR Prozessoren haben idR nur einen großen Paketbuffer und unterstützen (so ohne weiteres) auch nur ein maximales ausstehendes Paket gleichzeitig. Ohne Tricks kommt man nicht auf mehr als vielleicht 5-6 kiB (je nach Paketgröße) bei Windows Clients dank der Delayed ACK Funktionalität. Der TCP/IP Client von Linux funktioniert schon besser. Aber 100KiB/s finde ich nicht so realistisch. Außerdem hat der Prozessor dabei ja noch ne Menge zu tun. Zum Beispiel ständig Daten wegspeichern auf die SD Karte und wieder abrufen. > Nur mit DSL1000 ist bei <16 KiB/s Ende im Gelände und die Leitung dicht. Schon. Aber die Bandbreite vom Mikroprozessor macht wahrscheinlich schon eher dicht (siehe oben). >> Übrigens: Der Speicher wird nicht im geringsten reichen. Die 16KiB von >> dem vorgeschlagenen Mega1280 werden vielleicht gerade so reichen. > > Mega1284P. Ups, ja den meine ich. > Und warum sollte das nicht reichen, wenn doch für den Web-Server jetzt > 4KiB offenbar ausreichend sind? Weil zu dem Webserver ja unter Umständen auch noch ein Dateisystem, wenigstens ein SD-Karten Puffer kommen muss. Und die Analogwerte müssen mit Zeitstempel auch irgendwo zwischengespeichert werden. >> Aber es ist ja auch immer noch unklar, wie du den aufs myEthernet Board >> kriegen willst. > > Das sollte ihn nicht sofort von seinem Vorhaben abbringen. > > Aufgegeben kann man immer noch, nachdem man was gelernt hat. Na dann. Hoffentlich hat sich das Geld dann gelohnt ;)
>> Und warum sollte das nicht reichen, wenn doch für den Web-Server jetzt >> 4KiB offenbar ausreichend sind? >Weil zu dem Webserver ja unter Umständen auch noch ein Dateisystem, >wenigstens ein SD-Karten Puffer kommen muss. Und die Analogwerte müssen >mit Zeitstempel auch irgendwo zwischengespeichert werden. Und weil ENC und SD Karte am selben SPI hängen und die Datenübertragung nicht beliebig durch ein Multitaskingsystem unterbrochen werden darf? War schon interessant hier mitzulesen.
Simon K. wrote: > Rudolph R. wrote: >> Der Ethernet-Overhead ist sicherlich nicht ohne aber ich glaube, 100 >> KiB/s sollten drin sein, wenn das Ding eben nichts anderes macht. > > Leider nicht. Die Mikro-Stacks für kleine AVR Prozessoren haben idR nur > einen großen Paketbuffer und unterstützen (so ohne weiteres) auch nur > ein maximales ausstehendes Paket gleichzeitig. Ohne Tricks kommt man > nicht auf mehr als vielleicht 5-6 kiB (je nach Paketgröße) bei Windows > Clients dank der Delayed ACK Funktionalität. > Der TCP/IP Client von Linux funktioniert schon besser. Aber 100KiB/s > finde ich nicht so realistisch. Bei der Menge an Projekten mit dem ENC28J60 finde ich es seltsam, dass ich da nirgends Erfahrungswerte bezüglich der Geschwindigkeit entdecken konnte. Der Server der von Ulrich Radig per DynDNS zu erreichen ist macht schonmal einen ganz witzigen Eindruck. :-) > Außerdem hat der Prozessor dabei ja noch > ne Menge zu tun. Zum Beispiel ständig Daten wegspeichern auf die SD > Karte und wieder abrufen. Wieso wegspeichern? Wie gesagt, erstmal die reine Anwendung als Web-Server betrachtet. Mit 5 MHz auf dem SPI kann man auf der SD-Karte schon ein wenig Schub geben. >> Und warum sollte das nicht reichen, wenn doch für den Web-Server jetzt >> 4KiB offenbar ausreichend sind? > Weil zu dem Webserver ja unter Umständen auch noch ein Dateisystem, > wenigstens ein SD-Karten Puffer kommen muss. Und die Analogwerte müssen > mit Zeitstempel auch irgendwo zwischengespeichert werden. Ja eben nicht, das myEthernet Board kommt komplett mit Software als Web-Server auf dem Mega644P. Inklusive FAT bis 2GB. Mit dem Mega1284P hätte man dann 12 KiB zusätzlich zur Verfügung. Und halt nochmal 64 KiB FLASH. Wobei die Software auf dem myEthernet jetzt wahrscheinlich eher nicht in Bascom programmiert ist. >> Aufgegeben kann man immer noch, nachdem man was gelernt hat. > Na dann. Hoffentlich hat sich das Geld dann gelohnt ;) Tut es das nicht immer? Die "WebCam" die ich gerade bei Pollin mitbestellt habe und die nicht wirklich mit XP funktioniert wird auch im wesentlichen im gelben Sack verschwinden. Das waren dann zwei Batterien, ein micro-USB Kabel, ein Piezeo-Pieper und so weiter für ein paar Euro. :-)
>Mit 5 MHz auf dem SPI kann man auf der SD-Karte schon ein wenig Schub >geben. Völlig falsche Vorstellung. Man kann auch mit 8MHz SPI Daten in die SD takten. Kein Problem. Auch mit 25MHz. Wenn da diese blöden Busy Zeiten beim schreiben nicht wären. SD Karten sind keine schnellen Datenspeicher. Schminkt euch das endlich mal ab!
Lesen, ich war beim Lesen. In der vorgesehenen Anwendung des myEthernet als Web-Server. Um auf die hier angepeilte Anwendung zurückzukommen. Gleichzeitig das Web zu bedienen, Daten einzulesen und auf die SD-Karte zu schreiben dürfte nicht drin sein. Dann ist das Web-Frontend halt immer mal wieder für ein paar Sekunden tot solange die Daten erfasst und auf der Karte aktualisiert werden. Darf halt nur nicht sein, dass der Web-Server 56 Sekunden pro Minute nicht erreichbar ist. Und wenn gerade was ausgeliefert wird, kann eben auch gerade nicht mehr erfasst werden. Ach ja, ein DCF-77 Modul für den Zeitstempel wäre sicher auch noch nett.
>Ach ja, ein DCF-77 Modul für den Zeitstempel wäre sicher auch noch nett.
Wenn das Ding schon am Netz hängt ist ja wohl auch ein Timeserver
ausreichend.
>Lesen, ich war beim Lesen. >In der vorgesehenen Anwendung des myEthernet als Web-Server. SD Karten sind übrigends auch beim lesen nicht alle gleich schnell. Auch dann nicht wenn man sie mit gleichem SPI Takt bearbeitet ;)
holger wrote: > SD Karten sind übrigends auch beim lesen nicht alle gleich schnell. > Auch dann nicht wenn man sie mit gleichem SPI Takt bearbeitet ;) Und was bekommt man so am unteren Ende? 300 KiB/s bei 5 MHz SPI?
>Und was bekommt man so am unteren Ende? >300 KiB/s bei 5 MHz SPI? Bei 8MHz SPI ist das so das Mittelfeld.
Hi, mir war nicht klar was für eine Disskusionsrunde ich hier ausgelöst habe :) In meinem ersten Posting schreibe ich was über Ziele und bitte um Hilfe wie ich dieses erreichen kann. Auf jeden Fall habe ich (ohne Kosten) hier schon was lernen dürfen. Ich habe Denkanstöße bekommen, habe Fehler in meiner Denkweiße erklärt bekommen. Das ist doch schon einmal ein Anfang... Was den Webserver angeht. Fände er auch nicht schlimm wenn ich alle paar Minuten in einen "Übertragungsmodus" umschwenke. In diesem Modus wird ganz einfach das eigentliche "Peilen" ausgesetzt, um Resouurcen zu sparen und doppeltes Schreiben auf die SD zu vermeiden. Ich sende dann einen http-request an den "richtigen" Webserverm der dann so nett ist und mir die Daten von meinem myEthernet downladed. ODER Es werden halt doch mehrere AVR's genutzt. Wobei ich mir über die Kopplung noch nicht klar bin. Mir gefällt die Dual-Ram Idee, da ich ja sowieso noch RAM brauche. Ich kann nur leider nirgendwo einen Baustein dafür finden. Jemand eine Idee?
Dual Port RAM http://download.cypress.com.edgesuite.net/design_resources/datasheets/contents/cyd09s18v18_8.pdf Gruß
okay, nach eingehender, genauer recherche (kurzes überfliegen der pdf) muss ich feststellen.... .... ich lasse das mit dem dualram g
Liebe Funkamateure, liebe Elektronikbastler. was ist mit der Eigenposition des Peilers? Sollte man die nicht auch übermitteln? Würde Sinn machen, oder? Gruß Rudi
Hallo Rudi, da ich zunächst davon ausgegangen bin, dass der Peiler an einem festen Standort steht, dachte ich noch nicht daran. Allerdings könnte man den Peiler auch mobil einsetzen, dann macht es wieder Sinn. Wir leben ja im Zeitalter von web'n'walk :) Idee ist also gut, allerdings vielleicht IRGENDWANN mal. Man müsste ja dann einen GPS-Empfänger mit einbinden. Wie Du aber hier lesen kannst, habe ich sowieso mit vielzuviel Problemem zu kämpfen. Die Resourcen sind ja auch noch nicht klar... ... aber danke für die Idee!
Kalmit das Relais meines Vertrauens.
@!!!!!! vielleicht solltest Du Dich mal outen,.. wer bist Du???
Hallo an alle, die sich im vorletzten Jahr für dieses Thema interessiert haben, das Thema hatte in den letzten beiden Jahren aus Zeitmangel geruht. Nun hatte ich es im April wieder aufgegriffen. Ein Peiler ist nun tatsächlich am Netz und gibt seine Daten LIVE aus. Überwacht wird die Relaisstelle Kalmit DB0XK in der Pfalz. Noch ist ein PC mit der Übermittlung der Daten ins Internet beschäftigt. Um alle o.g. Probleme zu übergehen, wird künftig kein kleiner AM8 die Sache lösen, sondern ein AVR32 Board mit dem Grasshopper. Für alle, die sich für das Thema interessieren: http://www.live-peiler.de Zugänge werden nur bei berechtigtem Interesse ausgegeben. Ein berechtigtes Interesse hat, wer: 1) Seinen eigenen Peiler ins Netz bringen möchte 2) Einen S-Wert ins Netz bringen möchte 3) Aktiv in der Peilgruppe-Kalmit beteiligt ist 4) Einen sonstigen, GUTEN Grund hat Wir möchten natürlich ausschließen, dass sich Störer selbst peilen können. Anträge an: dekalle[ät]gmx.de Viele Grüße Kalle
Hallo Alle, Ich habe viele stunden gearbeited an ein soundkarte doppler program mit minimale hardware. Es ist angeslossen ohne uPC auf soundcard line input. Alles lauft in Visual Basic 6.0 Es kan auch audio saven in wave files. Ich arbeite jetzt an ein neues Mapping program Arbeited mit Ui-View32 karten zum zeigen von headings auf eine mappe verechnet mit GPS data Siehe mal nach auf unsere Home page http://www.pi4wag.nl/index.php/pseudo-doppler-radio-direction-finder Zum peiler netzt braucht man nur peilung und so weiter zu senden Bei mein program is dan ein ganz kleines ascii file genannt Packet.txt mit latitude un longitude bearing degrees und station information. Nur das braucht man ubers internetz zu senden. Nah ich hoffe das dieses anregung geben wurde. Auch wen es nicht auf ein atmega lauft hi... Grusse PA3BNX Lodewijk
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.