Difference between revisions of "MPR121 Proximity Capacitive Touch Sensor Controller"

From Stm32World Wiki
Jump to navigation Jump to search
 
(10 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
[[Category:Components]][[Category:I²C]][[Category:Work in progress]]{{metadesc|MPR121 Proximity Capacitive Touch Controller}}
 
[[Category:Components]][[Category:I²C]][[Category:Work in progress]]{{metadesc|MPR121 Proximity Capacitive Touch Controller}}
[[File:Touch Keyboard - top.jpg|250px|thumb]]
+
[[File:MPR121 Keypad rev. b.jpg|250px|thumb|Keypad Matrix]]
 
The MPR121 is a [[I²C]] device which can be used to implement touch keys.  It can also function as a [[GPIO]] extender and can be used to drive [[LED]]s.
 
The MPR121 is a [[I²C]] device which can be used to implement touch keys.  It can also function as a [[GPIO]] extender and can be used to drive [[LED]]s.
  
Line 9: Line 9:
 
=== Schematics ===
 
=== Schematics ===
  
 +
==== Revision a ====
 
<div class="res-img">
 
<div class="res-img">
[[File:MPR121 Keypad.svg|1600px]]
+
[[File:MPR121 Keypad.svg|2400px]]
 +
</div>
 +
 
 +
==== Revision b ====
 +
 
 +
[[#Revision a|Rev. a]] was a bit of a rush job and I managed to get one thing fundamentally wrong.  For some bizarre reason, the [[MPR121]] can supply 17 mA on the LED pins but it can only sink about 1.5 mA, so LED's should not be active low on these pins but active high.  Also, by rearranging the rows and columns, the actual routing got quite a lot neater.
 +
<div class="res-img">
 +
[[File:MPR121 Keypad rev. b schematics.svg|2400px]]
 
</div>
 
</div>
  
Line 19: Line 27:
 
File:Touch Keyboard - bot.jpg
 
File:Touch Keyboard - bot.jpg
 
File:Touch Keyboard - detail.jpg
 
File:Touch Keyboard - detail.jpg
 +
File:4 pcs MPR121 keypad.jpg
 +
File:MPR121 components.jpg
 +
File:MPR121 Keypad rev. b - bot.jpg
 +
File:MPR121 Keypad rev. b.jpg
 +
File:MPR121 rev. b hooked up.jpg
 
</gallery>
 
</gallery>
  
 
== Miscellaneous Links ==
 
== Miscellaneous Links ==
  
* [https://datasheet.lcsc.com/lcsc/1811091710_NXP-Semicon-MPR121QR2_C91322.pdf Datasheet]
+
* [https://www.lcsc.com/datasheet/lcsc_datasheet_2410010232_NXP-Semicon-MPR121QR2_C91322.pdf MPR121 Datasheet]
 +
* [https://www.nxp.com/docs/en/application-note/AN3944.pdf?&WT_ASSET=Documentation MPR121 Quick Start Guide]
 
* [https://www.nxp.com/docs/en/application-note/AN3889.pdf MPR121 Capacitance Sensing Settings]
 
* [https://www.nxp.com/docs/en/application-note/AN3889.pdf MPR121 Capacitance Sensing Settings]
 
* [https://www.nxp.com/docs/en/application-note/AN3890.pdf MPR121 Capacitance Sensing — Filtering and Timing]
 
* [https://www.nxp.com/docs/en/application-note/AN3890.pdf MPR121 Capacitance Sensing — Filtering and Timing]
 
* [https://www.nxp.com/docs/en/application-note/AN3895.pdf MPR121 Serial Communication]
 
* [https://www.nxp.com/docs/en/application-note/AN3895.pdf MPR121 Serial Communication]
 
* [https://www.nxp.com/docs/en/application-note/AN3894.pdf MPR121 GPIO and LED Driver Function]
 
* [https://www.nxp.com/docs/en/application-note/AN3894.pdf MPR121 GPIO and LED Driver Function]

Latest revision as of 01:10, 2 November 2024

Keypad Matrix

The MPR121 is a I²C device which can be used to implement touch keys. It can also function as a GPIO extender and can be used to drive LEDs.

Test Board

In order to try out the MPR121 I created a quick keypad.

Schematics

Revision a

MPR121 Keypad.svg

Revision b

Rev. a was a bit of a rush job and I managed to get one thing fundamentally wrong. For some bizarre reason, the MPR121 can supply 17 mA on the LED pins but it can only sink about 1.5 mA, so LED's should not be active low on these pins but active high. Also, by rearranging the rows and columns, the actual routing got quite a lot neater.

MPR121 Keypad rev. b schematics.svg

Galery

Miscellaneous Links