Good morning everyone!

I'm currently building the board with the STM32F417 microcontroller, and I want to have separate (out-of-GPIO) I2C, SPI, UART and USART outputs on the board.

But I'm lost on what physical connector should I use for each of the interfaces. Any recommendations? Are there any commonly accepted variants?

Thank you in advance.

  • 1
    \$\begingroup\$ DE-9 is common for UART - and you need a MAX232 or equivalent to convert to/from RS-232 levels and signal polarity. \$\endgroup\$ – Peter Bennett Aug 2 '15 at 23:49
  • \$\begingroup\$ @PeterBennett DE-9 sounds pretty antiquated - at least, I haven't seen this connector being used for years. \$\endgroup\$ – Dmitriy Khudorozhkov Aug 3 '15 at 1:12
  • 1
    \$\begingroup\$ The DE-9 connector is the common serial port connector (if you can find serial ports any more.)- often mis-named "DB-9". (According to Cannon, a DB connector should have 25 pins, like the original serial and parallel ports on PCs.) \$\endgroup\$ – Peter Bennett Aug 3 '15 at 1:43
  • \$\begingroup\$ A lot of industrial equipment use DE-9 ,we called it 9 way D type, it's cheap for a connector that can have a grounded shield and we had them kicking around the workshop. It was so common on serial port's most assumed they were serial ports ( not always true ). However the most common connection method for all those signals is the terminal block. \$\endgroup\$ – Spoon Aug 3 '15 at 8:16
  • \$\begingroup\$ The DE 9 should only be used if you plan to follow full rs-232 logic of -12v to 12V. If you want ttl level 0V to 3.3v or 5V, then a 0.1" header is more appropriate. \$\endgroup\$ – Passerby Aug 3 '15 at 11:55

I²C and SPI are typically used as an interface between chips on the same circuit board.

"UART" is not a complete interface standard. There are several such standards based on UARTs, such as RS-232, RS-422, RS-485, and MIDI. But for a general-purpose UART, you don't know which one to use.

An "USART" is an UART module that also supports synchronous communication (usually SPI and I²C).

Without a single commonly accepted variant, the most flexible method is to use a 0.1"-pitch socket strip or terminal strip, and force the user to make the connections manually.

Again, there is no single standard for which signal goes to which pin. You could make the entire connector compatible with Arduino, or Raspberry Pi, or LaunchPad, or any other microcontroller board, but then you'd have to choose one.


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.