Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kinen socket voltage levels #1

Open
aldenhart opened this issue Oct 28, 2012 · 0 comments
Open

Kinen socket voltage levels #1

aldenhart opened this issue Oct 28, 2012 · 0 comments

Comments

@aldenhart
Copy link
Member

Problem: Supporting all combinations of 5v and 3.3v devices on the motherboard and fins can require external level conversion chips or other measures. Possible combinations are:

  • 5v motherboard driving 5v fin
  • 5v motherboard driving 3.3v fin
  • 3.3v motherboard driving 5v fin
  • 3.3v motherboard driving 3.3v fin

Discussion: Can we limit socket voltages to 3.3v only and treat the fins as 3.3v systems? Some facts:

  • We have no legacy of 5v fins or motherboards
  • Most next-gen processors such as ARMs are 3.3v, including the Arduino Due, Raspberry pi http://elinux.org/Rpi_Low-level_peripherals, and Beaglebone
  • Many chips used on a fin will operate at 5v or 3.3v (e.g. atmega328p)- some only one or the other

Implications: This approach will require level conversion in 2 cases: (1) 5v only parts being used on a fin, and (2) motherboards that adapt from a 5v host system (Like an Arduino Uno) to Kinen sockets.

  • Case 1: Using 5v-only parts on a fin. The 3.3v outputs from the motherboard can be consumed by a 5v uni-directional input on the part with no level conversion. 5v uni-directional outputs from the part will require a level conversion. This may be a simple resistor divider (e.g. 2.7K ohm in series with 4.7K ohm), or a conversion chip. Bidirectional 5v lines such as I2C lines may require specialized chips.
  • Case 2: Motherboards that ride a 5v host such as an Arduino Uno. The motherboard can source only 3.3v signals at the socket. Any 5v signals must interface the socket through level conversion on the motherboard. Pin handling on the motherboard is outlined below. I'm not sure I have all this right, so it needs checking:

Output signals requiring unidirectional down conversion (e.g. resistor pairs or level converter chips)
[1] Step / GPIO
[3] Dir / GPIO
[5] ~Enable
[7] MS0
[9] MS1
[11] MS2. Vref would also need to be limited to 3.3v somehow.

[2] ~SS must be level converted down to 3.3v
[4] SCK - level converted down
[8] MOSI
[12] I2C SCL
[14] ~Sync

Input signals requiring unidirectional down-conversion:
[6] MISO - should be capable of being consumed w/o level conversion required.

Bi-directional conversion required
[10] I2C SDA

Special cases
[11] ~Interrupt - Should be tied high to 3.3v, can be pulled low by fin. If Int is already tied hi by host board then then it needs conversion on the motherboard.

[13] ~reset - Presumably this is tied hi by the host board. It needs level conversion to prevent over-voltage on the fin reset line.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant