ATTiny USI I2C inledning - en kraftfull, snabb och bekväm kommunikationsgränssnitt för ATTiny projekt! (2 / 8 steg)
Steg 2: Vad är I2C - 2
En mästare kan antingen begäran att Skicka eller ta emot data från en slav. Under en Skicka, master skriver data till bussen och slaven läser data av bussen och lagrar den i dess minne. Under en fårläser master bussen för data som skickas av slav. I båda situationerna, den master ger klocksignal på SCK.
I slutet av varje byte (vilket är 8 bitar) överförs på I2C bussen, måste den mottagande enheten ge bekräftelse (ACK). Den enda gången som detta inte händer när befälhavaren tar emot data från slav, där den slutar överföringen med en inte-bekräftelse (NACK eller NAK) som anger att slaven ska sluta skicka data. En ACK representeras av ett lågt (drog ner eller 0) tillstånd medan en NACK representeras av en hög (inte drog ner eller 1) stat. Eftersom bussen standardtillstånd är hög, är en ACK en bekräftelse på att den andra enheten är närvarande och har framgångsrikt bearbetas överföringen.
ACK och NACKS har I2C två ytterligare inramning villkor kallas en starta skick och en stoppa skick. En startvillkoret överförs av befälhavaren att visa starten för en överföring. Under en start övergång, SDA linje första övergångarna från hög till låg och sedan, efter en märkbar mängd tid, gör SCL-värdet samma sak. Ett stoppvillkor, utfärdat av befälhavaren vid slutet av en överföring, är omvänt. Först går SCL linjen från låg till hög, då SDA gör samma. Observera att SDA SCL raderna och båda är höga när bussen är inaktivt.
Den första byten i en I2C överföring är adress byten. Detta skickas av befälhavaren och används för att bestämma vad slav för att prata med och om du vill utföra en skicka eller ta emot (även känd som skriver och läser, respektive). En slavadress är 7 bitar lång, och det finns flera reserverade adresser. En sådan reserverade adressen är 0x00, som betraktas ofta som en global skriva (skriv till alla slavar). Du konfigurerar vanligtvis slav enhetens adress genom att knyta adress Välj stift hög eller låg, men på en mikrokontroller du ange adressen programmässigt som vi kommer att göra på ATTiny2313. Den minst signifikanta biten i adress byten är den läsa/skriva bit som anger om att utföra en läsa eller skriva. Om man, operationen är en Läs, om noll en skriva.