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
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
hallo Steffen ich fange auch gerade an, einen MP3 Player zu entwickeln. Woher hast du Deinen SND1 ? gruß
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
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.
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
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
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
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
Schaltplan vom Demoboard gibt's hier: http://www.scintilla.utwente.nl/~arjanb/development-board-schematic-V2_2.pdf
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
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
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
Hallo Peter, danke für die Library, ich werde sie mir mal ansehen! Viele Grüße Steffen
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
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
@Steffen Hi, wie bei allen 8051èr, sind am Port P0, kein internen Pull-Ups. Deshalb die externen. Mfg Sascha
@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
@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
@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
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
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.
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
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
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
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.
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
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
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
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
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
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
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!
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
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
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
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 ?
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
wir haben einen 1,5k pull up an der d+ leitung ... wie gesagt er meldet sich nicht :(
Ich weiß nich ob sich das verallgemeinern lässt, aber beim IO-WARRIOR ist an der D-Leitung ein 7K5 Pullup verwendet worden.
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
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
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 ...
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
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
Hi das ist nicht so extrem kritisch und dürfte nicht die Erkennung verhindern. Wenn du aber 27Ohm da hast nimm 27 Ohm. Matthias
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
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
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
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 :(
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 ?
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
@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
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
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!
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
achso meinst du das, ich verwend gar keine buchse ... das sind nur 3 pins + selbstgebasteltes kabel (das aber 1000% stimmt) mfg
@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
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!
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
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!
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
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
Hi hab auch mal was gemacht mit dem ding hab auch nen funktionierendes layout dazu. Gruss flo
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
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
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
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
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?
Hi Netbandit, müsste gehen. Du könntest einen einzigen Frame im Code-Speicher unterbringen, und damit den Decoder füttern. Gruß Ralf
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.
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....
@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
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
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?
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!
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!
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 ...
Hi code kann ich nicht raus geben... Kannst du die fragen per mail schicken? gruss flo
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
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
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!
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 :)
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.
Hi Happel, kannst du ungefähr abschätzen, wie groß das Porto von dir nach Baden-Württemberg ist? Gruß Ralf
Obwohl, fällt mir gerade ein, ist ja eigentlich nicht streckenabhängig. Wo dürfte denn das Porto ungefähr liegen? Gruß Ralf
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
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
@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.
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)..
Wer sendet mir einen Code in Asembler. Ich habe den original Code vom Referenzdesing und Demoboard in C. Ich tausche gerne.
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
@Klaus: dann gennst du doch bestimmt auch einen deiner tollen RISC AVRs der einen MP3 Dekoder intergoert hat. Gruß Tobias
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.
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
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
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
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
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..
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.
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
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.....
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
Zeile 4 gehört ans ende von Zeile 3 und Zeile 12 gehört ans ende von Zeile 11 Gruss
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
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
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
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
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
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
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?
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
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
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
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....
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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 !?
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.
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
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
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
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
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
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
greez ja wen es wirklich an der version liegt köntest du mir dan die 1.8er schicken??? mfg Axel Foley
Ich werd mal schauen, ob ich die Installation noch finde und schick sie dir dann per Email ... Viele Grüße Steffen
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
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
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.
@ 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
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.
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
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
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
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
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
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.
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
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??
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
Hi! Super Freut mich!! Ich kämpfe im Moment selbst mit meinem Kontroller.. Viel Spass weiterhin. Gruss
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
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
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
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
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
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.
hi i'm 2 question 1: what snd1 programmer software? 2: what snd1 programmer hardware( pcb& schematic?
Hi Jack, SND1 is self-programming via Bootloader, Interface USB or serial. See Bootloader DataSheet. PC-Software is FLIP from ATMEL. Ralf
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?
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?
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 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?
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.