Forum: Mikrocontroller und Digitale Elektronik AT89C51SND1C


von Steffen (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen!

Ich entwickle gerade ein Board (MP3 Player) mit dem allseits heiß
diskutierten AT89C51SND1C.

Wie ich bemerkt habe, gibt es sehr viele Leute hier im Forum, die damit
experimentieren, aber ihre Ergebnisse nicht veröffentlichen. Dem würde
ich gerne ein Ende setzen, indem ich meine Schaltpläne / CAD Daten und
Programm Codes veröffentliche. Ich hoffe, dass ein paar Leute, die
bereits mit dem Chip experimentiert haben auch ihre Hilfe anbieten und
wir zusammen ein funktionstüchtiges Board entwerfen können.

Das bisherige Board sowie der Schaltplan (Eagle Freeware) befinden sich
im Anhang.

Meine Ideen:
 - MP3 Player - als Speichermedium CD Laufwerk  Festplatte  MMC Card
 - fernsteuerbar per UART
 - Display - Tastensteuerung
 - evtl. Daten per UART uploaden
Ihr könnt natürlich gerne eure Ideen mit einbringen.

Noch ein paar Fragen.
- Es gibt einen Pullup Widerstand, an D+. Ich habe dazu nichts im
Datenblatt gefunden. Steht darüber etwas drin?
- Hat jemand eine gute Library für eine USB B Buchse? Ober muss ich da
selbst ran?
- Was passiert beim ATAPI Interface mit den nicht an den Controller
angeschlossenen Leutungen (laut Datasheet)? Werden die auf VDD / GND
gelegt oder bleiben die einfach offen? (Bsp: INTRQ, DMACK, IORDY,
DMARQ).
- Was entspricht den beiden Pins CS1:0 - die habe ich in der Belegung
des ATAPI Interface nicht gefunden. Sind das diese hier: CS1FS, CS3FS
?

Ich würde das so handhaben: Jeder kann die Schaltpläne herunterladen
und weiterentwickeln und später einfach wieder posten. So würde sich
das Projekt weiterentwickeln.

Ich hoffe ich konnte ein paar Leute dafür begeistern!

Viele Grüße
Steffen

von Steffen (Gast)


Lesenswert?

Ach ja: den Reset des uC habe ich noch nicht beschalten, da ich hier
gerne einen RESET Baustein haben möchte. Leider habe ich bei Reichelt
keinen gefunden. Wenn jemand einen gut verfügbaren kennt bitte auch
posten!

Viele Grüße
Steffen

von Stefan (Gast)


Lesenswert?

hallo Steffen

ich fange auch gerade an, einen MP3 Player zu entwickeln.
Woher hast du Deinen SND1 ?

gruß

von Ralf Altmann (Gast)


Lesenswert?

Jo Leuts,

ich will auch demnächst anfangen, warte noch auf SMD-Adapter. Meine
zwei Muster hab ich von einem der beiden deutschen ATMEL-Distributoren,
ich glaub es war INELTEK.

Ich bin sehr an einer Zusammenarbeit interessiert. Normalerweise progge
ich meine 8051er in Assembler, aber spätestens für dieses Projekt werde
ich wohl auf C umsteigen müssen.

Ich möchte Festplatten anschließen (CD/DVD-ROM optional). Und ein
Grafikdisplay 240x128 kommt auch noch ran.

Ach ja:

1. Der Widerstand an D+ signalisiert Full-Speed Betrieb am USB.
2. Für das Anschließen der Festplatte gibts im Internet wirklich ne
Menge Infos. Guckst du http://www.pjrc.com/tech/8051/ide/wesley.html,
das sollte schon mal ein bisschen weiterhelfen. Da ist auch die
Funktion der CSx-Leitungen beschrieben.

Gruß Ralf

von Steffen (Gast)


Lesenswert?

Hallo!

Leider war ich gestern nicht zu Hause - daher antworte ich erst so
spät.

@Stefan: Ich habe meinen Controller von einem Forumsteilnehmer hier
erstanden.

@Ralf:
Ich möchte hauptsächlich mit einem CD Rom Laufwerk arbeiten, halte aber
die Möglichkeit, eine Festplatte anschließen zu können für wichtig. Da
wären wir uns also schon mal einig :-)

Für das Grafikdisplay lasse ich natürlich auch gerne begeistern.

Ich werde mir die Infos zu den Festplatten einmal anschauen. Danke für
den Link!

Betreffend der Zusammenarbeit würde ich dich dann mal per email
kontaktieren.

Viele Grüße
Steffen

PS: Vielleicht findet sich ja noch der ein oder andere Interessent für
eine Mitarbeit.

von Stefan (Gast)


Lesenswert?

hallo,

ich bin gerade dabei die bauteile zu beschaffen.
jetzt mal sehn was morgen die distributoren sagen.
ich suche noch nach nem tda1548t kann mir jemand sagen wo ich den
bekomme?

ich habe vor ein diplay von nem 3310 anzuschließen
dazu ein link: http://www.radioweber.de/michael/

Viele Grüße
Stefan

von Stefan (Gast)


Lesenswert?

was habt ihr eigentlich so an dokus?

ich hab das zeug von der atmel site,
den schaltplan vom demoboard un dazu das useguide vom demoboard.

gruß Stefan

von Steffen (Gast)


Lesenswert?

Hallo Stefan,

ich habe gerade Ralf per email kontaktiert.

Leider besitze ich nur das Datenblatt - der Schaltplan vom Demoboard
wäre sicher sehr hilfreich.

Vielleicht kannst du dich mal bei mir per Email melden, dann können wir
den genauen Umfang des Projekts evtl. abstimmen.

Meine Emailadresse s. oben.

Viele Grüße
Steffen

von Patric (Gast)


Lesenswert?

Hi!

ich bin auch gerade dabei einen Prototypen zu bauen. Ich hatte vor eine
SD/MMC-Karte anzusteuern. CD-Rom finde ich aber auch interessant.
Als DA-Wandler hab ich einen PCM1728 vorgesehen.

Layout habe ich noch keines ich fädel die erste Version.

lg,
Patric

von Patric (Gast)


Lesenswert?


von Stefan (Gast)


Lesenswert?

@Patric woher hast du deinen SND1?

bin immer noch auf der suche nach einem

von Patric (Gast)


Lesenswert?

Ineltek hat mir welche abgegeben ;-)

von Daniel (Gast)


Lesenswert?

Hallo Jungs und Mädls!

Wisst ihr, wie man dieses Teil programmiert? Welche Pins benötigt man
dazu, was für eine Schnittstelle zum PC, Treiberbausteine usw. Was für
Programmiersoftware bzw. Compiler benötigt ihr?

Danke für eure Unterstützung
Daniel

von Ralf Altmann (Gast)


Lesenswert?

Hi Daniel,

steht doch alles im Datenblatt:

Hardwaremässig den PIN /ISP auf Low ziehen, dann Reset ausführen. Je
nachdem, mit welchem Bootloader du den Chip bekommen hast, mit
FLIP-Software von Atmel über programmieren, oder über RS232. Ist wie
gesagt, Bootloader abhängig. Und natürlich die Standardbeschaltung
nicht vergessen (Quartz, Reset, Filter, usw.).

Software ist ja wurscht, wichtig ist das HEX-File, das hinten rauskommt
;-)

Gruß Ralf

von Peter Ullrich (Gast)


Angehängte Dateien:

Lesenswert?

Hier sind die Eagle-Libraries für die USB-Buchsen, mit der Quellangabe.
Getestet habe ich sie allerdins noch nicht.

Ciao
Peter

http://www.ullrich.at.tt

von Steffen (Gast)


Lesenswert?

Hallo Peter,

danke für die Library, ich werde sie mir mal ansehen!

Viele Grüße
Steffen

von Steffen (Gast)


Lesenswert?

Hallo!

Ich zum oben gezeigten Demoboard noch ein paar schaltungstechnische
Fragen:

http://www.scintilla.utwente.nl/~arjanb/development-board-schematic-V2_2.pdf

In der Beschaltung des Reset Pins (links oben) sowie in der Beschaltung
von AREFN und AREFP (mitte rechts oben) sind Dioden eingezeichnet.

Kann mir jemand die Verwendung erklären? Was machen diese Dioden da?

Beim Reset Pin ist zusätzlich ein Elko mit 1u über einen Jumper
zuführbar. Wenn dieser angeschlossen ist, wird die Flanke flacher und
der Taster entprellt. Stimmt das so?

Und warum besitzen die Leitungen A0-A7 Pullups - während A8 - A15 keine
bekommen?

Für eine Antwort auf diese Fragen wäre ich sehr dankbar. Ich habe mir
schon länger den Kopf darüber zerbrochen.

Danke!
Grüße
Steffen

von Ralf Altmann (Gast)


Lesenswert?

Hi Steffen,

die Dioden sind so wie ich das sehe nur zum Schutz da, damit die
Spannung am AREFN nicht größer als die Diodenspannung gegenüber GND
(AVSS) und nicht negativer als die Diodenspannung werden kann, also +/-
0.3 bis +/-0.7V (Ich hab mir das Datenblatt der Dioden nicht
angesehen).

Der Reseteingang ist highaktiv, also wenn log. 1 = 3V am Pin, dann
Reset. Über den Jumper kann man eine andere Resetquelle anschließen.
Der Kondensator selber macht bei gestecktem Jumper einen
"PowerOn"-Reset. Im ersten Moment nach dem Einschalten bildet er
einen Kurzschluß, also liegen 3V an. Dann lädt er sich langsam auf, und
die Spannung am Reset sinkt. Während dieser Zeit ist der Quartz
(hoffentlich) ins Schwingen gekommen, damit der µC sein Programm
abarbeiten kann.

Falls du die Pull-Ups an AD(!)0-7 meinst, der Datenbus aller 8051 hat
zwar interne Pull-Ups. Diese werden jedoch nur bei Zugriffen mit den
Befehlen MOVX bzw. MOVC und beim Holen von Befehlen von externen EPROMs
verwendet. Setzt man den Port0, der die Leitungen AD0-7 bildet, per
Befehl (z.B. mov P0,#0FFh) auf Einsen, werden die Pull-Ups
abgeschaltet, also hat man hochohmige Eingänge. Das bedeutet, dass
Port0 keine log. 1 ausgeben kann, wenn man ihn nicht als Datenbus,
sondern als Ein-/Ausgang verwendet. Daher die Pull-Ups. In dieser
Schaltung bildet Port0 ja eigentlich den Datenbus. Allerdings ist es
sinnvoll, zusätzliche Pull-Ups einzufügen, sei es, um den Bus noch ein
wenig zu entstören, oder um z.B. die Buskontrolle "manuell" zu
übernehmen, also per Software zu steuern. Dies ist z.B. dann sinnvoll,
wenn man einen sehr hoch getakteten 8051er verwendet, und ein
Chip/Gerät am Datenbus sehr langsam reagiert. Dann macht man die
Ansteuerung für dieses Gerät per Software, der Rest kann dann trotzdem
"highspeed" ablaufen. Ich habe allerdings sowas noch nicht
gebraucht/gemacht. Ich würde sagen, das funktioniert nur bei 8051ern,
die ihr Programm in einem internen Flash haben (so wie AT89X52 oder
AT89C51SND1). Der SND1 hat allerdings die Besonderheit, dass man die
Geschwindigkeit, mit der die Peripherie angesprochen wird, per Software
wählen kann (siehe Datenblatt).
In dem Schaltplan sind die Pull-Ups wahrscheinlich nur, um den Datenbus
noch etwas zu stärken.

Gruß Ralf

von Sascha (Gast)


Lesenswert?

@Steffen


Hi, wie bei allen 8051èr, sind am Port P0, kein internen Pull-Ups.
Deshalb die externen.

Mfg Sascha

von Markus_8051 (Gast)


Lesenswert?

@Steffen und Sascha:

Also daß beim 8051 am Port 0 keine internen Pullups vorhanden sind,
kann ich bestätigen. Neu wäre mir allerdings, daß diese - je nach
Verwendung des Ports - zugeschaltet werden. Wie soll denn da bitte die
Ausgangstufe im Chip aussehen, und wodurch genau sollen diese Pullups
aktiviert werden?

???,
Markus_8051

von Ralf (Gast)


Lesenswert?

@Markus:

Lies doch mal das 8051er Handbuch, da stehts drin. Wie sonst sollen
wohl die Einsen auf den Datenbus kommen? Realisiert sind die Pull-Ups
durch Fets, die bei den MOVX- sowie allen anderen Befehlen, die den
Port 0 über Software ändern, abgeschaltet werden. Dadurch hat man einen
hochohmigen Eingang.

Gruß Ralf

von Markus_8051 (Gast)


Lesenswert?

@Ralf:

Du hast recht, ich hab´s gerade nachgelesen. Die Pullups werden bei
Nutzung als Bus zugeschaltet. - Und ich habe da immer noch externe
R-Arrays drangebaut :-*

Danke für die Info,

Markus_8051

von Ralf (Gast)


Lesenswert?

Lass die Arrays ruhig dran, offenbar haben sie nicht geschadet und
kosten tun sie nun wirklich nix, oder? Ich könnte mir vorstellen, dass
sie auch die Empfindlichkeit der Schaltung mildern.
Ausserdem, wie ich oben beschrieben habe, wenn du doch mal etwas per
Software bedienen musst, dann hast du sie schon ;-)


