Herunterladen Inhalt Inhalt Diese Seite drucken

N" - Master Antwortet Nack Nach Letztem Read - elv USB-I2C Handbuch

Inhaltsverzeichnis

Werbung

Beispiel:
Mit diesem Befehl ist es z.B. möglich, etwas für eine Sekunde (1s = 1000 ms = 0x3E8) einzuschalten und
danach wieder auszuschalten.
Mit dem Befehl S4000 können die 8 Portpins eines PCF8574-Chips auf High-Pegel geschaltet werden.
Wenn an jeden Ausgang eine LED angeschlossen ist, beginnen diese zu leuchten. Mit WFF werden die LEDs
dann wieder ausgeschaltet:
[Start] [Write-Adr: 0x40] [Daten] [Warte:1000ms] [Write] [Daten] [Stopp]
S40 00 L03E8 WFF P
Auf diese Weise kann beispielsweise auch ein LED-Lauflicht programmiert werden:
s40 ff L002f wfe L002f wfc L002f wf8 L002f wf0 L002f we0 L002f wc0 L002f w80
L002f w00 L002f w80 L002f wc0 L002f we0 L002f wf0 L002f wf8 L002f wfc L002f wfe
L002f wff l002f P
Im Kapitel „Makrofunktion" (Kapitel 4.4.2.) findet sich eine Beschreibung, wie solch ein Lauflicht ganz einfach
im Makrospeicher abgelegt und dann periodisch ausgeführt werden kann.
4.1.7.
„N" – Master antwortet NACK nach letztem Read
Der N-Befehl wird nur für sehr spezielle Anwendungen benötigt. Dieser Befehl kann VOR eine Lese-
Anweisung geschrieben werden und lässt dadurch den Master (also das USB-I2C-Interface) beim letzten
gelesenen Byte mit NACK (Not Acknowledge) antworten, anstatt mit ACK (Acknowledge), wie sonst üblich.
Dies signalisiert dem Slave, dass dieser Lese-Befehl der Letzte war und dass erstmal keine weiteren Bytes
gelesen werden.
Im Normalfall (Konfiguration im Auslieferungszustand: Y20) gibt der Master nach dem letzten gelesenen Byte
automatisch ein NACK als Antwort zum Slave zurück. Wird mit dem Konfigurationsbefehl Y21 die automati-
sche NACK-Antwort des USB-I2C-Interface deaktiviert, muss sich der Anwender selber um die ACK/NACK-
Antwort kümmern und zum richtigen Zeitpunkt den N-Befehl verwenden. Dieser Befehl muss vor der letzten
Lese-Anweisung ans USB-I2C-Interface gesendet werden, damit dieses den letzten Lesezugriff mit einem
NACK beantworten kann.
Sinnvoll ist das Abschalten der automatischen NACK-Antwort (mit Y21) und die daraus folgende Verwen-
dung des N-Befehl eventuell dann, wenn mehr als die maximal möglichen 255 Bytes in einer Folge vom Sla-
ve gelesen werden sollen (mit dem Befehl RFF werden 255 Bytes gelesen). „In einer Folge" bedeutet dabei,
ohne eine Repeated-Start-Bedingung und ohne eine erneute Adressierung des Slaves, wie sie mit S41 FF
oder R FF erfolgen würde.
Mit dem N-Befehl können also mit höherer Geschwindigkeit viele Daten vom Slave gelesen werden.
Beispiel:
Es sollen 1000 Datenbytes, also 4 mal 250 (0xFA) Bytes, mit nur einer Slave-Adressierung und nur einer
Startbedingung vom Slave gelesen werden (genauso möglich: 3x 255 (0xFF) und 1x 235 (0xEB)):
[Deaktiviert automatische NACK-Antwort]
Y21
[Start] [Read-Adr: 0x41] [Read 0xFA Byte] [Read 0xFA Byte] [Read 0xFA Byte] [NACK nach letztem Read] [Read 0xFA Byte] [Stopp]
S41 FA FA FA N FA P
[Aktiviert automatische NACK-Antwort] (nur sicherheitshalber hier, damit dies nicht vergessen wird)
Y20
Ausgabe (4x 250 Bytes):
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ...
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ...
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ...
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ...
16

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis