Hallo! Ich habe mein Programm, mit dem ich vier externe 24C512 EEPROMS ansteuern möchte vervollständigt. Auf dem Oszilloskop kann ich auch das Clocksignal und ein fehlerhaftes Datensignal verfolgen. Ich kann dort lediglich die Start und die Stoppbedingung erkennen. Ich würde mich darüber freuen wenn mal "fremde Augen" ein Blick auf mein Programm werfen würden. Habe dieses als PDF angefügt. Es wird ein 89S52 verwendet, der über I²C Bus mit dem Speicher verbunden ist. In diesem Programm wird erst einmal lediglich auf EEPROM 4 zugegriffen! Danke für Eure Hilfe im vorraus!
Was soll der Unsinn mit dem PDF ? Quelltexte werden immer in ASCII gepostet ! Peter
@Manfred Deine Sende Routine ist falsch! Das Acknowledge bit musst Du nicht senden sondern nur abfragen! mov B,#9b ???? sollte doch sicherlich mov B,#07h sein oder ? willst ja nur 8 Datenbits übertragen nicht 155 ;) Hier mal ein Codeschnipsel von mir. ;Sendet ein Datenbyte über den I²C-Bus ;Register. ; se_buffer = Datenbyte ; R3 = Zähler für 8 Durchläufe ;Akkuinhalt wird zerstört I2C_WBYTE: PUSH PSW PUSH REG3 MOV A,se_buffer For REG3 = #0 To #7 RLC A MOV SDA,C NOP SETB SCL NOP CLR SCL Next NOP SETB SDA ;Setzen zum abfragen des ACK vom externen Baustein NOP SETB SCL ;ACK übernehmen MOV C,SDA If BIT C Then ;Wenn Carry Bit nicht gesetzt ist, Verbindung abbrechen SETB error ;Fehlerbit setzen! (wird nicht verwendet im Moment) LCALL I2C_STOP End If NOP CLR SCL POP REG3 POP PSW RET Gruß norad
@norad Ich bedanke mich für Deine Hilfe! Werde es hoffentlich gleich noch testen können:-) Und sorry an denen, die meine PDF stört!
Peter Dannegger wrote: > Was soll der Unsinn mit dem PDF ? > > Quelltexte werden immer in ASCII gepostet ! > > > Peter Na ja... ".pdf" ist doch immer noch besser als ".doc", oder? Gruß, Magnetus
Magnus Müller wrote:
> Na ja... ".pdf" ist doch immer noch besser als ".doc", oder?
Nein, beides ist gleich schlecht.
Wie soll man denn dann syntax highlighting und Tests machen ?
Außerdem können durch die Umwandlung zusätzliche Fehler entstehen.
Was ist denn so schwer daran, genau das Source-File zu schicken, mit dem
Du den Assembler/Compiler fütterst ?
Peter
Habe die Änderungen eingesetzt. Kann jetzt Start und Stoppbedingung erkennen. Auch das Clocksignal ist gut. Ebenfalls das Ack. Aber die "Verfluchten" Daten bekomm ich einfach nicht auf das Signal!
manfred wrote: > Aber die > "Verfluchten" Daten bekomm ich einfach nicht auf das Signal! Wenn Du nicht den geänderten assemblierbaren Code reinstellst, mußt Du den Fehler selber suchen. Das Ausweinen hier nützt höchstens Deiner Psyche. Peter
Was soll ich denn posten? Arbeite mit dem Jens File Editor. Da gibt es einmal die sogenannte .asm Datei und die .lst. Wie möchtest du den Code denn haben? Ich dachte eigentlich als ich die Frage stellte, stell die lieber als PDF rein, das kann jeder öffnen!
@Manfred! Ich geh mal davon aus das Du auch, das "große 51er Anwenderhanbuch" hast. Kapitel 17 wird beschrieben wie es geht. So wie ich es sehe hast Du die Adresse nicht richtig eingestellt in "". Vollständige Adresse müsste in der Form stehen: S|1|0|1|0|A1|A2|B|R/W|ACK S Startbedingung 1010b Feste Adresse des EEPROM A1/A0 Individuelle Adresse B Blockselect R/W Read/Write Modus ACK Acknowlege - Bit In dem Büchelein steht auch drin, dass es einen Multibyte- und Page - Mode gibt. Hardwarebeschaltung muss man auch beachten z.b Schreibschutz PRE Anschluss. Wie es mit deinem Chip aussieht musst Du halt mal Gucken. Schreibaequenz im Byte-Modus: Startbedingung -> Slave Adresse mit R/W senden --> ACK vom Slave abfragen --> Byte Adresse senden-> ACK abfragen--> Daten zum EEPROM senden --> ACK vom Slave abfragen --> Stopp bedingung senden Also denn ganzen klateratatsch pro Byte. Multi-mode: Start bedingung -> Slave Adresse mit R/W -> Ack abfragen -> Byte Adresse -> ACK abfragen -> 1 Byte senden -> ACK abfragen -> 2 Byte usw. zum schluss ACK abfragen und Stop bedingung senden. Gruß norad
manfred wrote: > Was soll ich denn posten? > Arbeite mit dem Jens File Editor. Du verblüffst mich. Wie kann man denn ein File öffnen, dort seinen Text eintippen, es abspeichern und übersetzen ohne zu wissen, wie es heißt ? Wie findest Du denn dann ein altes Sourcefile wieder ? Wie sicherst Du es ? Schreiben sich die Programme bei Dir alleine oder mußt Du sie auch eintippen ? Dann muß doch in der Editorstatuszeile stehen, wie das File heißt. Spätestens beim Sichern muß Name + Erweiterung dastehen. > Da gibt es einmal die sogenannte .asm Datei und die .lst. Das, was Du selber getippt hast. > Wie möchtest du den Code denn haben? Ich dachte eigentlich als ich die > Frage stellte, stell die lieber als PDF rein, das kann jeder öffnen! Nun dann versuch mal ein PDF im Editor zu öffnen und zu assemblieren, der Assembler wird Dir was husten. Peter P.S.: Spourcen sind immer reine Textfiles (pure ASCII). Sie lassen sich ausnahmslos mit jedem Editor lesen (Notepad usw.) Sie lassen sich auch ganz ohne Editor lesen: type test.asm
@Peter Ich denke Du bist zu streng mit ihm. Schliesslich kann man ja im PDF Text Markieren und Kopieren und dann in einem Texteditor abspeichern. Manchmal bist Du schon kleinlich. Sorry nicht böse sein Peter. Gruß norad
@norad >Ich denke Du bist zu streng mit ihm. Das denke ich nicht. >Schliesslich kann man ja im PDF Text Markieren und Kopieren und dann in >einem Texteditor abspeichern. Warum kann man nicht einfach den Quelltext anhängen und gut? Den PDF-Konverter starten ist Zusatzaufwand, der zudem massiv kontraproduktiv ist. >Manchmal bist Du schon kleinlich. Sorry nicht böse sein Peter. Hat nix mit Kleinlichkeit zu tun, sondern das sind Grundlagen. Und wenn kleine Kinder Mist machen, dann müssen die Eltern halt mal streng sein un ne Ansage machen. Sinngemäss ist es auch hier so. MfG Falk
"Hat nix mit Kleinlichkeit zu tun, sondern das sind Grundlagen. Und wenn kleine Kinder Mist machen, dann müssen die Eltern halt mal streng sein un ne Ansage machen. Sinngemäss ist es auch hier so." Auf keinen Fall!!!! Du bist nicht unser Vater, und auch nicht unser Lehrer. Es kann jeder machen wie er will und wenn es dir nicht passt, kannst du dir ja einen anderen Wirkungskreis suchen.
Ich wollte nicht streng sein und jeder kann machen, was er will. Ich wollte nur ausdrücken, daß es mir völlig unverständlich ist, wie man eine Programmdatei erstellen kann, ohne zu wissen, wie sie heißt. Ich halte sowas schlichtweg für unmöglich. Ich bitte daher um Meldungen, wer programmiert und auch nicht weiß, welchen Namen die selbst eingetippte Datei hat. Ich denke, Manfred veräppelt uns nur, daher der etwas sarkastische Tonfall. Peter
Also wenn´s sonst keine Probleme gibt. ich kann alles markieren kopieren einfügen! Verstehe nicht wie man aus sowas so eine Diskussion starten kann! Gut das jede Kindheit anders ist!
Manfred wrote: > Also wenn´s sonst keine Probleme gibt. ich kann alles markieren kopieren > einfügen! Nein zum Donnerwetter. Sorry, aber das ist zuviel für mich. Peter
@Mullemaus >Auf keinen Fall!!!! >Du bist nicht unser Vater, und auch nicht unser Lehrer. Sicher nicht, aber . . . >Es kann jeder machen wie er will und wenn es dir nicht passt, kannst du dir ja einen >anderen Wirkungskreis Diese Schlussfolgerung ist wohl ein klein wenig zu einfach. Das Problem is gesamtgesellschaftlich. Wenn sich eine grössere Menge Leute auf begrenztem Raum vertragen will, braucht diese Gesellschaft ein paar Grundreglen für Verhalten und Kommunikation. Und auch wenn es bisweilen als politisch korrekt gilt, jeden Mist als persönliche Freiheit durchgehen zu lassen und mit anti-autoritären Ökogelaber jeden Deppen zum wertvollen Mitglied der Gesellschaft zu erklären, Mist bleibt Mist. Und wenn einige Leute lernresistent, und dann vielleicht auch noch bockig sind (kommt bei kleinen Kindern nicht selten vor ;-) dann hoffe ich auch, dass sie für die Konsequenzen ihrer Freiheit/Unfähigkeit gerade stehen. Spätestens dann, wenn ihr Chef ihnen die Tür weist, weil mit solchen Leuten kein Blumentopf zu gewinnen ist. Aber dann wird gaaaaanz schnell wieder rumgeschrien und gejammert von wegen Diskriminierung etc. MfG Falk P.S. Niemand wird hier zu irgendwas gezwungen. Aber dennoch deutlich auf Fehler hingewiesen! Aber wie es scheint wird das in dieser weichgespülten Gesellschaft schon als Mordanschlag gewertet. Die Kritikfähigkeit lässt zu wünschen übrig. P.P.S Es steht jedem gut zu Gesicht einfach mal zu sagen. "OK, ich hab einen Fehler gemacht, ich werde das ändern.". Das ist keine Schande, im Gegenteil! Aber nein, jeder Mist muss mit tausend dummen und faulen Ausreden verteidigt werden.
@Falk LOL ich finde es klasse. Du setzt dich stärker für Grundregeln und Verhaltensweisen in diesem Forum ein, als der Moderator selbst. Ich würde mal darüber nachdenken, ob das angemessen ist. Du bist hier genauso Gast bzw. Teilnehmer wie jeder andere auch. Und zu maßregeln in dem Umfang, wie du es hier machst, steht dir nicht zu. Mir natürlich auch nicht, aber ich mache das ja auch nur bezogen auf deine Person. Du hingegen machst es in jedem Thread, an dem du dich beteiligst. Du verlangst von anderen, dass sie mal einen Fehler zugeben sollen. Wie wärst, wenn du mit gutem Beispiel vorangehst und einfach mal einen Gang zurückschaltest? Du mußt dich auch mal in die Situation von neuen Teilnehmern hier im Forum versetzen. Die bekommen sofort den Eindruck, als wenn du das Sagen hier hättest bzw. du der Moderator bist. So jetzt muß ich aber an die Arbeit. Mein Blackfin wartet...
Hallo Leute, ich finde grundsätzliches ist nun genug gepostet worden -ASCII oder nicht! Ich habe da noch eine technische Frage. Ich mochte zum Daten Loggen ein externes EPROM über I2C an einen Mega8 anhängen (Taktfrequenz 8Mhz). Ziel ist es fünf 16bit Werte zu schreiben. Ist das mit einer Frequenz von 10Hz möglich? Wie schnell laufen eure I2C EPROM Übertragungen? Im Augenblick habe ich noch nicht mit der Routine zum Datenschreiben begonnen, das steht jetzt als nächstes an. Daher die Frage ob dieser Weg prinzipiell der richtige ist. Gruß Stefan
@Stefan >Ich mochte zum Daten Loggen ein externes EPROM über I2C an einen Mega8 >anhängen (Taktfrequenz 8Mhz). >Ziel ist es fünf 16bit Werte zu schreiben. Die kannst du auch im interen EEPROM speichern. >Ist das mit einer Frequenz von 10Hz möglich? Wie schnell laufen eure I2C Kein Problem. Die meisten machen 100 kHz und mehr Busfreqeunz mit. MFG Falk
Ja intern geht das schon, aber Speicher ist nicht gross genug! Wenn ich 5min Aufzeichnen will sind das 3000 Zyklen a 5 Werte*2Byte = 30k Habe aber nur 512k EPROM intern, oder ? Intern wäre natürlich am elegentesten - anderer µC ?
Also EPROM wirst Du sowieso nicht schreiben können in der Schaltung - bestenfalls EEPROM. Die größten AVR's haben max. 4 KByte EEPROM. Theoretisch gibt es aber auch noch die Möglichkeit, den nicht durch das Programm genutzten Speicherplatz im Flash zu füllen. Damit stände Dir dann je nach Modell genug Speicher zur Verfügung. Ist nur komplizierter anzusprechen soweit ich in Erinnerung habe.
@Stefan >Ja intern geht das schon, aber Speicher ist nicht gross genug! >Wenn ich 5min Aufzeichnen will sind das 3000 Zyklen a 5 Werte*2Byte = >30k OK, dann geht nur extern. >Habe aber nur 512k EPROM intern, oder ? Nein, 512 BYTE (ohne k) ;-) Und es ist EEPROM (kleiner aber wichtiger Unterschied) >Intern wäre natürlich am elegentesten - anderer µC ? Nein, externer EEPROM ist schon OK. MFG Falk
Danke euch allen erst mal, lets go for EEPROM extern ! Melde mich sicher wieder wenn ich konkreter bin. Gruß Stefan (ohne "k") PS: Für eine Empfehlung welches EEPROM geeignet ist, wäre ich noch dankbar.
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.