Gruß Ralf

von WiniPuh (Gast)


Lesenswert?

Hallo,

für alle die noch 89C51SND1B benötigen. Ich habe gerade 2 Stück bei
ebay drin. Einfach nach 89C51SND1B Ich habe leider keine Zeit, mich an
das Projekt zu setzen. Zum Verstauben sind sie leider zu schade.

von Sebastian (Gast)


Lesenswert?

für die, die auf der Suche nach einem SND1 sind.

http://www.er-products.de/

der verkauft welche

von Tobias Schneider (Gast)


Lesenswert?

Vorsicht bei den SND1B. ICh hatte auch mal ein Muster davon und konnte
dehn nicht zum Abspielen bewegen. Erst mit einem SND1C lief der selbe
Code einwandfrei.

Gruß Tobias

von Daniel (Gast)


Lesenswert?

Hallo Jungs und Mädls!

Gibt es den SND1C auch als PLCC84- oder DIL-Ausführung? Ich möchte ihn
nicht direkt auf den Print löten und ein QFP-Sockel (die, die ich
gesehen habe sind nur für Laboranwendungen) ist relativ teuer. Wenn ja,
von wo bekomme ich ihn?

Ich wäre auch an anderen Lösungsvorschlägen interessiert.

Danke im Voraus
Daniel

von Peter D. (peda)


Lesenswert?

Schaden können die Pullups an P0 nicht.

Wenn man dort memory mapped IO dran hat und länger nicht drauf
zugreift, floaten die Anschlüsse und die Stromaufnahme kann leicht
ansteigen.

Ich habe z.B. in einem Projekt keine Pullups verwendet, aber dann im
Programm am Ende der Unterprogramme, die auf MMIO zugreifen ein "MOV
P0, #0" drin.
D.h. in den Zugriffspausen wird immer fest low Pegel angelegt.

Fand ich irgendwie schicker, ein Bauteil durch eine Codezeile zu
ersetzen.


Peter

von Rufus T. Firefly (Gast)


Lesenswert?

Laut Datenblatt gibt es den 8xC51SND1C in drei Gehäusen:
TQFP80
BGA81
PLCC84
Letzteres kann mit geeigneten Sockeln direkt auf eine Lochrasterplatine
gelötet werden.

Übrigens verkauft Segor das Teil als Lagerware (27.40 EUR), und eine
Adapterplatine für das QFP80-Gehäuse (19.80 EUR), mit der man dann auch
im Zehntelzollraster auf Lochrasterplatinen weiterexperimentieren kann:

http://cgi.segor.de/user-cgi-bin/sidestep2.pl?foto=1&Q=at89c51snd&M=1

Das ist zwar vermutlich nicht hinterhergeworfen, aber eine zuverlässige
Quelle, und für die Berliner unter uns sicherlich ein Grund, nach
Charlottenburg zu fahren und sich an den Öffnungszeiten zu erfreuen.

von Alexander Ernst (Gast)


Lesenswert?

Hallo Leute,

habe den MP3-Controller verbaut. Allerdings meldet er sich nicht. Kann
es sein, dass standardmäßig kein Bootloader installiert ist? Wie habt
ihr den zum Laufen gebracht? Glück gehabt beim Einkauf?
Ansonsten muss ich das Teil wieder runter kratzen ;-(

Gruß Alex

von Ralf Altmann (Gast)


Lesenswert?

Ne, der muss einen haben, entweder den seriellen oder den
USB-Bootloader. Hast du den ISP-Pin auch verwendet? Soweit ich weiss,
brauchst du mindestens dann noch einen Quarz, die Filterschaltung und
einen ordentlichen Resetcontroller. Verwendest du die FLIP-Software?
Ich konnte nur mit der 1.8.8 arbeiten, bei den neueren Hab ich
USB-Treiber-Fehler bekommen.

Gruß Ralf

von Dirk Diggler (Gast)


Lesenswert?

Kennt jemand einen Pegelwandler mit folgenden Daten:
Bidirectional,5V <-> 3.3V, mindestens 20 Pins!

Da der uP mit 3.3V läuft und die IDE-Schnittstelle mit 5V!

Danke Dirk

von Steffen (Gast)


Lesenswert?

Schau dir mal den MAX3000 von Maxim an.

Kann man meines Wissens nach direkt bei denen bestellen (als Sample ist
auch möglich).

Grüße
Steffen

von Onkl Doc (Gast)


Lesenswert?

Hallo Leute!
Hat von euch schon mal jemand ne MMC am SND1C zum Laufen gebracht? Ich
kriege das irgendwie nicht gebacken. Irgendwie kommt von der Karte
keine vernünftige Antwort. Mich macht stutzig, das das Bit CRC7
immer auf "0" steht. Über Tips wäre ich sehr dankbar.

Übrigens:
Wer noch AT89C51SND1C (TFPQ80) braucht, ich habe meistens welche da
(24,95€ + Versand).

Gruß
Doc

von Jonas Baumann (Gast)


Lesenswert?

Hallo zusammen!

Hat nun jemand einen Player mit dem AT89C51SND1C realisieren können?

Wir versuchen uns an einem einfachen Player mit AT89C51SND1,
MMC-Speicher, und Maxim DAC.

Leider sind uns schon beim auslesen unserer MMC einige Dinge
unklar. Die genauen Kommandos sind irgendwie nirgends ersichtlich. Es
steht zwar der genaue Aufbau der Kommandos, Start, Stopbits usw. im
Datenblatt, aber die Commando(Werte) selbst finde ich nirgends.

Mittlerweile wollen wir einfach mal Musik von der MMC über den DAC an
die Kopfhörerbuchse bringen, dies soll fürs erste genügen.

Wäre euch dankbar für etwaige C-Code-Hilfe. Falls jemand schon etwas
gecodet hat, wäre sehr dankbar mal einen Blick darauf werfen zu können.


Gruss
Jo

jonas.baumann-AT-gmx-PUNKT-net

von skoki (Gast)


Angehängte Dateien:

Lesenswert?

hallo alle miteinander!

ich bin nun seit weihnachten genau damit beschäftigt zumindestens einen
meiner AT89C51SND1C zum laufen zu bringen und hab eben gerade erst
diesen thred hier gefunden! juuuuuuuhhuuuuuu also jetzt hab ich mir mal
grundplatten zum verlöten der at89c51snd1c-il bestellt. ich würde auch
gerne eine anwendung mit diesen µCern realisieren, und bin bisher davon
ausgegangen das man sich ein eigenes eval board schnitzen müßte. nun hab
ich halt mal eins so über den daumen gezeichnet auf einer freewarware
version von expresspcb und das sieht so aus(anhang) ich werde das jetzt
mal umzeichnen und die snd1 auf die gekauften platienen setzen und diese
mit entsprechenden steckern versehen.
jetzt noch meine peinliche frage: wo häng ich die USB Anschlüße 1 und 4
dran also VUSB und GND USB muß ich da besondere schaltungen zum
restlichen board machen? ich werde auch noch bilder vom layout posten
für alle die keine express software haben.

besteht vielleicht die möglichkeit irgendjemanden zur erstellung einer
doku seines projektes zu überreden? bilder sagen auch oft mehr als
worte!

hat jemand die möglichkeit eine exprass pcb datei in eine gerber datei
zu konvertieren?

noch eine peinliche frage aber ich will keinen peiner snd1 schießen,
kann mir jemand einen schaltplan zur beschaltung des audioausganges
posten oder mich verlinken? also bis zum stecker?

ich weiß ich weiß ihr werdet sagen ich soll doch mal lesen aber ich tu
ja eh nichts anderes! ich hab mir mal alle atmel pdf dokumente
ausgedruckt und nach danen hab ich auch mein layout erstellt.

wer übrigens wissen will wozu ich das alles brauche, kurz: bin
paragleitpilot und ärgere mich ständig das ich nicht weiß auf welchen
hügel ich klettern muß um den richtigen startwind zu haben, also
überall ein windanemometer, einen snd1, ein handy auf automatische
rufannahme und ein wenig pereferie, befeuert durch eine autobaterie der
xl klasse und ein solar panel, soll abhilfe schaffen.

ich beabsichtige meinen sorce code mit keil an den snd1 zu übertragen,
brauch ich da eh nur die flipsoftware von der atmel seite?

danke und grüße an alle!

skoki

PS: BITTE BITTE postet zu euren ergebnissen und stellt alles nützliche
zur verfügung!

von Ralf (Gast)


Lesenswert?

Hi Skoki,

hast du meine Mail nicht bekommen?

Gruß Ralf

von skoki (Gast)


Lesenswert?

welche mail?

sorry nein nix bekommen wohin hast sie den geschickt?

danke!

skoki

von Ralf (Gast)


Lesenswert?

Na, an die, die du hier angegeben hast: skogaman@hotmail.com

Gruß Ralf

von eaglo (Gast)


Lesenswert?

gibts hier was neues was man unbedingt wissen sollte ? wir sitzen
nämlich auch gerade an einem snd1c der sich nicht meldet :(
wie kann man eigentlich feststellen ob ein uart bootloader drauf is
oder ein usb bootloader (der snd1 is ein sample ~1-2 jahre alt)

mfg

von Ralf (Gast)


Lesenswert?

Hi eaglo,

wenn ich die Beschreibung zum Seriell-Bootloader richtig im Kopp habe,
muss das erste Zeichen, das zum SND1 gesendet wird, ein 'U' (0x55)
sein. Anhand dieses Zeichens erkennt der SND1 dann selber die
Baudrate.

Was heisst den genau "er meldet sich nicht"? Nicht im Flip, oder wo?
Läuft er denn? Toggelt der ALE-Pin? Kannst du messen, ob der Quarz
schwingt?

Etwas mehr Info, sonst kann man das Problem überall vermuten!

Gruß Ralf

von Ralf (Gast)


Lesenswert?

Nachtrag:

Ganz vergessen zu sagen:
Wenn es ein serieller Bootloader ist, kommt dann das 'U' als
Bestätigung zur Erkennung der richtigen Baudrate zurück. Zu den beiden
Bootloader gibt es separate Datenblätter.

Gruß Ralf

von eaglo (Gast)


Lesenswert?

naja wir wissen nicht obs ein uart oder usb bootloader is, ham den chip
von unserem professor geschenkt bekommen (is ein sample)
er meldet sich nicht beduetet -> man steckt ihn über usb an und ->
nichts =) ob der ALE Pin toggel weiß ich nicht, der quarz schwingt
jedoch (mit oszi geguggt)

ich hab beide datenblätter... denk nur ich hab da irgendwas falsch
verstanden ... er sollte sich doch als neues gerät melden wenn man ihm
am usb port ansteckt und den isp ping auf low zieht

ja noch was -> der isp pin ist low während einem reset aber dannach
geht  er auf high (obwohl über einen 2k2 auf masse verbunden) stimmt
das ?

von eaglo (Gast)


Lesenswert?

sorry für die vielen verschreiber :)

von Tobias Schneider (Gast)


Lesenswert?

Hast du einen 1,5k pull(up|down) an einer datenleitungen vom usb? ich
wei sleider nichtmehr welche duer den full speed mode gebruacht wird.
dann wird vom os auch ein usb geraet erkannt, egal ob wirklich ein da
ist. Fehlt jedoch dieser widerstand dann wird das geaet nicht erkannt,
egal ob es funktioniert.

Bei allen snd1, die ich bis jezt benuzt habe war standardmaesig der usb
bootloader an

Gruß Tobias

von eaglo (Gast)


Lesenswert?

wir haben einen 1,5k pull up an der d+ leitung ... wie gesagt er meldet
sich nicht :(

von Simon Küppers (Gast)


Lesenswert?

Ich weiß nich ob sich das verallgemeinern lässt, aber beim IO-WARRIOR
ist an der D-Leitung ein 7K5 Pullup verwendet worden.

von eaglo (Gast)


Lesenswert?

1k5 laut atmel datenblatt ;)

von eaglo (Gast)


Lesenswert?

im datenblatt steht doch, dass man den 1k5 auf Vcc hängen muss -> meinen
die damit jetzt 3V (also Vcc vom µC) oder VBus (also 5V vom USB Bus) ?

mfg

von Tobias Schneider (Gast)


Lesenswert?

Hi,
ich wuerde sagen gegen die 3V. Hast du auch zwei 27Ohm
Serienwiderstaende in den D+ unbd D- Leitungen? ISt die Pll
beschaltet?

Am besten postest du mal den Schaltplan sonst ist das hier das reinste
Raetselraten

Gruß Tobias

von eaglo (Gast)


Angehängte Dateien:

Lesenswert?

jo also da bitte :) rechts im bild is noch der DAC ... der chip soll
über i2c gesteuert werden, deswegen brauchen wir eigentlich keine
sonstigen pins ...

von Tobias Schneider (Gast)


Lesenswert?

Aufgrund der Aufloesung des Bildes kann ich es nicht gut erkennen, aber
steht unten beim USB 27_K_ an den Widerstaenden? Da sollten 27_Ohm_
hin

Gruß Tobias

von Matthias (Gast)


Lesenswert?

Hi

meldet denn Windows überhaupt ein unbekanntes USB-Gerät. Wenn der 1,5k
widerstand an D+ gegen 3,3V da ist dann sollte auf jeden Fall mal eine
Meldung vom OS kommen.

Matthias

von Rufus T. Firefly (Gast)


Lesenswert?

@Tobias: Da steht 27R. Das ist in Ordnung.

von eaglo (Gast)


Lesenswert?

@ Tobias
bei mir ist alles lesbar :)
@ Matthias
nö tut es nicht, das is es ja ...

von Matthias (Gast)


Lesenswert?

Hi

dann stimmt was mit der Verdrahtung oder Stromversorgung nicht.

Matthias

von eaglo (Gast)


Lesenswert?

ist es ein grober fehler wenn man nicht genau 27 Ohm nimmt sondern 22
Ohm ?

von Matthias (Gast)


Lesenswert?

Hi

das ist nicht so extrem kritisch und dürfte nicht die Erkennung
verhindern. Wenn du aber 27Ohm da hast nimm 27 Ohm.

Matthias

von Tobias Schneider (Gast)


Lesenswert?

Jo, wie ich auch schon gesagt habe muss windows ein geraet erkennen wen
da 1,5k dran sind egal ob wirklich eins da ist oder nicht. Mess mal an
der buchse nach, ob da ueberhauot irgendwo Spannung ist.

Gruß Tobias

von eaglo (Gast)


Lesenswert?

was müsste den auf den usb leitungen (d+/d-) zu messen/sehen sein ?

von Ralf (Gast)


Lesenswert?

Hi eaglo,

wenn mich mein Wissen über USB nicht trügt, läuft das so ab:

Wenn der Rechner ein Gerät erkennt, schickt er eine Anfrage an das
Gerät. In dieser Anfrage müssen dann z.B. Angaben über Hersteller, Name
des Produkts usw. angegeben sein --> das heisst, wenn der Rechner was
erkennt, musst du was auf den D+/D- Leitungen sehen können. Aber in dem
Moment muss auch der Rechner sagen, dass er was erkannt hat.

Sind denn die 5V am USB da? Vielleicht ist da was im Argen.

Gruß Ralf

von skoki (Gast)


Lesenswert?

hab ein ähnliches problem mal beim ersten versuch gehabt, als ich mir
die sockelplatine noch selbst gemacht hab, dabei haben sich
leiterbahnenfehler gezeigt die erst nachdem ich das ding mit makro und
5millionen pixeln fotografiert habe durch einzoomen erkannt werden
konnten. jetzt hab ich da sockelplatinen um 15€ das stück und die
zahlen sich aus! mit einer hohlkehlspitze ist das ding in 0´nix
draufgelötet und sauber ohne fehler.
hast du vielleicht mal zeit ein paar fotos zu machen, die können immer
aufschlußreich sein!
bei mir scheitert es seither nicht mehr am erkennen, vielmehr an der
kommunikation. ich habe übrigens nichts weiter gemacht als den snd1 mit
d+ und d- verbunden, 2x2 27ohm 1,5k gegen vcc und pasta. gerät erkannt,
weiter nichts. hab aber jetzt schon lange nichts mehr getan. hab
vielleicht in meiner restlichen schaltung einen hund drin. werd mir
diesertage mal die abgespeckte version nur eine usb platine und sonst
nichts bauen müssen.

viel erfolg noch! skoki

von eaglo (Gast)


Lesenswert?

also news:
der stecker funktioniert -> brauch nur mit nem 1k5 (egal ob d- oder d+)
auf 3V3 gehn und windows meldet mir ein USB Gerät (welches zwar nicht
korrekt funktioniert, aber es geht).
Platine genauso angesteckt (vorher alle verbindungen überprüft -
überall durchgang) -> nüx.
häng ich nen 1k5 auf D- u. 3V3 => Unbekanntes Gerät (treiber konnte
nicht installiert werden blablabla)
daraufhin hab ich mal im ausgeschaltenen zustand den widerstand
gemessen (der µC ausgang müsste doch eigentlich hochohmig sein also ->
just wurscht) => ~200 Ohm => ich denke der µC ist kaputt :(

von Matthias (Gast)


Lesenswert?

Hi

nö. Du mißt die Eingangsschutzdiode des µC.

Matthias

von eaglo (Gast)


Lesenswert?

ok, aber meine schlussfolgerung kann trotzdem ned so falsch sein ...
sonst würd er mir wenigstens melden das er irgendein gerät gefunden
hat, oder ?

von Matthias (Gast)


Lesenswert?

Hi

ich kenn den Chip nicht. Aber grundsätzlich kannst du nicht davon
ausgehen das ein Chip kaputt ist wenn du von einem Pin nach Vcc 200 Ohm
mißt. Das ist nämlich bei 99% aller CMOS-Schaltungen die
Eingangs-Schutzdiode.

Matthias

von skoki (Gast)


Angehängte Dateien:

Lesenswert?

@egalo
Greifen wir das thema noch mal auf!

Ich hab jetzt erst richtig zeit gehabt um mal deine schaltung
auszuprobieren die du da mal gepostet hast. also so kann das nicht gut
funktionieren wenn du davon ausgehst das du die USB B buchse so belegst
wie im Plan dargestellt. vergleich mal mit dem original von atmel.

Wenn du´s aber eh richtig angeschlossen hast dann.....=Gegenstandslos!

Meiner meldet sich aber wenn man die usb pins richtig belegt!

also dann!

mfg skoki

von eaglo (Gast)


Lesenswert?

danke das du antwortest :) ... aber ich kann da grad nicht
nachvollziehen was du meinst.

zwei 27Ohm widerstände ... OK
ein 1k5 pullup (laut datenblatt wird der für full speed usb benötigt
ist aber nur optional)

nur die zwei 27Ohm Rs -> geht nicht
1k5 auf vdd -> geht nicht
und wenn ich den 1k5 vor den 27Ohm R an der +Datenleitung anschließ
gehts auch nicht :(

mfg

von skoki (Gast)


Angehängte Dateien:

Lesenswert?

Servus wiedermal,

naja obwohl ich mittlerweile davon ausgehe das du deine usb buchse eh
richtig verkabelt hast, in deinem Plan den du gepostet hast, ist ein
fehler. der Pin 1(V_USB) in einer USB B Buchse, ist der in
Einsteckrichtung betrachtet der rechts oben, 2(D-) der links oben,
3(D+) der links unten und 4(GND) der rechts unten. In deiner Zeichnung
ist das aber nicht so eingezeichnet.

Wo hast du den Plan den du damals gepostet hast eigentlich her gehabt?
Hast du dir den Chip selbst gezeichnet oder gibts den irgendwo als part
zu holen? wer hat schaltpläne die schon getestet wurden, bzw wo suchst
du dandch?

ich hab ein ganz ein anderes problem, ich hab zwar einen erkannten chip
aber ich hab´s noch nicht behirnt was ich alles dafür tun muß um einen
externen speicher auszulesen, bzw, wie häng ich den externen speicher
an?

warum verwendest du einen 20MHZ Quarz? ich hab es erstmals ganz ohne
versucht. Das Skriptum von Atmel genannt AT8xC51SND1C Complete.pdf
spricht auserdem folgendes: ich zitiere
"
 Seite6 Table 2 Clock Signal Describtion: X1 Type I Input to the on
Chip inverting oscillator amplifier
To use the internal oscillator, a crystal/resonator circuit is
connected to this pin. If an external oscillator is used, its output is
connected to this pin. X1 is the clock source for internal timing.

         X2 Type O Output of the on-chip inverting oscillator
amplifier. To use the internall oscillator, a christal/resonator
circiut is connected to this pin. If an external oscillator is used,
leave x2 unconnected.
"
was soll das heißen? eigentlich hab ich gedacht, wenn man einen
externen Quarz nimmt, so verkabelt man ihn wie im plan dargestellt mit
X1 und X2, aber was meinen die denn mit "If an external oscillator is
used, leave x2 unconnected." ?

nagut warscheinlich hab ich wiedermal irgendwas nicht richtig gelesen
aber falls ihr mich da behelligen könntet!

Danke Grüße

skoki!

von Markus_8051 (Gast)


Lesenswert?

Hallo Skoki,

mit: "If an external oscillator is used, leave x2 unconnected."
meinen die im Datenblatt eine externe Taktquelle, zum Beispiel einen
Quarzoszillator. Das ist etwas anderes als ein Quarz. Der
Quarzoszillator hat nämlich schon einen Verstärker/Inverter und einen
Quarz eingebaut, und liefert nach anlegen der Versorgungsspannung den
angegebenen Takt. Der Quarz (auf englisch: crystal) benötigt noch den
Inverter/Verstärker, der im µC eingebaut ist, und dort als "internal
oscillator" bezeichnet wird. Diser Oszillator ist aber nicht
vollständig, sprich ohne externe Bauteile tut der nix. Also nimm Deinen
Quarz und die beiden C und schließe sie an x1 und x2 an.

Gruß,
Markus_8051

von eaglo (Gast)


Lesenswert?

achso meinst du das, ich verwend gar keine buchse ... das sind nur 3
pins + selbstgebasteltes kabel (das aber 1000% stimmt)

mfg

von Ralf (Gast)


Lesenswert?

@Skoki:

"ich hab ein ganz ein anderes problem, ich hab zwar einen erkannten
chip aber ich hab´s noch nicht behirnt was ich alles dafür tun muß um
einen externen speicher auszulesen, bzw, wie häng ich den externen
speicher an?
"

Welchen Speicher meinst du mit externem Speicher? Eigentlich geht beim
AT_89_C51SND1 nur MEMORY-, nicht CODE-Speicher. Und angeschlossen wird
er wie bei jedem Standard-8051er.

Wenn du allerdings ein bisschen Zusatzaufwand treibst, kannst anstatt
der üblichen 64kB gleich 128kB RAM anhängen --> z.B. um Daten vom
Speichermedium zwischenzuspeichern.

Gruß Ralf

von skoki (Gast)


Lesenswert?

DAAAAAnke!

ich hab mich wiedermal blamiert! das erklärt warum sich die mühle zwar
meldet aber sonst auch schon nichts. also jumper wieder drauf und mit
quarz weiter.
naja und noch was:

ich wollte eigentlich nur 64kB nutzen wenn mir aber jemand sagt wie ich
das mit 128kB realisieren kann na dann. Danke!

wo bekommt man eigentlich code material beispielprogramme oder
aplikationen die schon mal wer damit gemacht hat? ich bin mir zwar
jetzt im klaren warum meiner noch keinen pips gemacht hat-->quarz! aber
schaden kann´s ja nicht, weil ich bis jetzt nur mit dem C167 gearbeitet
hab.

Danke nochmals!

skoki!

von Ralf (Gast)


Lesenswert?

Wenn du vorher noch nicht mit dem 8051 im allgemeinen gearbeitet hast,
empfiehlt sich das Herunterladen der 8051 Manuals von Atmel. Gibt in
der 8051-Sektion unter Documents.

Und 128 kB kannst du anschließen indem du den externen Datenbus des
SND1 in den 16-Bit Modus setzt. Dann brauchst du ein 64kBx16 RAM
anschließen. Denn gleichen Modus brauchst du, wenn du z.B. eine
Festplatte an den SND1 anschließen willst.

Gruß Ralf

von skoki (Gast)


Lesenswert?

tja das hätte ich ja schon mal probiert aber leider hat das nicht so
geklappt mit dem download. ich weiß auch garnicht ob ich das richtige
datenblatt downloade weil ich es noch nirgends eingesehen hab und auch
den namen des wirklich relevanten dokuments nicht kenne. die 8051
downloads gehn nicht. falls ihr mir das schicken könntet, so ihr es
irgendwo gespeichert habt dann wär ich sehr dankbar! die adresse
hierfür tw03j043@technikum-wien.at das würde mich bestimmt weiter
bringen.

gestern hab ich noch weiter herum probiert und mal versucht den chip so
wie egalo beschrieben hat in betrieb zu nehmen, leider war das aber
nicht sehr erfolgreich, zudem muß ich befürchten das er jetzt hin is,
weil ich ihn zum ersten mal im betrieb berührt hab und: aua das war
heiß! ist das normal?

also dann hab ja noch vier....

Gruß skoki!

von eaglo (Gast)


Lesenswert?

so ham das ganze jetz auf lochrasterplatte aufgebaut und es geht =) da
hatte es wohl irgendwas mit unserer platine ... hm ...

