mikrocontroller.net

Forum: Compiler & IDEs suche mitwirkende


Autor: KoF (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
guten morgen alle zusammen :)

mir ist da gerade eine idee(und sie wächst noch weiter) gekommen, nur
leider bräuchte ich bei interesse noch unterstützung!!!

also es geht um einen mp3-player mit diktirgerät.

dieser SOLL auf dem msp430 149 aufbauen und den mspgcc verwenden.
1. er sollte mmc/sd und eventuell cf lesen & schreiben können.
2. eventuell usb unterstützung haben ( zum up/downloaden von daten ).
3. eventuell ein tastenfeld besitzen, das eventuell über eine matrix
angesteuert werden soll
4. logischerweise ein display ( eventuell ein I²C )
5. (...)

hätte jemand interesse an der mitwirkung???

und allen fragen vorab, ich habe noch keine codes hierfür
geschrieben!!!

Autor: nobody0 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt für die Speicherkarten schon Code:

http://www.random.linux-site.net/files/unsorted/ka...

Der funktioniert halbwegs, aber es fehlen da Funktionen um ohne die
Block-Limits Lesen/Schreiben zu können. Notfalls könnte ich die
einbauen.
Für MP3 braucht man wohl einen Decoder-Chip, so wie man auch für USB
einen braucht; der MSP soll dafür zu langsam sein. Mit Übertakten auf
16 MHz (geht mit 4 V) würde wohl die Rechenleistung reichen, aber das
RAM ist sicherlich zu klein, denn schon wegen den 512 Byte-Blöcken der
Karte braucht man 2 512 Byte Buffer.

