Forum: Compiler & IDEs suche mitwirkende


von KoF (Gast)


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!!!

von nobody0 (Gast)


Lesenswert?

Es gibt für die Speicherkarten schon Code:

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

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.

von KoF (Gast)


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???

von Michael (Gast)


Lesenswert?

MSP mit 16MHz langt auch bei weitem nicht.

von KoF (Gast)


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

von nobody0 (Gast)


Lesenswert?

Also für FAT braucht man mind. 1,2 kB RAM
(http://home.t-online.de/home/holger.klabunde/avr/avrboard.htm#cf) 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.

von KoF (Gast)


Lesenswert?

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

von nobody0 (Gast)


Lesenswert?

Sicherlich zu lahm.
Für sowas braucht man einen größeren Prozessor.
Der hier müßte ausreichen:
http://shop.mikrocontroller.net/csc_article_details.php?saArticle[ID]=51

von KoF (Gast)


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

von KoF (Gast)


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 :(

von halo (Gast)


Lesenswert?

Hallo

von nobody0 (Gast)


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.

von Oliver Keller (Gast)


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

von nobody0 (Gast)


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.

von Oliver Keller (Gast)


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

von KoF (Gast)


Lesenswert?

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

von Oliver Keller (Gast)


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

von Benny (Gast)


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.

von Matthias (Gast)


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

von nobody0 (Gast)


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.

von nobody0 (Gast)


Lesenswert?

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

von Matthias (Gast)


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

von nobody0 (Gast)


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.

von Matthias (Gast)


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

von nobody0 (Gast)


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.

von Jens Renner (Gast)


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.

von Joern Gerhard (Gast)


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

von Jens Renner (Gast)


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.

von john (Gast)


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

von john (Gast)


Lesenswert?

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

von nobody0 (Gast)


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.

von ulrich (Gast)


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

von KoF (Gast)


Lesenswert?

und wie ist deine hp-addresse???

von MNR (Gast)


Lesenswert?

Kannst du an der Mail-Adresse sehen.

Gruß Matthias

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
Noch kein Account? Hier anmelden.