nächster schritt: software
gibts da irgendwas zum anschaun ? irgendwas was ihr schon programmiert
habt ? =)

mfg

von eaglo (Gast)


Lesenswert?

hm warm wird er nicht direkt ...

von skoki (Gast)


Lesenswert?

ich weiß! ich hab ihn glaub ich durch statische aufladung gekillt. bei
uns auf der fh liegt überall lenoleum laminat am boden herum. BRAVO!
ich dummkopf hab überhaupt nicht aufgepaßt. verlötet sollte aber alles
richtig sein. ich hatte nie eine spannungsquelle größer 3V also könnte
ich ihn denk ich so garnicht gekillt haben oder?

ich bin gerade dabei mir platinen für die restlichen chips zu besorgen,
bis dahin ist also mal sendepause schätz ich. aber für einen guten plan
oder einem direkten link wie ich zu einem schaltplan für den flasch
memory anschluß komme wär ich noch immer dankbar.

zudem macht mir grad auch noch der DAC sorgen. ich wollte einen TDA1543
verwenden, der hat aber keinen SCLK eingang. ist der dann geeignet oder
kann ich mich da auch weiter umsehen? I²S versteht er.

für hilfe dankt

skoki

von Florian (Gast)


Angehängte Dateien:

Lesenswert?

Hi

hab auch mal was gemacht mit dem ding hab auch nen funktionierendes
layout dazu.

Gruss flo

von skoki (Gast)


Lesenswert?

Hallo Florian!

danke für deinen Plan vorweg. Ich hab da aber ein paar Fragen:

1.du hast statt zwischen Pin 2 USB und Pin 1 einen 1,5kOHM Wiederstand
einzubaun 10k zwischen Pin 2 USB und Pin1 und 10k zwischen Pin 3 USB
und Pin 1 eingezeichnet.  wozu ist das gut?

2. du hast einen 10uF über einen 1kOhm an Vcc also GND gehängt, das
ganze ist invertiert am Eingang????....sag mal wie funktioniert das?

3.welche Bauteile hast du für dein Audiointerface verbaut? Ich hab nur
einen DAC der glaub ichnicht ganz passend ist er nennt sich TDA 1543
was verwendest du?


Gruß

skoki

von eaglo (Gast)


Lesenswert?

hm so wie gesagt laufen tut er jetzt :) wär irgendwer dazu bereit seinen
code online zu stellen, hab zwar die atmel referenzsoftware ... aber die
is wahnsinnig kompliziert ...
mfg

von skoki (Gast)


Lesenswert?

gratuliere!

woran lag´s denn? ich hab deinen Schaltplan auf lochraster nachgebaut,
einen neuen AT89C51SND1C hergenommen und den angeschloosen, aber bei
mir geht noch nix. vielleicht hab ich alle meine snd1 gekillt, dann
kill ich mich aber selbst! hattest du irgendeinen fehler drin?

welche bauteile verwendest du am audio ausgang? was für einen DAC? wie
heißt der?

was ist die atmel referenzsoftware? ich kenn nur die software für´s
keil bzw zum programmieren genannt flip, aber was gibt´s da sonst noch?
und wo? gibt´s überhaupt irgendwo beispielcode für den SND1?

mfg

skoki

von eaglo (Gast)


Lesenswert?

naja wir haben ihn genauso aufgebaut wie im schaltplan (zu beachten ist
jedoch, dass wir keine usb buchse verwenden sondern ein eigenes
Adapterkabel) .. dannach meldete er sich im windows als neues usb gerät
und wir konnten ihn über Flip programmieren... jetz bin ich auf der
suche nach etwas beispielcode (das programm für die referenzplatine von
atmel haben wir irgendwo im internet gefunden - sorry ich weiß echt
nicht wo ... dazu braucht man glaub ich auch ne lizenz)
Als DAC verwenden wir momentan einen CS4334 (kompatibel zum CS4331
jedoch 5V) den konnten wir aber noch nicht testen :(

mfg

von Netbandit (Gast)


Lesenswert?

ich baue ebenfalls gerade an so einem teil rum und verwende den CS4331.

Die Teile sind schon bestellt, ich hoffe, daß ich die gleichen probleme
mit dem usb nicht habe.

Kann man eigendlich testweise einen durch den µC erzeugten MP3 Frame
dem decoder übermitteln, welcher z.b. eine einzigen ton abspielt um die
funktionsfähigkeit der Schaltung zu testen?

von Ralf (Gast)


Lesenswert?

Hi Netbandit,

müsste gehen. Du könntest einen einzigen Frame im Code-Speicher
unterbringen, und damit den Decoder füttern.

Gruß Ralf

von Netbandit (Gast)


Lesenswert?

Hi Ralf,

hab mir doch gedacht das es gehen sollte. Gut dann werde ich mal das I
Net durchsuchen um herauszufinden wie so ein Frame aufgebaut ist,
während ich auf die Teile warte.

von Netbandit (Gast)


Lesenswert?

ich glaube das kann ich wohl vergessen habe jetzt ne ganze zeit lang
gesucht und viele Informationen gefunden wie so ein MP3 aufgebaut ist
mit dem Header etc. aber keines wo irgendwie deutlich erklärt wird wie
man ein einfaches testframe für einen festen Ton dynamisch erzeugen
kann.

Vielleicht codiere ich mal eine Wav Datei mit einem 1khz Ton und schaue
mir mal die Frames an inwieweit die sich gleichen und schreibe den dann
komplett ist das programm....

von skoki (Gast)


Lesenswert?

@egalo

sag mal was ist das für ein kabel? einfach nur ein 4 poliges
geschirmtes mit hinten einem Stecher dran oder gibt´s da noch was
besonderes daran?

Ich hab ursprünglich mal versucht auf mit einem Audio DAC namens TDA
1543 zu arbeiten, der hat aber keinen Eingang für SCLK, es gibt da nur
DATA, WS, DCLK als Eingänge und Vref,L,R als Ausgänge sowie eine
Spannungsversorgung V+ und GND, muß ich eigentlich den SCLK verwenden?
oder ist das belanglos?


danke und Grüße!

skoki

von eaglo (Gast)


Lesenswert?

da wir keine USB Buchse hatten, haben wir einfach ein usb kabel
genommen, es zerschnitten und auf der seite wo der kleine stecker war
einen anderen stecker angelötet (in unserem fall eine buchse wo 3 pins
im 100mil raster reingehn, für so kleine metallstifte wie am pc
motherboard - VBus brauchen wir nicht)

mfg

von eaglo (Gast)


Lesenswert?

gibt es jetzt schon von irgendwem software für diesen chip ???

mfg michael

von Netbandit (Gast)


Lesenswert?

mal ne frage in was programmiert ihr eure?

Ich plane es mit dem ASEM51 + 4Flash IDE also in Assembler. Habe leider
keine MCU für den SND1C gefunden, aber es sollte auch ohne gehen.. ist
dann halt nur etwas umständlicher :-)

Ich hoffe das läuft alles problemlos...

Und wie macht ihr das Monitoring? Also um zu sehen ob im Programm alles
stimmt habe ich oft ein LCD in der Entwicklung rangelötet und mir dann
entsprechende Ausgaben auf dem LCD erzeugt. Damit konnte ich ganz gut
entwickeln. Aber dies hier ist ja ein 3.3V System und mein LCD braucht
5V daher wollte ich dies hier nicht machen.
Ich wollte mal Seriell probieren, habe ich alles nötige da ist aber
etwas umständliher... das ganze dürfte man ja auch über den eh schon
existierenden USB Anschluß machen oder? Ich möchte dann nur zeichen vom
µC über USB an ein Terminalprogramm senden um zu sehen ob die Software
das macht was ich will. Mal gucken ob ich das so realisieren kann...

Wie habt ihr euch das gedacht?

von skoki (Gast)


Lesenswert?

ok! der quarz schwingt.

ich hab mich aber nicht getraut den µc an den usb anschluß zu hängen.
ich messe auf den pins 2 und 3 4V allerdings nur gegen USB GND was ja
normal ist, dennoch hab ich die befürchtung das ich meinen 1. snd1
damit  irgendwie zerstört hab. statische aufladung... hab ich als
erstes vermutet aber... naja ich weiß nicht so recht. habt ihr eine
idee? kann man da irgendwelche sicherheiten einbaun?

@ florian
wenn du mal zeit hast schreib doch bitte mal eine antwort auf die
weiter oben gestellten fragen.

du hast doch sicher auch beispielcode wenn dein system funktioniert
.... hier wären eineige leute ganz heiß drauf!

also dann!

danke und bis bald

skoki!

von skoki (Gast)


Lesenswert?

hallo!

frage:
kann es sein das ich meinen snd1 aufgrund zu hoher spannung am usb
anschluß geschossen habe?
ich hab gestern bei einem meiner PC´s max. 5V an d+ bzw. d- gemessen
als pegel gemessen. kann das sein das ihm das zu viel war? wie habt ihr
eure usb anschlüsse verdrahtet? einfch so wie sie in den schaltplänen
hier beschrieben sind oder baut ihr da noch dioden oder sonstwas
davor?

wie schaut´s bei dir aus michael? schon weiter gekommen?

gruß skoki!

von eaglo (Gast)


Lesenswert?

nope ... er schwingt zwar jetz endlich dauerhaft, aber dafür geht usb
nur mehr bedingt =) ham aber auch keine zeit mehr dafür verwendet.. bin
noch imma auf der suche nach software !!! BITTE BITTE mal samples posten
...

von Florian (Gast)


Lesenswert?

Hi

code kann ich nicht raus geben...

Kannst du die fragen per mail schicken?

gruss flo

von Happel (Gast)


Lesenswert?

Hallo

Gibt es eine Pingleiche Alternative zum 4330/4331er? Hab noch keinen
distri gefunden vielleicht könnt ihr mir weiterhelfen und falls noch
jemand AT89C51SND1C's braucht hätte ich noch welche...

MfG

Mathias

von Steffen (Gast)


Lesenswert?

die DAC's gibt es bei

http://www.atlantikelektronik.de/

von Happel (Gast)


Lesenswert?

danke für die schnelle Antwort =)
find dort irgendwie keinein Shop, vielleicht bin ich auch schon zu müde
ich hab ihnen mal ne mail geschrieben

von skoki (Gast)


Lesenswert?