Autor: KoF (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm... ich hatte nicht vor, den msp zur dekodierung zu nutzen, sondern,
wie du ja erwähnt hast einen extra chip.

zur mmc zurück:
wie sieht es den mit fat unterstützung aus??
könntest du soetwas auch einbauen???

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MSP mit 16MHz langt auch bei weitem nicht.

Autor: KoF (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
würde ich auch eh nicht versuchen!!!

aber meine bemühung liegt jetzt erstmal bei der mmc via spi ;)
ich will erstmal das hinbiegen, denn dieser teil (so scheint mir) ist
der anspruchvollste.

ps. ich übertackte nie eine uC / cpu!!! erst rechnicht um 200% !!!
übertackten = abbbeeeeäääks :P

Autor: nobody0 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also für FAT braucht man mind. 1,2 kB RAM
(http://home.t-online.de/home/holger.klabunde/avr/a...) und
für die Karte gut 1 kB, also insges. 2,2 (+ einiges für den Rest) und
sowiel hat selber der große (f149) nicht.
Es gibt zwar neuere Typen mit 10 kB RAM, aber die haben dafür weniger
Flash, so dass das knapp werden würde.

Autor: KoF (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmmm dann eventuell noch nen rom an den spi ran ;) nen externes fatstack
sozusagen???

Autor: nobody0 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sicherlich zu lahm.
Für sowas braucht man einen größeren Prozessor.
Der hier müßte ausreichen:
http://shop.mikrocontroller.net/csc_article_detail...

Autor: KoF (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.circuitcellar.com/msp430/hj.htm

der hat es auch geschaft, aber der gibt auch nach bitten keine weiteren
sourcen frei schnöff

Autor: KoF (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sooo, hab mal ein wenig bei ti geschnüffelt ;)
msp`s mit mehr ram sind z.b. der F1610 (5kb) und der F1611 (10kb)
schein mir, als seien das tolle dinger ;)

nur leider sind die z.z. in der preview :(

Autor: halo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Autor: nobody0 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, MP3-Player mit so kleinen Prozessoren gibt's, aber a) wird kein
Dateisystem verwendet (sogen. SDS, simple data storage),  und b) haben
die nur einen kleinen Funktionsumfang.

Autor: Oliver Keller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

also das 2kb RAM zu wenig sind, kann ich mir wirklich nicht vorstellen!

@nobody0:
Wie kommst du auf "für die Karte gut 1 kB" ?

Hat der Holger auf der oben erwähnten Seite für seine FAT Tests nicht
einen Atmega32 im Einsatz der auch nur 2kb RAM hat?
Schliesslich wäre da noch dieses MSP430 Projekt  von 2002:
http://www.del-ojo.com/cherry/mp3.html
Da wird zwar mit Smartmedia cards und FAT12 gearbeitet, aber soviel
macht das doch im Endeffekt auch nicht aus.
OK, der aktuelle yampp 7 MP3 Palyer verwendet z.B. auch kein FAT
- nicht_mehr, der yampp 3 nämlich sehr wohl!

Gruss,
oli

Autor: nobody0 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für die Karte braucht man gut 1 kB: 512 B für den Datentransfer weil nur
in 512 B Blöcken gelesen/geschrieben werden kann + 512 B Buffer um
1..512 Byte an jeder beliebigen Adresse lesen/schreiben zu können.
Ohne Dateisystem kann man natürlich sich auf das erste Byte eines
Blockes beschränken; dann reichen 2 Byte aus, aber 511/512tel der Karte
sind dann unbenutzt. Bei einer 512 MB-Karte könnte man so noch  1 MB
Lesen/Speichern.

Autor: Oliver Keller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm,
also wenn ich den Holger auf seiner Seite richtig vertsehe, meint er
genau  das mit den 1,2kb.
Ich werde den Code demnächst als Ausgangsbasis für eine MSP430 SD Card
Ansteuerung verwenden. Wenn das mit einem ATmega32 klappt, gehts mit
nem MSP430F149 sicher auch.

Gruss,
oli

Autor: KoF (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oh ja, mach das mal ;) und könntest du mir dann davon berichten/helfen??

Autor: Oliver Keller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
klar, ich werd den Code veröffentlichen, wenns fertig ist.

Hier noch ein Beweis das FAT32, MMC Card und VS1001K ansteuern sogar
mit 1KB RAM auf nem ATmega8 läuft: http://www.phrozen.org/
gruss,
oli

Autor: Benny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

von Atmel gibt es einen Controller der MP3 integriert hat und ist ab
ca. 10,-EUR zu haben. Leider hab ich von deren Programmierung keine
Ahnung.

Gruß, Benny.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

für FAT lesend brauchts eigentlich nicht alzu viel RAM. Sollte sogar
gehen ohne einen Sektor als Puffer. Allerdings wirds dann eklig.
Allerdings will man zumindest einen Sektor puffern können. Also 512
Byte Sektor + ein wenig Kleinkram reichen. Hab ich mal auf einem 8051
für einen Datenlogger implementiert. Komfortabel und schnell wirds wenn
man die komplette FAT im Speicher halten kann.

Matthias

Autor: nobody0 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, Lesen reicht nicht; Schreiben ist mind. genau so wichtig und mit 2
kB scheint mir da kein Platz für FAT zu sein.

Autor: nobody0 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut, beim MP3-Player könnte man notfalls aufs Schreiben verzichten, aber
normalerweise soll ein MC ja Daten darauf speichern.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

natürlich kann man mit 2k RAM FAT schreiben. Sobald man einen Sektor
puffern kann geht das ohne großen Aufwand. Komfortabel und schnell
wirds, wie ich oben geschrieben habe, wenn man die komplette FAT
puffern kann. Dafür reichen aber 2k auch nicht.

Matthias

Autor: nobody0 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, also ich vermute, dass dutzende Dateien auf der Karte die gelesen
und geschrieben werden müssen, mehr als 2 kB RAM benötigen,
insbesondere wenn mehrere Dateien gleichzeitig geöffnet werden müssen.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

nicht vermuten, machen. Ich (tm) hab das schon auf einem P89C51RD2
gemacht. Der hat 1k SRAM. Gelesen wurde aus einer Datei (Konfiguration)
und geschrieben in zwei Dateien (allerdings abwechselnd und nicht
wahlfrei) Dazu reichte ein (Lese/Schreib)-Puffer für einen Sektor der
CF-Karte und ein paar Variablen für Sektornummern, FAT-Cluster,
Dateinamen usw. Insgesamt wurden etwa 650 Byte Datenspeicher und etwa
100Byte Stack benötigt. War etwas umständlich aber ging. Heute würde
ich dazu einen Controller mit 2k-RAM nehmen um zwei Sektoren puffern zu
können. Pro Datei in die wahlfrei geschrieben werden soll würde ich
mind. 512 Byte SRAM ansetzen.

Wenn die Anforderungen bei Projektplanung nicht so genau feststehen
greift man natürlich lieber zu einem Controller mit mehr SRAM oder
einem externen Speicher-Interface.

Mehr ist natürlich aus Programmierersicht meist besser. Wenns dann aber
um solche Sachen wie (Stör)Ab- und Einstrahlung geht versucht man so
viel externe Hardware wie möglich zu vermeiden.

Matthias

Autor: nobody0 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tja, das nicht-wahlfrei ist das Problem. Jeweils nur eine Datei öffnen
u. lesen oder Schreiben ist wohl noch machbar, aber das reicht ja
nicht.
Ich müsste aus mind. 3 Dateien lesen u. in 2 Dateien schreiben. Wenn
das alles sequentiell gemacht werden müsste, dann wäre da einiges an
zusätzlichem Overhead, und dabei ist der Overhead schon beim Lesen der
Karte bei 97 %, wenn man die Datentransferrate durch die Taktfrequenz
teilt.

Autor: Jens Renner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Muss da Matthias zustimmen. Hab damals (vorm Krieg) auch mit einem
Mega163 (1k SRAM) FAT32 von einer 137GB HDD gelesen. Ohne Buffer, ohne
alles. Konnte trotzdem bis 320kbit/s MP3 abspielen und gleichzeitig
durch die Verzeichnisse wechseln und scrollen (die wurden aber extern
gespeichert).

Okay, man muss da schon ein wenig tunen, aber geht.
Jetzt mache ich das ganze nochmal richtig, für ATA/ATAPI Devices mit
Master und Slave. Dafür gönne ich mir aber einen Mega128, da kann man
sich schön austoben.

Autor: Joern Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das man etwas nachbauen möchte, dass es (teuer) bei ELV oder Conrad gibt
verstehe ich ja noch, aber warum etwas, dass es billiger und kleiner bei
ALdi fertig gibt???
cu joern

Autor: Jens Renner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, falsches Board erwischt? ;-)

Es geht doch hier doch nicht nur um den praktischen Nutzen oder
geldwerten Vorteil (unter dem Gesichtspunkt müsste man fast alle
Hobbies bleibenlassen).
Es geht darum, selbst ein tolles Projekt zu realisieren (nicht nur
"nachzubauen") und dabei etwas zu lernen und Spaß zu haben.
Und darum, dass es auch in Zukunft Leute gibt, die für Aldi günstige
Geräte bauen können.

Autor: john (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
moin erstmal,

also zum lesen von ner mmc braucht man nur ein byte. man muss nur ein
74*00 zwischen schalten. dann kann man gleichzeitig 1 byte von der mmc
lesen und 1 an den mp3 decoder senden. auf phrozen.org ist ein
schaltungs bild. zum lesen muss die cpu 512kb ram für fat + app ram
haben. 512kb deshalb, weil man immer nur in gesamten sectoren schreiben
kann. das ist eigentlich kein problem wenn man von zb einem ftdi die
daten holt, die geschrieben werden. da man da 1 byte holen und
schreiben könnte aber,
man muss ja den fat ändern. das heisst relevanten sektor finden,
komplett auslesen, fat-chain ändern, und ganzen sector wieder
schreiben. deshalb braucht man einen 512kb puffer. mmc/sd kann ja nur
maximal 512kb.

john

Autor: john (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
achso, mit geschwindigkeit ist kein problem. ich kann bis 320kbit/s
abspielen mit 4mhz cpu

Autor: nobody0 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du meinst wohl 512 Byte und nicht 512kb, oder?

Und zum Lesen/Schreiben auf dem MMC verwende ich immer 512 B Blöcke,
auch weil ich zwischengeschaltete Funktionen verwende, durch die 1..512
Byte von/an jeder Adresse gelesen/geschrieben werden können. Deshalb
brauche ich 2x512 B Buffer: Einen in dem die Daten von/an den
Karten-Treiber übergeben werden und einen zum Swapen.

Ansonsten müsste man ja ständig überprüfen ob man über eine
Block-Grenze hinüberlesen/hinüberschreiben würde (was die Karte nicht
macht u. deshalb abgefangen werden muß). Im Prinzip ginge das zwar und
man käme mit 512 B Buffer aus, aber das würde den Code zu einem
gewaltigen Spaghetti-Code aufblähen.

Alternativ kann man natürlich nur ein Byte an den Adressen 0, 512, 1024
usw. verwenden; dann braucht man mit call by reference überhaupt keinen
Buffer. Ich kenne aber kein Dateisystem, dass damit verwendet werden
kann.

Autor: ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Also ich habe ein kleines Minidateisystem für MMC welches mit 2 Buffern
a 512Bytes ca. 1,6KByte benötigt und halt mit einen Buffer 1,1KByte.
Ausreichend für einen MP3Player mit MEGA32.
Die 1,1 bzw 1,6Kbyte ergeben sich daraus das die FAT Tabelle für 1 File
in den Speicher gelesen wird, und halt der Buffer. Der Vorteil es muß
nicht jedesmal in der FAT gesucht werden welcher Cluster der nächste
ist somit ist das Filesystem auch recht schnell.
zur zeit kann nur Fat16 gelesen werden. Schreibroutinen kommen aber
bald hinzu. Download auf meiner HP.

Mfg uli

Autor: KoF (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und wie ist deine hp-addresse???

Autor: MNR (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kannst du an der Mail-Adresse sehen.

Gruß Matthias

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.