Hallo zusammen Ich bin einen Mp3 Player am machen mit SD / MMC Karten und einem PIC16f87x. Da der PIC nicht viel internal RAM hat (vorallem für das FAT16 system) besorgte ich mir ein SPI fähiges externes flash ram von ST (M25P80 8mbit um genau zu sein), nun lesen kann ich ohne problem, ich kann auch schön das Status register auslesen, und es macht auch sinn. Doch das schreiben bereitet mir noch mühe, wenn ich einlese bekomme ich immer auch für das byte das geschrieben werden sollte 0xFF zurück. 0xFF ist der Anfangs zustand des Speichers. Ich wäre sehr dankbar wenn jemand mir ein ratschlag geben könnte oder schnell in den Source und das Datasheet zu schauen! Vielen Dank! Grüsse Tom link zum datasheet http://www.alldatasheet.com/datasheet-pdf/pdf/103477/STMICROELECTRONICS/M25P80-VMW6G.html
Lesen kannst du? Bist du dir da sicher? Wenn du nur 0xFF liest, dann heißt das noch lange nicht, dass es korrekt ist. Ich habe das gleiche Flash in einem Biosignal Generator verwendet. Soll ich dir den Code schicken? Aber ich würde kein Flash zum Speichern des FAT Systems verwenden, es sei denn du liest es nur einmal aus und schreibst es nur einmal... Flash Bausteine kann man zwar recht häufig beschreiben, aber irgendwann ist Schluss... Aber abgesehen davon sind Flash sehr langsam, vor allem beim Schreibzyklus. SPI Flash sowieso. Ich habe mir auch einen MP3 Player gebaut und ich verwende 1MB externes SRAM und 512kB Flash. Alles mit separatem Adress- und Datenbus. Ich lese die FAT32 Einträge nur Ordner weise aus und das soll relativ schnell gehen, also wirds im SRAM gespeichert. "Gleichzeitige" Ansteuerung von Display, Codec und Festplatte ist bereits in diesem Fall eine Herausforderung und stößt an seine Grenzen. Verwende jedoch einen PIC der größer, schneller und besser ist als deiner. Das Flash dient als zusätzlicher Programm- und Datenspeicher (Konstante...)
Ich bin mir ziemlich sicher das ich lesen kann, wenn ich mir das ganze mit dem oszilloscop anschaue, dann krieg ich als antwort immer einfach 8 taktzyklen high am ausgang(dann noch ne welle bis es wieder auf 0 V ist, soll ich ein pull down einbauen um dies zu verhindern?) Ich bin mir auch am überlegen ein neuen processor zu suchen, jedoch bin ich mir nicht sicher ob ich ein pic18 oder ein 32bit atmel nehmen sollte, was würdest du empfehlen für jemand der sich beim pic16 auskennt? Und was für ein sram würdest du empfehlen, und mit welcher ansteuerung, parallel oder seriel? Das ganze mit dem mp3 hab ich mir so vorgestellt, ich schreibe alle wichtige FAT16 informationen ins Flash, dann noch alle datei namen inkl. ID3 tags und cluster location etc. Dann lese ich pro "play - zyklus" genau 1 mal das zeugs ein. Das problem mit dem lesen schreiben wäre erst gekommen wenn ich dann nach artist etc gesortet hätte. Aber deine lösung gefällt mir auch! Ich wäre sehr intressiert an deinem source für das Biosignal Generator, also für den flash! Vielen dank für deine Hilfe Grüsse Tom
Ich werd dir den Code erst am Freitag schicken können. Bin jetzt in der Arbeit und mach einen 48er... Ich bin PIC Fan, weil ich dafür sämtliche Entwicklungstools besitze. Debugger, Compiler, Evalkits... free samples. Wenn du mehr Leistung brauchst würde ich einen PIC24 oder DSPic nehmen oder einen ATMEL. Wenn ATMEL dann gleich einen SAM7 oder ähnliches. Ich verwende einen PIC18F8722 und steuere das SRAM über das externe Speicherinterface an. ATMEL hat so etwas nicht, da muss man eben mit den Pins "manuell" toggeln. Da es aber nur Speicher für FAT Einträge sind ist das sicherlich nicht so ein großer Nachteil. Was du brauchen wirst ist viel Programmspeicher. Mein MP3 Player ist high-sophisticated und sicherlich Top was Funktionsumfang betrifft. Mit 128k Programmspeicher wird’s da auch schon recht knapp. Parallel oder seriell? Natürlich parallel, ist schneller… außerdem weiß ich nicht, ob es serielle SRAMs überhaupt gibt. Sollte es so etwas geben, dann ist das teuer und schwer erhältlich. Warum FAT16? Würde FAT32 nehmen, dann ist es wenigstens mit den neueren Betriebssystemen kompatibel. Wie bringst die Daten auf die Festplatte? Ich würde aus Performancegründen immer nur das lesen was du wirklich brauchst. Wenn du also im Root Verzeichnis bist, wäre es nicht sehr sinnvoll, wenn du auch sämtliche Einträge von den Unterverzeichnissen liest. Folglich musst du relativ oft die FAT Table auslesen und abspeichern. Deswegen Finger weg vom Flash. Flash Speicher kannst du verwenden um irgendwelche Einstellungen des Players zu speichern. Z.b. Kontrasteinstellung fürs Display, Treble/Bass Einstellung… Die meisten PICs haben ein internes EEPROM, dieses kannst du für diese Zwecke anstelle des Flash verwenden (vorausgesetzt du kommst damit aus). Aber für die FAT G’schichten und ID3 Sachen definitiv nur SRAM verwenden. ID3 musst du aber nicht speichern. Wenn du dein Verzeichnis auflistest und am Display ausgibst, ich nehme an, dein Player hat so etwas, dann willst ja nur die Dateinamen angeben oder ID3 auch? Wenn nicht, dann solltest du ID3 erst auslesen wenn du die Datei zum Decoder schickst. Hier mein MP3 Player http://www.poms-engineering.at/html/index.php?lang=de&inc=projects_mp3_player Einen MP3 Player zu bauen ist nicht so trivial wie jeder sagt. Wenn du etwas Besonderes haben möchtest dann musst du dir vorher sehr viele Gedanken machen. Mein Player z.B. ist für den Batteriebetrieb absolut untauglich. Seine Größe ist für portable Dinge unbrauchbar. Ich wollte einen MP3 Player für Heim und Auto, der nicht nur MP3 abspielen kann sondern auch als Steuergerät für irgendwelchen Zusatzschnickschnack verwenden werden kann. Und genau das habe ich mir gebaut… Wenn du Hilfe brauchst, ich unterstütze dich gerne.
Hab gerade das Datasheet vom PIC18F8722 angeschaut und ich muss sagen, ich bin begeistert! Du hast geschrieben das es eval boards gibt, welches kannst du mir empfehlen? Sollte wenn möglichst in Europa sein, da ich in der Schweiz wohne. Die I/Os gehen verloren wenn man ein SRAM anschliesst nehm ich mal schwer an, oder hast du die pins doppelt verwendet? Dann zum downloader, was hast du benutzt? Für den PIC16 benutze ich im moment ein PPF87x downloader, der für den PIC16f87x gemacht wurde, kann es auch sein das der gehen würde für den 18er? FAT16 sollte bei mir reichen, da es noch keine SD Karten gibt mit über 2 Giga Speicher. Wenn es keine gescheite eval kits gibt, werde ich mal versuchen das ganze zu verdrahten, dafür bräuchte ich aber noch TQPF adapter, gibt es sowas in Europa, am besten nicht bei reichelt, könnte man solche sachen über dich beziehen? Grüsse und vielen dank für deine Hilfe!!!! Tom
Also kommt drauf an was du haben möchtest. Ich habe ein Evalboard für den PIC18LF8722 selbst entwickelt. Obwohl entwickelt kann man das nicht nennen... Das Board besitzt eine 3.3V und 5V Versorgung. Über Jumper läßt sich der Controller also unterschiedlich betreiben. Es ist sowohl eine ICD Schnittstelle drauf als auch eine herkömmliche Programmierschnittstelle. Resetbeschaltung und sämtliche Pins auf Stiftleisten geführt. Also nix aufregendes. Den ganzen Schnickschnack wie Displays, Taster... hab ich auf einem Steckboard und schließ es über Kabel an die Stiftleisten des Boards. http://www.poms-engineering.at/images/shop_microcontroller_pic18f8x2x_evalboard_assembled.jpg Ich könnte dir auch ein Evalboard mit VS1002 (MP3 Decoder) anbieten. Sämtliche Steuersignale sind über eine Stiftleiste abgreifbar und kann somit direkt an das PIC18LF8722 Board angeschlossen werden. Oder den gesamten MP3 Player... jedoch willst du diesen ja selbst entwickeln. IOs gehen natürlich verloren wenn du es fürs SRAM verwendest, aber die IOs brauchst sowieso zum HDD ansteuern und über etwas externe Logik kann man SRAM und HDD am gleichen Bus betreiben. Was ist das für ein Downloader? Ich lade es via FTP runter (noch in Entwicklung), sagte doch high-sophisticated. Achso du verwendest SD... ich habe eine Festplatte. Wenn du eine SD Karte hast, dann kannst die ganzen Flash-basierenden Dinge doch in die SD Karte pfuschen!?
Genau sowas wie das Eval board hab ich gesucht! Falls du eins loswerden willst dann schreib mir doch ne emal an tkurmannATgeosig.com und schreib doch bitte gleich wieviel du dafür verlangst, und wieviel das board mit dem VS1002 kosten würde! Ein neuen downloader zu finden ist warscheinlich kein problem, als compiler brauch ich ein CC5X, welches ein gängiges standard hex kreiert. Das mit der SD Karte war meine 2 Idee, doch ich hatte noch ein Flash ram im geschäft rumliegen, und wolltes mal probieren. Vielen dank nochmals Grüsse Tom
Okay mach ich. Morgen Abend bzw. Freitag früh genug? Bestückt oder unbestückt? Teilweise bestückt? Lieferbar wäre alles sofort. Von Österreich in die Schweiz etwa 7 Werktage.
Also am liebsten bestückt, und morgen Abend oder Freitag morgen ist früh genug. Vielen Dank Grüsse Tom
" Ich verwende einen PIC18F8722 und steuere das SRAM über das externe Speicherinterface an. ATMEL hat so etwas nicht, " Mega8515 hat das.
64k maximaler externer Speicher ist halt sehr wenig. Bietet ATMEL auch noch was anderes an?
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.