auch bei segor electronics unter www.segor.de gibt´s die dinger.
best.nr.: für einen CS 4331 KS #29890 7,41€ im onlineshop
Datasheet gibts bei
http://www.digchip.com/datasheets/parts/cs/parts_cs04.php
ich bin mir nur nicht sicher welche pins genau wie mit dem c51
verbunden werden müssen aber das kannst du aus den datasheets
rauslesen.

woher hast du deine c51 und was nimmst du pro stück?

gruß skoki!

von Manuel Fegerl (Gast)


Lesenswert?

Btw.. wir haben zu testzwecken einfach das Winamp-Demo-Mp3 in den ROM
geladen.. das hat um die 40kb geht sich also aus.. und man weiß gleich
was funktioniert :)

von Happel (Gast)


Lesenswert?

soki danke für den link ...

hmm ich hab noch 3 Stück sind noch nie aus der Verpackung genommen
worden und würd sie für je 10€+Porto abgebn.

von Ralf (Gast)


Lesenswert?

Hi Happel,

kannst du ungefähr abschätzen, wie groß das Porto von dir nach
Baden-Württemberg ist?

Gruß Ralf

von Ralf (Gast)


Lesenswert?

Obwohl, fällt mir gerade ein, ist ja eigentlich nicht streckenabhängig.
Wo dürfte denn das Porto ungefähr liegen?

Gruß Ralf

von skoki (Gast)


Lesenswert?

ich nehm sie wenn sie sonst keiner braucht!

schreib mir eine e-mail mit deinen kto daten und der gewünschten summe.
porto bis Wien Österreich, kannst Sie von miraus aber als Brief in einem
gepolsterten kuvert schicken, ich vertraue unserer post!

wer hat einen beispielcode den er mir schicken kann, also alles was ich
brauch um in keil einfach auf debug klicken zu können und die
übertragung startet?

außerdem hab ich noch immer nicht genau rausgefunden wie ich externen
speicher genau anschließen muß. ich hatte vor eine flash karte als
speicher zu nutzen. wer sagt mir wie ich die anschließen muß?
ich weiß ich weiß datenblatt lesen aber da bin ich entweder zu blind
oder einfach zu unerfahren, genauso geht´s mir mit dem USB Port da weiß
ich noch immer nicht ob spannungsspitzen für den verlust meines ersten
C51 verantwortlich gewesen sein könnten. ich hab den usb anschluß genau
so verdrahtet wie im datenblatt angegeben, bzw. wie in den schaltplänen
die hier krassieren.

wer will und kann der kann mir ja was empfehlen,(außer aufhören!!!)

Gruß

skoki

von Happel (Gast)


Lesenswert?

Also

Versand nach DE kostat 8-10€
Versand nach AT kostet 2€

also wer von euch beiden will jetz wieviel =) machts am besten
untereuch aus und sagts mir dann ...

MfG

Mathias

von eaglo (Gast)


Lesenswert?

wie ist denn der aktuelle stand ? hat keiner mehr etwas
weiterprogrammiert ?

von Andreas (Gast)


Lesenswert?

@all

Ich habe eine eher allgemeine Frage zum AT89C51SND1C. Wie um alles in
der Welt bekommt Ihr den Chip im TQFP80 Gehäuse gelötet oder habt habt
Ihr noch ein 84-pin PLCC Gehäuse aufgetrieben ?  Die Pins sind ja so
klein, dass man mit einem SMD Lötkolben gleich 3 Pins auf einmal
verzinnt.

von Manuel Fegerl (Gast)


Lesenswert?

Am einfachsten ist es wohl mit einer Adapterplatine.. dort verzinnst du
die Kupferflächen.. danach musst du den µC nurmehr auflegen, und mit
dem lötkolben über die pins fahren (ohne zusätzliches lot)..

von Hanspeter Roth (Gast)


Lesenswert?

Wer sendet mir einen Code in Asembler. Ich habe den original Code vom
Referenzdesing und Demoboard in C. Ich tausche gerne.

von Klaus (Gast)


Lesenswert?

Wieso keine RISC ??? ATmega sind doch nun die bessere wahl.

von Hanspeter Roth (Gast)


Lesenswert?

Jemand hat mir am 17.06.05 eine Antwort geschrieben. Beim Abholen ist
Mail verloren gegangen. Bitte nochmals senden. Danke

Ich bin weiterhin an einem einfache Source Code in Assembler oder C für
AT89C51SND1 interessiert oder jemand, der gegen Honorar etwas
prgrammiert.

Hp. Roth

von Tobias Schneider (Gast)


Lesenswert?

@Klaus:
dann gennst du doch bestimmt auch einen deiner tollen RISC AVRs der
einen MP3 Dekoder intergoert hat.

Gruß Tobias

von Werner (Gast)


Lesenswert?

Für den Fall das Bedarf besteht würde ich die Platinen für Euer Projekt
herstellen. TQFP Gehäuse sind gar kein Problem da ich die Layouts auf
fotografischem Wege herstelle nicht mit Laserdrucker, Folie usw. Mit
Lötstopplack und bei Bedarf verzinnt, doppelseitig jedoch leider nur
OHNE Durchkontaktierung. Erstelle auch Planfilme nach Euren Unterlagen.

von skoki (Gast)


Lesenswert?

Hallo Leute!

Ich bin noch immer nicht weiter gekommen bei meinem projekt und das hat
zwei gründe: der 1. ist zeit und der zweite ist weil ich keine zeit hab
hab ich´s immer noch nicht geschafft das ding zu programmieren.
kann mir jemand sagen ob man soz. in keil einen code schreiben kann und
auch mit keil rüberspielen kann und wenn ja wie genau das geht!?

danke und grüße!

skoki

von Manuel Fegerl (Gast)


Lesenswert?

du erzeugst mit Keil ein hex-file und spielst es mit FLIP auf den µc

von Hanspeter Roth (Gast)


Lesenswert?

Hallo Werner,
hast Du auch eine E-mail Adresse?
Melde Dich mal

Hp.Roth

von skoki (Gast)


Lesenswert?

Danke!

das hab ich auch schon probiert aber Hex files die ich in keil
hergestellt habe konnte ich entweder nicht richtig draufspielen oder
irgend was anderes tut seinen job nicht richtig. gibts irgendwelche
besonderen einstellungen oder sowas auf die ich so nicht gekommen sein
könnte?

danke !

skoki

von Jochen (Gast)


Lesenswert?

Hallo

Würde auch gerne den AT89C51SND1C mit dem Keil µVision2 programmieren.

Was muss ich da einstellen (als Target?)? Der AT.. ist ja noch nicht
vorgesehen im Keil.. :(

Beste Grüsse

von Ralf (Gast)


Lesenswert?

Hi Jochen,

also in meinem µV2 ist der aber in der Device Database drin. Guck noch
mal nach. Klar sollte aber sein, dass nicht alle Features des SND1 von
µVision simuliert werden können. Was alles simuliert werden kann, steht
auf der Keil-Homepage (www.keil.com).

Informier mich mal über dein Projekt, ich bin schon von anderen hier
aus dem Forum wegen dem SND1 angesprochen worden, vielleicht kann ich
bei Fragen zum SND1 helfen.

Ich habe auch vor, mit dem Ding einen Player zu basteln, aber erst muss
ich die aktuellen Projekte vom Tisch bekommen grins

Gruß Ralf

von Jochen (Gast)


Lesenswert?

Hi

Ich versuche auch, einen MP3 Player damit aufzubauen. Allerdings stehe
ich im Moment noch da wie der berühmte Ochse vor dem Berg :-)

In "meinem" µVision2 ist nur ein 'AT89C51' drin. Dieser entspricht
aber meines Erachtens nicht den Spezifikationen des AT89C51SND1C.
Da steht: 8051 based Full Static CMOS controller with Three-Level
Program Memory Lock, 32  I/O lines, 2 Timers/Counters, 6 Interrupts
sources,4 K Flash Memory,  128 Bytes On-chip RAM.

Der SND1C hat ja zB 2304 Byte interner RAM, 64k Flash...

ALLERDINGS: sehe ich das richtig, dass diese (Target-)Einstellungen eh
nur zum simulieren und programmieren des Chips nötig sind? Kann ich
nicht auch einfach so mein C-Programm schreiben, compilieren, .Hex file
erzeugen und es dann mit einem anderen Prog. (zB FLIP )
programmieren???

Freue mich über jede hilfreiche Antwort. Muss diese Probleme in
kürzester Zeit lösen..

von Jan Wieneke (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich versuche mich gerade an der Quarz-Auswahl.

Für diverse Funktionen wird ja der PLL verwendet. Hierfür gibt es zwei
weitere Register zum Berechnen aus der Quarzfrequenz.

Mit der Bestimmung des AUD Clock beim Audio Output Interface tue ich
mich recht schwer.

Ideal wäre natürlich, einen Quarz zu finden, der USB, UART, Audio
Interface und MP3 gleichermaße unterstützt.

Herzlichen Dank für die Unterstützung.

von Thomas Weggen (Gast)


Lesenswert?

Guten Tag,

wie viele hier bin auch ich damit beschäftig einen AT89C51SND1C zu
programmieren. Heute ist es mir gelungen die Hardware soweit ans laufen
zu bekommen das ich mit Flip ein Hex File auf den Chip laden kann. Nun
meine Frage: "Ich bin auf der Suche nach einem kleinen Main um mal nur
rasch zu schauen ob schon was geht. Dazu würde ich gerne zu einem Port
abwechselnt einsen und nullen schicken. Reicht da sowas schon?


#include "at8xc51snd1.h"

int main(void){

  int x,t;

  for(x=0;x<=10;x++){
    P2 = 0x55;
    for(t=0;t<=100000;t++){}
    P2 = 0x00;
  }
}


Gruß THomas

von Jochen (Gast)


Lesenswert?

Hallo Thomas,

Glückwunsch zur "Verbindungsherstellung"!
Mir ist HEUTE genau das Gleiche geglückt.
Zum Testen habe ich ganz einfach mal den P5 auf 0x5 (zB) gesetzt; dann
andere Kombis ausprobiert.

Jetzt muss ich auch mal sehen wie's weitergeht. Würde mich auch über
Quellcode zum Abspielen von MP3s freuen.

Viel Spass noch weiterhin beim Programmieren - den Anfang haben wir
geschafft.....

von Thomas S. (tstuetz)


Lesenswert?

definitiv NEIN
- Endlosschleife um das ganze
- P2 muss noch auf ausgang geschaltet werden (Datenblatt)
- unsigned long da Schleife von 0..100000
1
int main(void)
2
{
3
  unsigned long t; // int ist nur 8/16Bit breit bei 100000 ist da dann
4
kein Platz
5
  
6
  // Port 2 auf Ausgang damit Ports auch ankommen
7
  DP2 = 0xFF; // <- Bitte nicht steinigen ich kenn den at89C nicht
8
9
  while (1) {
10
    P2 = 0x55;               
11
    for(t=0;t<=100000;t++){} // Achtung KEINE Optimierung vom
12
Compiler/Linker zu lassen sonst wird diese Zeile entfernt!
13
    P2 = 0x00;
14
    for(t=0;t<=100000;t++){}
15
  }
16
}
Gruss

von Thomas S. (tstuetz)


Lesenswert?

Zeile 4 gehört ans ende von Zeile 3
und Zeile 12 gehört ans ende von Zeile 11
Gruss

von Thomas Weggen (Gast)


Lesenswert?

Hallo Thomas,

dein Code scheint richtig zu sein, allerdings finde ich im Datenblatt
nichts über ein "Port Direction Register".
Desweiter ist es mir nun auch nicht gelungen eine Reagtion am Port zu
bemerken.
Hier mal der Link zu dem Atmel Datenblatt des AT89C51SND1C:
http://www.atmel.com/dyn/resources/prod_documents/doc4109.pdf
Evtl. findest du ja darin etwas was mir helfen kann.

Gruß THomas

von Ralf (Gast)


Lesenswert?

Bei den 8051/52ern und deren Derivaten gibt es kein Direction-Register.
Wenn du eine Eins auf einen Ausgang schreibst, hast gleichzeitig den
Pin als Eingang konfiguriert. Eine externe Quelle kann den Pin auf Low
ziehen. Das heisst, wenn du einen Pin als Eingang verwenden willst,
MUSST du eine Eins drauf schreiben.

Steht alles im Datenblatt, bzw. ATMEL bietet auch ein PDF, in dem im
Detail beschrieben steht, wie genau der Aufbau der Ports ist. Heisst
glaub ich "Hardware Manual".

Gruß Ralf

von Thomas Weggen (Gast)


Lesenswert?

Hallo Thomas und Ralf,

die Sache mit den nicht existierenden Port Direction Register ist mir
nun klar geworden, allerdings ist es mir noch immer nicht gelungen
einem Port eine Reaktion zu entlocken. Kann ich wirklich einfach in
mein Main reinschreiben gebe was am Port aus, oder muß ich noch
irgendwelche initialisierungen vornehmen?

Gruß THomas

von Jochen (Gast)


Lesenswert?

Hallo Thomas

Probier doch mal folgendes:


#include <stdio.h>                                  // ANSI-C Standard
HeaderFile
#include <type_def.h>
#include <sub535.h>                                 // HeaderFile für
FKTs-Prototypen*/

#include <at8xc51snd1.h>

main() {

  P5    =  0xC;      //P5auf 0101b setzen
  P4    =  0x0;
  P3    =  0x0;
  P2    =  0x0;
  P1    =  0x0;
  P0    =  0x0;

while(1);

}

Hiervon das .hex erzeugen!

Dann:

1.)  !ISP Schalter schließen; also !ISP über Widerstand an Masse
2.)  USB Verbindung herstellen; (Kabel rein)
3.)  Spannung anlegen
4.)  Mit FLIP programmieren; also .hex file ’rüberladen
5.)  !ISP Schalter öffnen
6.)  Reset ausführen; ((also Spannung weg >> Spannung dran))

