Gast
#3963087
Hallo mikrocontroller Community, Ich versuche seit einiger Zeit den TWI Bus in gang zu bekommen. Der Controller ist ein SAM4E. Mein erstes Ziel ist einfach mal eine start condition im Oszi zu sehen. Mein Code sieht so aus: void i2c_init (void) { MATRIX->CCFG_SYSIO |= (1 << 4) | (1 << 5); //PB4 und PB5 aktivieren = 0x30 pio_set_peripheral (PIOB, PIO_PERIPH_A, (PIO_PB4A_TWD1 | PIO_PB5A_TWCK1)); //TWD1 PB4 zuweisen //pio_set_peripheral (PIOB, PIO_PERIPH_A, PIO_PB5A_TWCK1); //TWCK1 PB5 zuweisen pmc_enable_periph_clk ( ID_TWI1 ); //TWI1 mit Takt versorgen TWI1->TWI_CR = (TWI_CR_SVDIS | TWI_CR_MSEN); //Slave Mode Disable | Master Mode Enable TWI1->TWI_MMR = (TWI_MMR_DADR(0x48) | TWI_MMR_MREAD); //Adresse die angesprochen werden soll (TempSensor) + Master soll lesen } Die i2c_init wird einmal beim start ausgeführt. Ist dies soweit korrekt oder habe ich schon hier einen Fehler gemacht. In der Main wird dann der Startbefehl gesendet TWI1->TWI_CR = TWI_CR_START; Vielleicht kann mir ja jemand behlflich sein. Schonmal im Vorraus vielen Dank. PS. beide Signale sind nach dem i2c_init auf high