Forum: Mikrocontroller und Digitale Elektronik I2C problemchen


von Sepp (Gast)


Angehängte Dateien:

Lesenswert?

Ich schicke Daten via I2C um die Schnittstelle zu testen.
Sollte ich am Oszi nicht das Adressbyte und anschliessend das Datenbyte 
sehen?
Ich sehe nur die Adresse, aber auch das ist komisch, weil am Schluss 
noch ein bit kommt bevor die Leitungen freu werden.
Oder liegt es daran, dass ich auch beim Test einen Slave dran haben 
muss, wegen des Ack.?
1
/* Initialize all configured peripherals */
2
3
  MX_GPIO_Init();
4
5
  MX_I2C1_Init();
6
7
  /* USER CODE BEGIN 2 */
8
9
              uint16_t dAddress = 0x06 << 1;    // 0x0C read/write = 0
10
11
  data = 0x02;
12
13
              size_a = sizeof(data);
14
15
  /* USER CODE END 2 */
16
17
 
18
19
  /* Infinite loop */
20
21
  /* USER CODE BEGIN WHILE */
22
23
  while (1)
24
25
  {
26
                           HAL_I2C_Master_Transmit(&hi2c1, dAddress<<1, &data, size_a,100);
27
28
                           HAL_Delay(1);
29
30
 
31
32
  /* USER CODE END WHILE */
33
34
 
35
36
  /* USER CODE BEGIN 3 */
37
38
 
39
40
  }
41
42
  /* USER CODE END 3 */

von MaWin (Gast)


Lesenswert?

Weniger ist mehr!

Weniger Leitungen, mehr Problemchen

von OssiFant (Gast)


Lesenswert?

Sepp schrieb:
> Oder liegt es daran, dass ich auch beim Test einen Slave dran haben
> muss, wegen des Ack.?

Woher soll das ACK/NACK sonst kommen?

von Olaf (Gast)


Lesenswert?

> Sollte ich am Oszi nicht das Adressbyte und anschliessend das Datenbyte
> sehen?

Wie hast du eigentlich dein Programm geschrieben ohne vorher das 
Datenblatt zu deinem IC gelesen zu haben? Seufz!
Natuerlich muss da erst Adresse und dann Daten kommen und du musst dir 
ja auch was dabei gedacht haben wenn du ACK auswertest oder nicht?

Olaf

von Stefan F. (Gast)


Lesenswert?

Beim neunten Bit soll der adressierte Slave bestätigen, dass er bereit 
ist. Der Pegel ist in deinem Fall HIGH und das bedeutet "Not ACK" (nicht 
bereit). Ohne angeschlossenen Slave ist das normal, dann kommt der High 
Pegel vom Pull-Up Widerstand. Und wegen dem "Not ACK" bricht er die 
Transaktion ab und sendet nichts mehr. Das ist alles so gewollt.

von Christian S. (roehrenvorheizer)


Lesenswert?

Hole einen Slave hervor und schließe ihn korrekt an.

MfG

von Forist (Gast)


Lesenswert?

Sepp schrieb:
> IMG_20190520_142431.jpg

Ist dir schon mal die USB-Buchse unten rechts am Oszi aufgefallen?

Meinst du nicht, dass die prima geeignet wäre, um Screenshot 
aufzuzeichnen, in denen sich nicht die halbe Raumbeleuchtung spiegelt?

von c-hater (Gast)


Lesenswert?

Forist schrieb:

> Ist dir schon mal die USB-Buchse unten rechts am Oszi aufgefallen?
>
> Meinst du nicht, dass die prima geeignet wäre, um Screenshot
> aufzuzeichnen, in denen sich nicht die halbe Raumbeleuchtung spiegelt?

Zumal es sich ja lt. Foto sogar um ein "Super phosphor oscilloscope" 
handelt ;o)

Atomraketen in den Händen von Handy-Äffchen mit Jäckchen...

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
Noch kein Account? Hier anmelden.