SO konnte ich Reaktionen auf den Ports feststellen; hatte 'ne Weile
gedauert bis ich da hinter kam.
Ich hoffe du programmierst auch via USB und mit dem FLIP; sonst kannst
Du diese Hilfe "knicken" :-)

Viel Erfolg

von Ralf (Gast)


Lesenswert?

probiers mal mit dieser main (code nicht geprüft):
1
void main(void) {
2
unsigned int uiTemp;
3
while(1) {
4
for(uiTemp = 65535; uiTemp; uiTemp--);
5
P1 = !P1;
6
}
7
}

Damit müsstest du alle P1-Pins togglen sehen, also ständig von 1 nach 0
und wieder zurück. Die "65535" sollten einen ausreichend großen
Zeitraum lassen, um es auch mit einem Voltmeter messen zu können, falls
du kein Oszi hast.

Gruß Ralf

von Thomas Weggen (Gast)


Lesenswert?

Hallo Jochen,

na das hört sich ja alles sehr gut an, und genauso wie du es
beschrieben hast gehe ich auch vor. Die Schritte klappen auch bei mir
alle einwandfrei. Zur Übertragung nutze ich auch Flip und USB. Das
einzige was nicht so klappt wie es soll ist das Ergebnis.
Port5 alles High
Port0 alles Low
Port1 alles High
Port2 alles High
Port3 alles High
Port4 alles High

Ich programmiere mit "MIDE-51 Studio: IDE for MCS-51" und lasse mir
davon auch das Hex-File erzeugen. Als Zielumgebung habe ich 8051
angegeben. Vieleicht bekomme ich ja kein richtiges Hexfile. Könntest du
mir wohl bitte das kleine Programm mal als Hex-File mailen.

Besten dank übrigens für die vielen Antworten auf meine Fragen, ich
denke wenn hier mal der erste Schritt getan ist und sich da überhaupt
mal was tut komme ich auch wohl alleine weiter.

Gruß THomas

von Jochen (Gast)


Angehängte Dateien:

Lesenswert?

Anbei mein .hex.

Es sollte die Ports 0-4 auf LOW setzen;

Port 5 habe ich auf 0xC; gesetzt. Somit sollte Pin

5.0 = 0
5.1 = 0
5.2 = 1
5.3 = 1   sein.

Ich programmiere übrigens mit dem Keil µVision2.
Hast Du auch alle wichtigen Dateien includiert und sind diese auch
vorhanden?

von Thomas Weggen (Gast)


Lesenswert?

Hi Jochen,

also leider hat mich auch dein Hex-File nicht weiter gebracht, es läst
sich zwar hochladen auf den Chip, aber es tut sich einfach nacher
nichts. Sprich die Ports haben alle die gleichen Werte wie schonmal
angegeben.
Ich habe das Gefühl der Chip fängt einfach nicht an den Code
auszuführen. Muß man da evtl. noch irgendwo auf "Start" drücken.
scherz

Naja, ich mach jetzt erstmal Wochenende, falls es noch einen guten Tip
gibt würd ich mich freuen.

Bis später Gruß THomas

von Jochen (Gast)


Lesenswert?

Hast Du nach dem Programmieren dann auch wieder den !ISP Schalter
umgelegt und einen Reset gemacht??
Wenn ja, und trotzdem nix geht, könnte es eigtl höchstens noch der
falsche Bootloader sein?? Sicher, dass der USB Bootloader drauf ist?
Wenn wiederum ja, und nix geht, kann ich leider nicht mehr
weiterhelfen.
Bin da auch noch zu n00bich dazu...

Viele Grüsse

von Ralf (Gast)


Lesenswert?

Wenn der USB-Bootloader drauf ist... Man kann dem SND1 soweit ich weiss
auch in der Applikation sagen, dass er mit dem Bootloader starten soll,
und das geht glaub ich auch mit dem Flip. Es könnte also sein, dass er
nach dem Programmieren und neu starten auch wieder in den Bootloader
springt, dazu ist nicht zwingend die Betätigung des ISP-Schalters
nötig, sondern man kann auch ein SFR-Bit setzen. Vielleicht führt FLIP
diese Anweisung falsch aus...

Ist aber nur so ne Idee...

Gruß Ralf

von Jochen (Gast)


Lesenswert?

Beim FLIP kann man auf der rechten Seite das BLJB setzen; WENN dieses
gesetzt ist, geht er auch in den Bootloader; muss also draussen sein,
um das Anwenderprogramm zu starten....

von Tobias S. (tobias)


Lesenswert?

Hi,
jo so ein aehnliches Probleme hatte ich damals mit meinem SND1 auch.
Lässt sich löesen, wenn man das BLJB umstellt.

Gruss Tobias

von Thomas Weggen (Gast)


Lesenswert?

Guten Tag,

besten Dank an alle die gute Vorschläge gemacht haben.

Das Problem bestand tatsächlich darin, das im Flip das Bit "BLJB"
gesetzt würde, und dadurch der Chip immer wieder den Bootloader
startete und nie meinen Code.

Gruß THomas

von Tobias S. (tobias)


Lesenswert?


von Thomas Weggen (Gast)


Angehängte Dateien:

Lesenswert?

Guten Tag,

hab mal wieder eine Frage, kann ich an einen Port des AT89C51SND1C
direkt ein Display anschließen oder muß da noch irgendwas dazwischen.

Ich habe ein LCD 4x20 (PVC200403PYL) an Port2 angeschlossen und möchte
es im 4Bit Modus betreiben. Ein paar Funktionen habe ich auch schon
geschrieben (Initialisieren und Zeichen ausgeben), aber leider tut sich
nichts sinnvolles.
Ich habe mir mal die Signale am Port mit einem Oszi angeschaut. Solange
ich das Display nicht angeschlossen habe schaut alles gut aus, man kan
die Bits erkennen, schließe ich allerdings das Display an den Port an,
bleibt nicht viel übrig.
(Linkes Bild zeigt Signale am offenen Port, rechtes Bild zeigt das was
übrig bleibt wenn ich das Display anschließe. Die Peaks habe ich von
Hand nachgezeichnet da sie auf dem Foto schlecht zu erkennen waren.)
Wer hat für mich mal wieder einen guten Tip?

Gruß THomas

von Jochen (Gast)


Lesenswert?

HI

Ich DENKE! mal, dass Dein Display zu viel Strom zieht und die Ausgänge
somit in die Knie gehen.
Man kann ja auch nicht einmal eine LED an nen I/O Pin hängen, da der
max. Ausgangsstrom 5mA beträgt (s.S. 184 im Manual ).

Hoffe, das hilft Dir weiter.

Viele Grüsse

von Thomas Weggen (Gast)


Lesenswert?

Tachchen,

Na so etwas hatte ich mir schon fast gedacht, konnte mir aber nicht
vorstellen das die 5mA nicht reichen sollten. Hatte die auch schon im
Datenblatt nachgeschaut.
Gut, und wie finde ich dazu nun eine Lösung? Muß ich nun an jedes
Portbit einen Transistor zum Verstärken hängen oder gibt es da andere
Möglichkeiten?

Gruß THomas

von Jochen (Gast)


Lesenswert?

Da kann ich leider nicht weiterhelfen, da ich sowas noch nicht gemacht
habe. Allerdings sieht es auf den Beispielen in der Kurzübersicht des
AT89 komischerweise so aus, als wäre das Display direkt angeschlossen;
Kann aber auch nur so skizziert sein-also dass doch noch etwas
dazwischen muss..

Wenn ich nicht weiterwüsste (an Deiner Stelle) würde ich es einfach mal
mit ner "Treiberstufe" ( zB Transistoren, oÄ, gibts sicher fertig auf
nem IC ) probieren. Dann weisst Du zumindest mal,ob's am Strom oder an
was anderem liegt.

von Ralf (Gast)


Lesenswert?

Wenn das Signal unidirektional ist, kannst du ja mit Z-Diode (5V nach
3V) oder mit Transistor (3V nach 5V) arbeiten.

Ist es bidirektional (z.B. Daten-Port), kannst du mal versuchen, die
Pegelwandler-Schaltung aus den I2C-Specs von Philips nachzubauen.

Ralf

von Thomas Weggen (Gast)


Lesenswert?

Guten Tag

an alle die, die mich mit guten Ideen unterstützt haben.
Ich habe das Problem mit dem Display nun in den Griff bekommen.

Aufgrund das ich für den AT89C51SND1C 3V benötige und für das Display
5V habe ich zwei Netzteile eingesetzt. Nachdem ich nun die beiden
Massen untereinander verbunden habe klappt alles einwandfrei.

Gruß und bis zum nächsten Mal

THomas

von Thomas Weggen (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich bin mal wieder auf der Suche nach einem gutem Tipp.
Ich versuche nun von den Ports zu lesen. Mit dem Code im Anhang ist es
mir leider nur Möglich von Port0 zu lesen, aber nicht von Port1. Wo
liegt mein Problem?

Gruß THomas

von Steffen (Gast)


Lesenswert?

Hallo!

Ich habe ein kleines Problem mit der Ansteuerung einer MMC Karte über
das MMC Interface.

Beschäftigt sich da vll. jemand damit und kann mit mit der MMC Karte
evtl. weiterhelfen? Ich habe schon einiges gecodet, komme aber nicht zu
einem Ergebnis, da die Karte nicht antwortet.

Wie funktioniert die Initialisierung der Karte? Wenn ich einen Command
schicke und RESPEN nicht set und gecleared habe, erzeugt trotzdem EORI
(End of Response) einen Interrupt (obwohl ich keine Response erwarte).
EOCI (End of Command) erzeugt jedoch keinen Interrupt. Das Register
MMMSK ist jedoch 0x00 - es sollte also jedes Bit des MMINT einen
Interrupt auslösen können ...

Viele Dank!

Liebe Grüße
Steffen

von Jochen (Gast)


Lesenswert?

Hi Steffen

Bin auch gerade dran, eine MMC anzusteuern.

Ich bin aktuell soweit, dass ich die Initialisierung geschrieben habe
und nun das 1. CMD schicken will.
Leider fehlt mir noch die MMC.. muss ich heute kaufen...

Was ich nicht ganz verstehe: Wie geht das mit den 5 CMD- Bytes, die in
das 1Byte grosse FIFO sollen??

schreibe ich da einfach

MMCMD=0x01; //für CMD1
MMCMD=0x00; // für "kein Argument"
MMCMD=0x00;     "
MMCMD=0x00;     "
MMCMD=0x00;     "

??

Handelt er das dann selber irgendwie?? Oder muss ich da mit einem Array
und Pointer arbeiten????

Vllt. kannst Du mir ja mal Deine MMC-Files schicken damit ich bisschen
vergleichen kann. Ich mail Dir dann mein file.. Hauptsächlich mit der
Initialisierung. Evtl. kommen wir dann ja Deinem Problem auf die
Schliche..

Viele Grüsse und viel Erfolg

Jochen

von Thomas Weggen (Gast)


Lesenswert?

Hallo Jochen,

der FiFo hat 5-Byte, und du beschreibst ihn wie du es schon
vorgeschlagen hast, alles nacheinander da rein.

Mehr weiß ich aber leider auch noch nicht. Wie hast du denn die
Initialisierung gemacht, wie sind denn die generellen Abläufe beim
zugriff auf die Karte?

Gruß THomas

von Daniel (Gast)


Lesenswert?

hat sich eigentlich schon jemand mal mit dem USB-Teil
auseinandergesetzt.... falls das jemand machen moechte, wuerde mich
freuen dabei zu helfen (ohne hilfe ist es naemlich VERDAMMMMMMMMMMT
muehsam) - habs vor einem jahr gemacht und ist gar nicht mal so schwer
(naja... wenn man weiss wies funktioniert) - es gibt naemlich (fast)
gar keine informationen bezueglich usb-programmierung fuer den
at89c51snd1c - also was so sachen betrifft wie enumeration-prozess und
windows-erkennung eines massenspeichers - usw......
also falls das jemand machen moechte... nur zu (bin zur zeit etwas
verhindert und kanns deshalb nicht selber machen)
daniel

von Christoph (Gast)


Lesenswert?

Hallo zusammen,

ich hätte mal ne Frage betreffend der Ausgabe von Audiodaten ( WAV )
über die I2S Schnittstelle. Hat sich schon jemand damit auseinander
gesetzt? Mir ist es momanten völlig unklar wie (bzw. ob man überhaupt)
WAV Dateien - stereo und 16 bits/sample - über die I2S Schnittstelle
korrekt ausgeben kann ... !? Oder ist er auf 8 bits/sample und mono
beschränkt?

Würde mich freuen wenn da jemand mehr weiss.

Gruß

Christoph

von Christoph (Gast)


Lesenswert?

sry ... falsche email addi angegeben ;)

