Hallo Leute,
Ich versuche schon seit einigen Stunden meinen PCA9685 zum laufen zu
bringen.
Steuern wollte ich den Schaltkreis mittels ATmega328p.
Dafür verwende ich die i2cmaster Libary von Peter Fleury.
Um erstmal klein anzufangen, habe ich nur versucht den PCA9685
anzusprechen.
Ich habe ihn über die A-Ports so konfiguriert das er die Adresse 0x40
hat.
Das habe ich auch mit dem Arduino und dem I2C - Scanner überprüft.
Leider bekomme ich vom PWM Chip nie ein ACK zurück.
1 | #define F_CPU 16000000 // CPU Frequenz = 16 Mhz
|
2 |
|
3 |
|
4 | #include <avr/io.h> // Bibiliothekseinbindung
|
5 | #include <avr/interrupt.h>
|
6 | #include <util/delay.h>
|
7 | #include <util/twi.h>
|
8 | #include <i2cmaster.h>
|
9 | #include "twimaster.c"
|
10 |
|
11 | #define ADR_1 0x40
|
12 |
|
13 |
|
14 |
|
15 | int main(void)
|
16 | {
|
17 | sei();
|
18 | i2c_init();
|
19 |
|
20 | i2c_start_wait(ADR_1+I2C_WRITE); // PCA9685 ansprechen
|
21 | i2c_write(0x00); // Mode1 Register aufrufen
|
22 | i2c_write(0x10); // in normal Mode versetzen
|
23 | i2c_stop();
|
24 |
|
25 | while (1)
|
26 | {
|
27 |
|
28 | }
|
29 |
|
30 | }
|
Seltsamerweise läuft das ganze auch dauerhaft ab, obwohl es nicht in der
Loop steht.
Hat einer ne Idee was ich falsch mache, und wie ich es berichtigen kann?
Im Anhang findet ihr die Busanalyse von meinem Oszi.
Danke schonmal im Vorraus.