Interrupt Problem MBF200 Fingerprint Sensor

Hallo, Ich versuche gerade den Finger Detect Interrupt des MBF200 Fingerprint Sensor zum laufen zu bringen, leider bisher erfolglos. Laut Datenblatt

formatting link
sollte ein Interrupt ausgelöst werden sobald der Sensor mit dem Finger berührt wird und natürlich die entsprechenden Bits im ICR gesetzt sind; Interfacemode ist SPI. Der Versuch die Bits IE0 und IP0 im ICR zu setzten führen überhaut nie zu einem Interrupt, setzte ich die Bits IE0, IP0 und IT0 so wird sofort nach dem schreiben des letzte Bits des ICR - also sobald die CS-Leitung nach oben geht - ein Interrupt ausgelöst, unabhängig davon ob der Sensor berührt wurde und unabhängig vom Wert des THR. Interrupt im ISR bestätigen (Bit IR0 schreiben) hilft auch nicht, der Interrupt kommt nicht mehr wieder (Die Stromzufuhr muss unterbrochen werden um den Vorgang zu wiederholen). Der Rest funktioniert ausgezeichnet (Bild einlesen, sonstige Register schreiben,...).

Ich wäre dankbar für jegliche Hinweise. MfG, Johannes Schöller

Reply to
Johannes Schöller
Loading thread data ...

Johannes Schöller schrieb:

AFDEN in CTRLB gesetzt?

Gruß Dieter

Reply to
Dieter Wiedmann

Hallo, Vielen Dank für deine Antwort.

Ja, hab ich. Initialisierung sieht folgendermaßen aus:

void init(void) { mbf200_wr_reg(CTRLB, ENABLE+AUTOINCEN+AFDEN); wait_1us(30); mbf200_wr_reg(THR, (0x3

Reply to
Johannes Schöller

Hallo, Also falls irgend jemand auch mal auf dieses Problem stoßen sollte hier die Initialisierung mit der der Sensor bei mir funktioniert:

void mbf200_init(void) { mbf200_wr_reg(CTRLA, 0x00); mbf200_wr_reg(THR, 0x0f); mbf200_wr_reg(CTRLB, ENABLE | AUTOINCEN | AFDEN); mbf200_wr_reg(DTR, 10); mbf200_wr_reg(DCR, 6); mbf200_wr_reg(PGC, 8); mbf200_wr_reg(ISR, 0x03); mbf200_wr_reg(ICR, IE0 | IP0); wait_1us(10); }

void mbf200_isr(void) interrupt { uchar x; x = mbf200_rd_reg(ISR); x &= 0x03;

mbf200_wr_reg(ISR, x);

if(mbf200_rd_reg(ICR) & IP0) { puts("Finger down"); mbf200_wr_reg(ICR, IE0); } else { puts("Finger up"); mbf200_wr_reg(ICR, IE0 | IP0); } }

MfG, Johannes

Reply to
Johannes Schöller

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.