von Thomas Weggen (Gast)


Lesenswert?

Nabend,

wer programmiert seinen AT89c51SND1c auch noch mit der
Entwicklungsumgebung M-IDE Studio (www.opcube.com) und kann mir sagen
wie er den µC richtig eingestellt hat. (Device)

Gruß THomas

von Onkl Doc (Gast)


Lesenswert?

An Christoph.

Der Controller gibt "richtige" Wave-Daten aus und zwar 16Bit Stereo.
Im Datenblatt ist das auch sehr schön zu sehen. Zuerst 16 Takte (Clock)
für den linken Kanal, dann schaltet "DSEL" um und dann 16 Takte
(Clock) für den rechten Kanal. Hängt natürlich von den Einstellungen
des "Audio Output Interface" ab.

Wenn du die Daten mit externer Hardware auffängst, in einer Datei
speicherst und einen Wave-Header vorne an stellst, dann hast Du eine
"echte" Wave-Datei.

Gruß Onkl Doc

von Christoph (Gast)


Lesenswert?

Hallo Onkl Doc,

und vielen Dank für die schnelle Antwort. Hast du dies so
schon realisiert?

Das Problem ist folgendes: Ich kann die I2S Schnittstelle
für die Weitergabe von WAV Dateien nur über den 8 Byte Audiobuffer
bedienen. Wenn ich den Audiobuffer über das Datenregister (AUDDAT) mit
8 Bytes fülle (bei einem 16 Bit Stereosignal wären das ja dann je 2
Abtastwerte für links und rechts) und mir dann anschaue was er auf dem
I2S Bus sendet, ist es immer nur 1 Byte welches er auf den linken UND
rechten Kanal schreibt. Ausserdem füllt er die restlichen 8 Bit pro
Kanal mit 0 auf. Das bedeutet bei einem 16 Bit stereo Signal schickt er
ein 8 Bit mono Signal (natürlich nicht mehr korrektes Signal) raus.

Normalerweise sollte er doch bei diesem Signal die ersten 16 Bit auf
den linken Kanal schreiben und die nächsten 16 Bit auf den rechten
Kanal. Das würde in meinen Augen auch Sinn ergeben, da man den Buffer
immer wieder mit 4 Bytes nachfüllt.

Ich hoffe das Problem ist so rübergekommen, ansonsten würde ich einfach
mal nen Bild von den I2S Bus-Datenstrom hier reintstellen.

Gruß  Christoph

PS: "...Hängt natürlich von den Einstellungen des "Audio Output
Interface" ab. ... "  Eventuell habe ich ja auch eine
Einstellmöglichkeit übersehen !?

von Christoph (Gast)


Lesenswert?

So ... laut ATMEL Support ist der Chip wohl wirklich nur für 8 Bit mono
ausgelegt - Voice Recording. Ab November solls wohl eventuell ne neuere
16 Bit Version geben, Näheres ist aber noch nicht bekannt.

von Axel Foley (Gast)


Lesenswert?

greez,

ich entwickle auch gerade mit einem snd1c,
habe ihne vor 4 wochen gekauft, habe jedoch jetzt ein problem:
wollte ihn programmieren habe filterschaltung, resetschaltung (Wid +
Kondensator + Taster) und quarz aufgebaut und habe mit einem usb kabel
die d+ und d- leitungen angehängt. natürlich mit 2 mal 27R wid und 1,5k
von d+ auf vcc. PC hat das Gerät erkannt, danach habe ich nen treiber
bei der flip software für usb installiert.

ISP über wid auf GND, Reset:
mein problem wenn ich im flip verbinden über usb auswähle kommt keine
fehlermeldung und rechts unten wird etwas ROT hinterlegt.
aber versuche ich nun den baustein zu löschen oder sonstiges bekomme
ich CONNECTION TIMED OUT...

was kann ich tun??
hab gehört es ist möglich das der SND1C beide bootloader integriert hat
und falls nicht woher weis ich welchen ich habe?
weiters benötige ich einen Resetbaustein oder müsste es auch ohne
gehen?

mfg
Axel Foley

von Jochen (Gast)


Lesenswert?

Hi Axel

Frage: Meldet sich dein µC wenn Du ihn per USB verbindest und
einschaltest?? ( Sound, oder Symbol neben der Uhr rechts unten.. )
Reset ist dafür nicht nötig. Lediglich der ISP-Schalter muss auf der
richtigen Position stehen...

Wie man herausbekommt, welcher BL drauf ist, weiss ich nicht.
Allerdings kann ich mir nicht vorstellen, dass 2 BLs zusammen drauf
sind. Ich meine gehört/gelesen zu haben, dass standardmässig der USB-BL
drauf ist, und man den UART-BL selber draufmachen müsste, wenn man ihn
wollte...

Als Reset habe ich einfach nen Kondensator gg. Plus geschaltet.. Siehe
Datenblatt.. Löst so einen Power-On-Reset aus.
Ich empfehle aber noch einen Taster parallel zum Kondensator
einzubauen. So kannst Du manuelle Resets ausführen.. Ist manchmal
nötig.....


**Zitat: "wenn ich im flip verbinden über usb auswähle kommt keine
fehlermeldung und rechts unten wird etwas ROT hinterlegt"

??Warum soll denn 'ne Fehlermeldung kommen??
??WAS wird da rot hinterlegt??


Viele Grüsse und weiterhin viel Erfolg
Jochen

von Axel Foley (Gast)


Lesenswert?

hi

@jochen
1. danke für die schnelle antwort
2. es wird start application ROT hinterlegt

aber ich kann den baustein (SND1C) nicht löschen etc.

weiters glaube ich nicht das der snd1 sich nicht meldet kann es aber
jetzt nicht überprüfen weil ich erst am MO wieder dazu komme es zu
überprüfen,
um noch mal zu hinterfragen:
zitat: Sound, oder Symbol neben der Uhr rechts unten
die FLIP software macht einen ton wenn sie mit dem snd1 kommunizieren
kann?

mfg
Axel Foley

von Steffen (Gast)


Lesenswert?

Hallo Axel.

Wenn die Verbindung mit dem SND1 hergestellt ist, wird die gesamte
rechte Seite des Flip aktiv. Unter anderem wird auch der Button "Start
Application" rot hinterlegt. Das ist richtig so.

Nicht die FLIP Software gibt den Ton aus, sondern Windows. Immer, wenn
sich ein neues USB Gerät anmeldet gibt Windows diesen Ton aus. Dieser
Sound sollte aus zwei einzelenn Tönen bestehen. Der erste tiefer, der
zweite höher. Unten neben der Uhr in der Taskleiste sollte dann ein
Symbol auftauchen. Kommt sowohl der Sound, als auch das Symbol nicht,
scheint schon hier etwas nicht zu funktionieren.

Wichtig: Bevor du das USB Kabel ansteckst, musst du den Jumper für ISP
setzen und danach einen Reset durchführen (am besten mit einem
Resettaster, wenn du keinen hast, einfach Strom abklemmen und wieder
anklemmen). Dann erst an USB anstöpseln.

Welche Version des FLIP verwendest du?

Viele Grüße
Steffen

von Axel Foley (Gast)


Lesenswert?

hi steffen

1. wenn ich mich richtig erinnere wird die rechte seite des flips
aktiv.
2. ich verwende die 2.4.4 weil ich die 1.8.8 nirgends gefunden habe,
obwohl ich denke das die neuere nicht schlechter sein wird (wär ja
unlogisch)

thx für die reihenfolge weil ich habe mich schon gewundert das es
teilweise ging zu verbinden und teilweise nicht. bin aber schon
draufgekommen das ich zuerst flip starten muss und dann erst
anstecken...

mfg
Axel Foley

von Steffen (Gast)


Lesenswert?

Hallo Axel,

"wenn ich mich richtig erinnere wird die rechte seite des flips
aktiv."
hab ich was anderes behauptet?

Ich verwende die Version 1.8.8 - Ich habe mal gelesen, es solle mit der
neuen Version Probleme geben. Ob dies stimmt oder nicht kann ich nicht
beurteilen. Mit der Version 1.8.8 hat es auf Anhieb geklappt und ich
habe dann auch nichts mehr daran geändert.

Ob du zuerst ansteckst oder zuerst FLIP startet (zumindest bei der
Version 1.8.8) hat mit der Funktion absolut nichts zu tun.

Viele Grüße
Steffen

von Axel Foley (Gast)


Lesenswert?

greez

ja wen es wirklich an der version liegt köntest du mir dan die 1.8er
schicken???

mfg
Axel Foley

von Steffen (Gast)


Lesenswert?

Ich werd mal schauen, ob ich die Installation noch finde und schick sie
dir dann per Email ...

Viele Grüße
Steffen

von Axel Foley (Gast)


Lesenswert?

@steffen

gefunden? hoping

von Jochen (Gast)


Lesenswert?

Ich habe die 2.4.4 und die tut ohne Probleme.

Ich habe den µC immer per USB am PC, schalte die Spannung ein (
ISP-Schalter natürlich gg. Masse ) und XP meldet sofort das erkannte
USB-Gerät.
Nun im FLIP den USB-Port öffnen und FLIP wird "aktiv".
Wenn ich dann das .hex file per FLIP über USB auf den µC programmiert
habe, starte ich das Programmierte per Klick auf "Start Application"
[ rot hinterlegt ;-)); zZ mache ich nur Ausgaben auf das Terminal... ]

Gaaaanz selten kommt es vor, dass FLIP ein Problem macht. Dies liess
sich aber IMMER per neustarten des FLIPs beheben. ist ja kein
Problem...

Geht es Bei dir manchmal und manchmal nicht??

Beste Grüsse

Jochen

von Steffen (Gast)


Lesenswert?

Hallo Axel,

Datei gefunden - Email ist unterwegs ...

Viele Grüße
Steffen

von Steffen (Gast)


Lesenswert?

@Axel: Funktioniert es denn jetzt?

von Axel Foley (Gast)


Angehängte Dateien:

Lesenswert?

greez @ all,

noch immer hardcore problem:
hab jetzt neues board mit neuem prozessor gemacht aber funkzt nix und
brauch des bald, zumindest programmieren!!

mal ganz genau: hab angehängte schaltung aufgebaut und wollte
programmieren über usb.

