Gefunden für acknowledge vom eeprom - Zum Elektronik Forum |
| 1 - Real Time Clock IC an AVR -- Real Time Clock IC an AVR | |||
| |||
| 2 - Daten von Beschleunigungssensor auslesen - LPC1343 -- Daten von Beschleunigungssensor auslesen - LPC1343 | |||
| Hallo Leute,
Worum gehts? Also ich hab in der Schule ein Projekt, wo wir mit unserem uC-Board die Daten vom Beschleunigungsensor auslesen sollen und diese dann über die LEDs visualisieren, sprich wir sollen eine Wasserwaage machen. Verwendet wird der LPC1343 und der Sensor ist der MMA7660. Ich hab ein Programm geschrieben, das prinzipiell mal nur die Daten für die X-Achse über die I2C-Verbindung auslesen soll. Aber genau daran scheitert es bereits... Ich hab alles so konfiguriert wie es in den Datenblättern drinnen steht, auch der Vorgang wie man Daten über I2C ausliehst (also STA Bit setzen, Slave Adresse schicken usw.) habe ich so implementiert wie er im Datenblatt beschrieben ist. Leider bleibt der Code aber immer in der 2. while-Schleife der readDataI2C-Funktion stecken. Ich bin dann hergegangen und habe die LEDs konfiguriert, um ein bisschen debuggen zu können, da bin ich dann draufgekommen, dass nach dem senden der Slave-Adresse das Status-Byte 0x00 ist... was eigentlich ganz schlecht ist und ich weis aber nicht woran das liegen kann... Wäre toll wenn ihr mir da weiterhelfen könntet. Mit freundlichen Grüßen Biestly Hier noch der Code: /* * file Wasserwaage_LPC_1343 * author Patrick Gröller | |||
3 - Problem mit Pony Prog ISP... MISO auf HI kommt nicht runter... -- Problem mit Pony Prog ISP... MISO auf HI kommt nicht runter... | |||
| Moin.
Na gut, auch wenn das Thema jetzt erledigt ist... Zitat : Also du meinst ich soll schaun ob der pin 10 des LPT's Low ist, wenn mir das prog dort einen hacken gesetzt hat...Umgekehrt. An Pin 10 einen Pegel anlegen und daraufhin schauen, ob er auch vom Programm so angezeigt wird. Zitat : Hab nun versucht mal zum vergleich (dass ich das programm verstehe ein paar pins zu messen, bei denen ich den hacken raus nehmen und einsetzten kann) dort änder sich dann bei keinem hacken der zustand auf Hi und wenn ich ihn setzte auf LOWOb das Programm evtl. auf einem falschen LPT arbeitet und wie es sonst konfiguriert wird, dazu kann ich nichts s... | |||
| 4 - I2C -- I2C | |||
| OK, zu allererst solltest du dir die I²C-Spezifikation von Philips antun, zu finden hier ganz unten auf der Seite:
http://www.semiconductors.philips.c.....acts/ Da steht eigentlich das komplette Protokoll drin. Kurz zusammengefasst sieht eine Übertragung so aus. Dein Master generiert ein Start, indem er SCL auf High legt und auf der SDA vin High auf Low zieht. (Stop-Kondition sieht ähnlich aus, nur wird da SDA von Low auf High gezogen.) Danach sendet der Master (der übrigens immer den Clock generiert, egal ob der Master etwas sendet oder auf Daten vom Slaver wartet, nachdem er die Anforderung zum senden geschickt hat.) die Adresse des entsprechenden Slaves. Damit der Master merkt, dass das angesprochene Device was gemerkt hat, lässt der Master SDA auf High und beim nächsten Clock-Puls (nach dem letzten gesendeten Bit) zieht der Slave SDA auf Low. Das ist das Acknowledge. Danach werden meistens die Daten gesendet (oder aber eine weitere Adresse), und zwar immer 8 Bit nacheinander, dann wartet der Master wieder auf ein Acknowledge vom Slave. Wurden alle Daten übertr... | |||
| 5 - SPI-Baustein für digitale Potis gesucht... -- SPI-Baustein für digitale Potis gesucht... | |||
| Auf diese Idee bin ich noch gar nicht gekommen.
Werde das mal probieren - wäre sogar besser, weil man dann 6 Datenleitungen einspart. Probleme wird aber erstens das Zeitmanagement machen, da die TTL-Leitungen nicht simultan laufen und der Ablauf der Steuerung dann komplett der Rechenleistung des PCs unterliegt. Bringt man diese Steuerung in einem Programm unter, welches nebenbei andere Aufgaben erfüllt, kann die Sache sehr unsicher werden. Ich gebe also auf einem Kanal (für SCL) Ein Rechteck aus und auf dem anderen (SDA) versuche ich parallel die Bits zu setzen? Wie reagiere ich dann auf das acknowledge vom Poti? Du sagst die Zeit ist egal, aber ist es dann auch egal, wenn ich keine konstante Frequenz hinkriege? (Wird die Bit-Information von SDA bei SCL=High übernommen, solange kein Wechsel des Zustandes auf SDA währenddessen erfolgt?) Jedenfalls werde ich das jetzt mal ausprobieren, das geht ja wie man weiß übers studieren... Danke. (PS: Das Datenblatt von oben genannnten Poti werd ich mir auch mal zu Gemüte führen.) ... | |||
| 6 - I2C bus test software ? -- I2C bus test software ? | |||
| Wenn du deinen PC liebst, wirst du um die als Philips-Interface bekannte Schaltung mit 7405/06 nicht herum kommen.
Alles andere bedeutet Gefahr für deinen Printerport. Als Software gibt es z.B. iicuni oder UPA22 Das Wissen, welche Daten ein bestimmter I2C Baustein zur initialisierung erwartet, wie seine Antwort auf ein Datenwort aussieht, welche Register du auslesen kannst - das alles musst du allerdings selbst aus dem entsprechenden Datenblatt heraussuchen, da das ja logischerweise von IC zu IC verschieden ist. Welche ICs welche Adressgruppen belegen geht u.a. aus der I2C Faq auf www.repairfaq.org hervor. Allen I2C Bausteinen gemeinsam ist das Verhalten, das ein Slave Baustein ein ACKnowledge Signal setzt, wenn der Master die betreffende Adresse sendet. Dieser Mechanismus wird vom Master als Identifikation angeschlossener Slave Bausteine verwendet. Allein für einige TV und Multimedia ICs gibt es von Philips mit TV400 ein Programm, das Masken für die Steuerung und Fehlerdiagnose einiger spezieller Philips TV-IC hat. Vorgefertigte Masken zum Auslesen von diversen I2C Speicherbausteinen werden z.B. von iicuni UPA22... | |||
| 7 - Signalverarbeitung an LPT1 -- Signalverarbeitung an LPT1 | |||
| Da hast du die Schnittstelle aber sehr oberflächlich studiert.
Zuerst mal: Die Schnittstellenleitungen werden nicht abgeschaltet, sondern aktiv auf Masse gelegt. Der Rechner wird auch niemals /Strobe (Pin1) aktivieren, bevor er nicht geklärt hat, ob der Drucker betriebsbereit ist. Dazu gibt es die anderen Handshakeleitungen: (11) Busy. High zeigt an, daß der Drucker momentan keine Daten annehnem kann. Normalerweise setzt der Drucker diese Leitung High, nachdem er ein Datenbyte empfangen hat und verarbeitet. (10) /Acknowledge damit (Low) quittiert der Drucker den Empfang jedes Datenbytes. Der PC darf danach die Daten (2)..(9) ändern. (12) Paper End. Positiv, wenn kein Papier im Drucker ist. Auch ein Grund keine Daten zu schicken. (13) Select. High wenn der Drucker selektiert ist. Wenn du den Drucker über das Control-Panel Offline setzt, wird diese Leitung low. (14) /AutoFeed. Vom PC Bewirkt einen Zeilenvorschub nach jeder Zeile. Heutzutage wohl bedeutungslos. (15) /Error. Diese Leitung wird Low, wenn der Drucker einen Fehler z.B. Papierstau festgestellt hat. (16) /Initialize. Diese Leitung könnte auch für dich von Interesse sein. Indem er diese Leitung Low setzt, veranlasst der PC einen Drucker R... | |||
| 8 - LPT-Port: 8 Datenbits LESEN im ECP/EPP-Modus!? -- LPT-Port: 8 Datenbits LESEN im ECP/EPP-Modus!? | |||
Zitat : Und lege um eine 1 an dem jeweiligen Data-Bit zu empfangen, den +Pohl ab Pin2 (bis Pin9) und die Masse meiner 5V Stromquelle an die Pins 19-22 (sind wohl die Massen von Data1 bis Data8). 1) Du solltest keinesfalls die Portpins direkt an Masse oder +5V legen, da durch diesen Kurzschluß die Transistoren im I/O-Chip zerstört werden können. 270-Ohm Widerstände begrenzen den Strom, der in den Port hinein- oder herausfließt auf einen ungefährlichen Wert. 2) SPP (steht auch in EPP zur Verfügung) ist für dich die richtige Betriebsart. 3) Zum Basisadresse 378h gehören ein (Read Only) Statusregister auf 379h und ein (Read Write) Steuerregister 37ah. Die Bits im Statusregister, mit ihnen kannst Du die Statusleitungen des LPT abfragen: 7: /BUSY: Inverse of Printer Busy Signal, A logic 0 means that the printer is busy and cannot accept another character. A Logic 1 means that is ready to a... | |||
| 9 - Einbruchsicherung -- Einbruchsicherung | |||
| Hallo zusammen,
Für die Schule als Abschlußarbeit in dem Fach Technik, habe ich mir vorgenommen eine Einbruchsicherung zu bauen, allerdings gibt es da einige Probleme, die ich bisher noch nicht lösen konnte. Ein Bewegungsmelder, der an eine 12 V Spannungsquelle angeschlossen ist, hat eine "Ausgangsspannung" von 0,2 V. Der Bewegungsmelder wird mit dem Ausgang an den Acknowledge-Pin vom LPT-Port angeschlossen. Reichen diese 0,2 V Spannung aus, dass der PC das Signal des Bwegungsmelders erkennt?? Und wenn er dieses nun erkannt hat, sollen über den LPT-Port verschieden Module (Alarmanlage, Lichtanlage, etc.) angesteuert werden. Weiß auch jemand, wie viel Ampere mir dann der LPT-Port liefert?? Würde das z.b. Ausreichen ein mechanisches oder ein elektrisches Relais zu schalten? Ich hoffe ich hab mal nicht zu viele Fragen gestellt und vielleicht kann mir ja jemand Helfen. Hab auch schon im Internet gesucht, bisher aber noch nicht über diese Probleme fündig geworden. Danke im Voraus!! Gruß Nico ... |
|
Zum Ersatzteileshop Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation! gerechnet auf die letzten 30 Tage haben wir 8 Beiträge im Durchschnitt pro Tag heute wurden bisher 7 Beiträge verfasst 6 Besucher in den letzten 60 Sekunden alle 10.00 Sekunden ein neuer Besucher ---- logout ----su ---- logout ---- |