0
\$\begingroup\$

Previous to my question on stepping down the voltage from 4.5V to 3.3, this was for the VCC pin of the MPR121 IC. Do I need to step down the voltage for the SDA, SCL and IRQ pins of the chip and if so, how would I go about doing it?

EDIT: I'm connecting the MPR121 keypad to a PIC project board (Genie 20).

\$\endgroup\$
  • \$\begingroup\$ Hard to answer that without knowing exactly what you're connecting it to. \$\endgroup\$ – Finbarr Jun 27 '17 at 10:01
1
\$\begingroup\$

For the SDA and SCL lines, thus the I2C interface, a level shifting is necessary. Without the level shifting the communication will not be possible.

The simplest way to accomplish this is via an I2C level shifter (for example see in the website of NXP or TI). The important here is to have a bidirectional buffer/level translator. In practice the I2C level shifters are indeed bidirectional, but I just mention it just in case you use some other buffer not dedicated for I2C.

Now, regarding the IRQ pin. As far as I understand this is output, correct? And I also see that it is an open drain pin. That means that you have to connect an external pull-up resistor to the power supply of the receiver, aka the PIC microcontroller. That will do the job and no other special action is necessary.

The open drain configuration in practice means that the MPR121 IC can only pull the pin to GND. So, the LOW state of the IRQ signal will be understood without problem from the PIC. For the HIGH state, the MPR121 IC will not actively drive the pin, so the pull-up resistor alone will pull the state to the power supply of the PIC and in this way the PIC will be able to understand the HIGH level as well.

\$\endgroup\$
0
\$\begingroup\$

Show the devices which you intend to use. If they have 5V tolerant inputs, you can get away pretty easily without any level shifting. If one of them doesn't you will need an I2C level shifter (PCA9517 as an example).

One more question: Does that GENIE Software (never heard of it) support I2C or are you using just the controller on board. What's the exact type of controller on that board?

\$\endgroup\$
  • \$\begingroup\$ The GENIE 20 is the controller on the board, which supports I2C. It's a rebranded Microchip 16F1829 with custom firmware. The keypad is sparkfun.com/products/12017. \$\endgroup\$ – Arjun Naha Jun 27 '17 at 12:33
  • \$\begingroup\$ Why wouldn't you run both of them on 3V3? \$\endgroup\$ – Tom L. Jun 27 '17 at 12:48
  • \$\begingroup\$ Is it because the GENIE explicitly requires 4.5-6V. It appears that the microcontroller can also run at 3.3V according to the datasheet. \$\endgroup\$ – Tom L. Jun 27 '17 at 12:55
  • \$\begingroup\$ Yep. The GENIE explicitly asks you to run it at 4.5-6V. It is not possible to change that. \$\endgroup\$ – Arjun Naha Jun 27 '17 at 14:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.