hab dann das neu erkannte usb gerät am pc installiert (treiber aus
flip), flip gestartet (1.8.8 und 2.4.4 Version ausprobiert), konnte
aber USB PORT NICHT ÖFFNEN.

hab weiters noch keinen quarz wie in der schaltung verwendet sondern
mit funktionsgenerator (1MHz) rechteck mit 1,5V DC und 3V AC an X1
angeschlossen, während X2 unconnected blieb. und hab bei jedem
eingezeichneten versorgungspin stützkondensator (100nF) verwendet.

bitte helft mir, fehler in der schaltung oder sonstiges...

kann man die funktionsfähigkeit des chips auch ohne das man ihn
programmiert testen, bsp: ALE leitung (freq: 1/6 von takt)????

mfg
Axel Foley

von Jochen (Gast)


Lesenswert?

tausch mal die Anschlüsse D+ und D-. Bei mir sind die umgekehrt
angeschlossen; also Pin 2 der USB Buchse auf D- und Pin 3 auf D+.

Schreib bitte, ob's tut.

von Axel Foley (Gast)


Lesenswert?

@ jochen

hab im google unter bildersuche "usb b" eingegeben (wegen der b
buchse) und habe da die anschlüsse entdeckt und dementsprechend
verdrahtet -> zu 99% richtig, ausser das bild im google war falsch

visit:
http://www.linuxfocus.org/common/images/article286/usb_typeB_receptacle.gif

hast du sonst keinen fehler entdeckt?
müsste der prozessor mit jeder frequ funktionieren?

mfg
Axel Foley

von Jochen (Gast)


Lesenswert?

entweder steh ich jetzt voll auf m schlauch, oder.. Ich sehe auf dem
Bild auch bei Pin 2 D-; bei Dir allerdings D+... Dreh's doch einfach
mal ( wenn möglich; kann ja nicht viel passieren. )

Ober er mit jeder f funktioniert, weiss ich nicht. Im Datasheet steht
ja nur 20MHz max. Weiss nicht, ob das mit Deiner Methode funktioniert.

von Axel Foley (Gast)


Lesenswert?

greez,

bin kurz davor das ich es mit vertauschte usb pins versuche,
aber hat jemand in meiner schaltung einen fehler entdeckt oder passt
die beschaltung??

mfg
Axel Foley

von Axel Foley (Gast)


Lesenswert?

greez

habs geschafft mit FLIP 1.8.8, kann jetzt bauteil löschen, programieren
und vergleichen aber er macht nicht das was ich will (PIN toggeln).

was muss ich im FLIP genau alles machen?

run -> bljb ändern -> start applikation??

mfg
Axel Foley

von Hanz Franz (Gast)


Lesenswert?

Hallo zusammen!

Bin gerade an einem Projekt mit einem 8051 und einer MMC Karte dran.
Kann mir da jemand bezüglich der Serriellen schnittstelle und der
Kommunikation hilfe geben. Der Controller besitzt kein SPI Bus und muss
am besten mit 2 Seriellen Leitungen angesteuert werden! Geht das
überhaupt???

MFG
Hanz

von Jochen (Gast)


Lesenswert?

Hi Alex.

Sorry. Irgendwie voll den Threat vergessen.

Hast Du's mittlerweile geschafft?? Wenn nicht, poste einfach noch mal
Deine probs. Vllt kann ich helfen.

Ich bin mittlerweile so weit, dass ich "nur" noch die Daten von der
MMC über den MP3 Dekoder und den DAC.. ausgebebn muss...

Gruss
Jochen

von Jochen (Gast)


Lesenswert?

SO; erste Geräusche sind auf dem Lautsprecher........

von Andreas Hubel (Gast)


Lesenswert?

Hi
ich habe hier einen fertigen MP3-Player der wohl auch auf diesem Chip
basiert... Nur gefällt mir die Software nicht so richtig. Hat von euch
zufällig Jemand ne Idee, wie ich die erweitern kann?

MfG ah

von Micha Balvert (Gast)


Lesenswert?

Hello everyone,

Here a question in english, I'm from holland and i can read Deutsch
but unfortunaly i can't write it. I hope that one of u guys will take
the time to read this message. You can reply in deutsch.

I've a problem with the AT89C51SND1C chip and i've searched all the
internet. I have a working USB connection, and Flip (2.4.4) regonizes
the chip. I can read the signature bytes and, i'm able to open an USB
connection. But when I try to read or program (or erase, verify, blank
check)the chip, i get the "time out" message all the time.
Does anyone of you also got this problem before? I'm running on an
ext. quartz 20Mhz with 2 10pF capps.

I'm using the basic schematic that multiple users have attached to
their messages.

Thank you all for your time. I hope that someone can help me out with
this. This is the first time i'm working with flip and C51 chips. I
used to work with the AVR's for almost 7 years now. This is a basic
interface problem i guess.

Greetings from Holland.

Micha.

von Jochen (Gast)


Lesenswert?

Hi Micha

Hast Du das BLJB gesetzt?? Wenn ja, raus damit!
Ist Dein Security Level auf 0???!!!

Ansonsten.. hmmm.. ist komisch.. Du kannst eine USB Verbindung
herstellen aber nicht programmieren?! hmm

von Micha Balvert (Gast)


Angehängte Dateien:

Lesenswert?

Mmm i've tried everything, but even when i want to toggle the BLJB bit,
the chip stops to communicate. I think that i may have a power problem.
or another hardware problem.
Take a look at my screenshot, everything seems to be ok in FLIP.
But when i open and close USB for a few times (in flip software),
suddenly the chips stops responding. The only way to get the chip back
alive is by a hard reset (USB out -> USB in).

My circuit is as follow:

VBUS -> LM1085 (3V3 regulator)
RESET -> 2.2uF to VCC
PSEN -> 2k2 to gnd
D+ -> trough 27 ohms to controller, and 1k5 pulled-up to VCC
D- -> also trough a 27 ohm to controller
Every power pin has 100nF to GND

I can supply my chip from the VBUS voltage can I?
The only thing i can think of is that the PLL circuit is not good.
It's a wire wrapped pcb so this may cause some errors. But I still
think it is strange. Why read the signature perfect, but everything
else gives a timeout error??

von Micha Balvert (Gast)


Lesenswert?

Hello,

Just want to let you know that i finaly got it to work.
I did serveral things. A separate power supply, i placed the PLL filter
much closer to it's pin. and placed a 100uF cap behind my regulator. I
also changed the crystal from 20Mhz downto 16Mhz.

I don't know which action did the job but i finaly got some leds
flashing.. whoehoee my first C51  code written.

Thnx for your time.

Regards,

Micha

von jochen (Gast)


Lesenswert?

Hi! Super Freut mich!! Ich kämpfe im Moment selbst mit meinem
Kontroller..
Viel Spass weiterhin.
Gruss

von richard schneider (Gast)


Lesenswert?

hallo,
kann von euch scho jemand daten vpn der mmc karte auslesen und am audio
dac ausgeben?
ich sitze jetzt schon ewig beim auslesen der mmc karte und bekomme
keine vernünftigen ergebnisse.
wäre für jede hilfe dankbar, gegebenfalls auch eine beispielcode
lg richie

von jochen (Gast)


Lesenswert?

jo, geht mittlerweile.. Wie weit bist Du denn?
Hast Du die richtigen Commands parat? Sind die richtigen Frequenzen
eingestellt? Ist dir Karte im Transfer State?

Beste Grüsse

von Newbie (Gast)


Lesenswert?

Eine Frage wofür sind die 27 Ohm Widerstände überhaupt gut? Zum Schutz
oder.....

von Netferry (Gast)


Lesenswert?

Autor: Patric
Datum: 23.08.2004 19:23

------------------------------------------------------------------------ 
--------

Schaltplan vom Demoboard gibt's hier:
http://www.scintilla.utwente.nl/~arjanb/development-board-schematic-V2...

Dieses Link funtioniert nicht, aber ich benötige dringend den
schematic. Ich will eine development-board bauen zur AT89C51SND1C.
Könnte es mir jemand schicken, wenn jemand es hat?
netferry@freemail.hu

Ferry

von Jochen (Gast)


Lesenswert?

Hi

Ich habe ein kleines Problem mit meinem AT89:
Ich verwende eine MMC Karte für die MP3s. Das Abspielen klappt auch
ohne Probleme - leider kriege ich die Karte nicht dazu das Abspielen
wieder zu unterbrechen. Ich habe schon alles probiert: CMD12; Takt auf
Null und die Karte komplett neu initialisiert; andere CMDs,um die Karte
wieder in den Transfer State zu bekomme. ..
Leider kommt immer das gleiche Problem, dass ich die Flags EORI und
EOCI ( also CMD gesendet, Resp. empfangen ) im MMINT Register NICHT auf
1 bekomme.

Wenn jemand eine Idee hierzu hat, wäre ich mehr als dankbar für die
Hilfe!!

Beste Grüsse
Jochen

von Jochen (Gast)


Lesenswert?

Hi

Wenn Du alles bekommst ist es ja kein Projekt mehr ;-)


Viele Grüsse
Jochen

von Pat F. (breaker87)


Lesenswert?

Mein Problem ist, dass ich noch nie 8051er programmiert habe (bis jetzt
nur AVRs). Darum würde ich gerne mal den c-code haben, um mich ein
bisschen einzuarbeiten...

"Learning by viewing" ;o)


mfg

von drhawk (Gast)


Lesenswert?

Hi!
Ich hab mir nun auch einen 89C51SND1C besorgt.

Leider ist der Link down:
http://www.scintilla.utwente.nl/~arjanb/development-board-schematic-V2

Wäre jemand so nett und kann mir das mal zuschicken?
Würde mich auch über Sourcecode freuen da ich nicht so recht weis wo
ich anfangen soll.

von jack (Gast)


Lesenswert?

hi
i'm 2 question
1: what snd1 programmer software?
2: what snd1 programmer hardware( pcb& schematic?

von Ralf (Gast)


Lesenswert?

Hi Jack,

SND1 is self-programming via Bootloader, Interface USB or serial. See
Bootloader DataSheet. PC-Software is FLIP from ATMEL.

Ralf

von drhawk (Gast)


Lesenswert?

hab mir nun ein board gelötet
wenn ich den mc mit meinem pc verbinde, dann bekomm ich nur die meldung
"USB Gerät wurde nicht erkannt" und es lässt sich auch der Flip
Treiber nicht installieren.
ISP ist über 3kOhm gegen Masse verbunden.

Kann mir jemand Flip 1.8.8 schicken?

von drhawk (Gast)


Lesenswert?

hab die 1.8.8 eben gefunden
auch diese treiber lassen sich nich installieren

von drhawk (Gast)


Lesenswert?

hab eben rausgefunden dass ich den isp pin anfangs nur über einen 1.5
ohm widerstand an masse gehänt habe.
hab ich den chip damit zerstört?

von drhawk (Gast)


Lesenswert?

als ich ihn eben nochmal eingesteckt habe wurde er von windows erkannt
und installiert.
flip hat dann allerdings immernoch eine fehlermeldung gebracht, und als
ich ihn nochmal eingesteckt habe stand ich wieder vor dem alten problem

von drhawk (Gast)


Lesenswert?

von heute auf morgen läuft das teil plötzlich ohne probleme.

kann man an port0 ohne weiter ein display direkt ranlöten und steuern?
oder muss ich dazu einen anderen port benutzen wenn ich nichts
zusätzlich dazwischen schalten möchte?

von Ralf (Gast)


Lesenswert?

Kommt drauf an, welches Display...
Wenn es ein HD44780 Display im 4-Bit Betrieb ist, könnte es gehen, wenn
du mit MOVX arbeitest. Wobei der SND1 ja ein 3V µC ist, und das Display
5V, also evtl. noch n bisschen Schutzbeschaltung.

Wenn du nicht mit MOVX arbeitest, also z.B. mit MOV P0 o.ä., dann
brauchst du Pull-Ups am Port0, weil der dann ohne interne PullUps
arbeitet.

Und du darfst halt nix weiter am Datenbus haben wie RAM usw.

Ralf

von Andreas (Gast)


Lesenswert?

Kann Bitte, Bitte jemand mal den Code für das ansteuern eine MMC Karte 
Posten (Jochen! du hast es ja geschafft).
wir hängen schon total entnervt herum und wissen nicht wirklich weiter!

Bitte helft uns!

Danke!

mfg Andreas und Michael

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.