6by9 wrote: ↑Sun Apr 08, 2018 12:18 pm
I apologise.
Thank you.
6by9 wrote: ↑Sun Apr 08, 2018 12:18 pm
you apparently totally ignoring a response made by me
I accept that it appeared that way to you, though as I explained subsequently, I paid specific attention to the point you had written. But let's move on.
I thank you for your most recent answers. A couple of points
Hysteresis
6by9 wrote: ↑Sun Apr 08, 2018 12:18 pm
[*] The way I read the datasheet for how the hysteresis is working is that you will need to take the input below VIL for it to toggle to a 0, and above VIH for it to toggle to a 1, same as a Schmitt trigger. I will see if I can confirm that.
I think you're saying you infer the hysteresis to be the difference between VIH and VIL? That is not what the datasheet VIL and VIH tell us.
Taking the specs for the CM, for the VDD_IO=2.7V case...
(
https://www.raspberrypi.org/documentati ... T-V1_0.pdf)
page 13, we have:
VIL, max column = 0.8V
VIH, min column = 1.3V
... and I think you're saying you infer the amount of hysteresis to be 1.3-0.8 = 0.5V.
VIH and VIL values on a datasheet are min and max values respectively
across devices and temperatures, and have only a tangential relationship to hysteresis which would be a separate spec (not given on the CM datasheet). Note that the VIH row has a value in the Min col, and the VIL row has a value in the Max col. So these are the worst values you would expect to find on any individual device. So these are properly know as VIHmin and VILmax (appropriately subscripted, which I'm butchering here), as opposed to VIH and VIL that one might measure on a particular sample device at a particular temp.
(Because the min and max specs are so often needed, engineers might abbreviate those to just "VIH" and "VIL", dropping the min and max designators, because by context we know it's a population worst-case spec or manufacturing guarantee we're talking about).
A plausible hysteresis spec (VHYSmin) for this type of input would be say "minimum 0.2V". The spec presented is a minimum because the feature being provided is an amount of noise immunity (for slow-changing input signals), and thus the manufacturer guarantees that you get at least that worst case amount.
So the VILmax and VIHmin of the datasheet tell the worst-case values, outside of which range an input (on
any random sample device at any temperature) will definitely interpret a logic zero or one. These specs do not relate to hysteresis VHYSmin, other than the hysteresis has to be contained within VIL/VIH. They specifically don't guarantee that any particular device
requires crossing VILmax or VIHmin levels. Indeed, they almost guarantee that a specific device will
not require crossing those values, as it's statistically unlikely that device is right at the edge of the worst-case spec. (And that's why you can't learn these worst-case specs by inspecting a few individual devices.)
Within this spec we might find an individual sample of the device (at some temperature) with the following behavior:
0->1 threshold at 1.15V and a 1-->0 threshold at 0.85V.
- That sample (at temp) has VHYS = 0.3V (0.1V "better" than the VHYSmin spec that I posited).
- It has a zero threshold at 0.85V (0.05V better than the VILmax spec 0f 0.8V).
- It has a one threshold at 1.15V (0.15V better than the VIHmin spec of 1.3V).
Hopefully that clarifies how hysteresis relates to VIL and VIH, and how the characteristics of an individual device relate to the datasheet min and max specs giving worst case values for the population of devices.
Interpretation of dt-blob info
The info you provided here adds to our understanding of what the sections of dt-blob mean, though I found a couple of points confusing. I'll expand a little here to make sure I got it right, and for others reading along, and maybe someone will correct if not.
> [type = ...] External (cf internal) is denoting that it is on the GPIO expander,
My distillation of these notes and previous discussion, with regard to interpreting the dt-blob file is:
- [email protected]<number> refers only to GPIO pins of the SoC. GPIO3 corresponds to [email protected]
- [email protected]<some_name> supplies a name for a pin either on the SoC (type = "internal") or of the GPIO expander chip (type="external").
- Here "GPIO expander" means an IO expander chip on the RPi (let's say RPi 3), previously linked as http://www.onsemi.com/PowerSolutions/pr ... id=FXL6408, (not shown on the abridged RPi schematic, and specifically not what google returns for "Raspberry Pi Expander", which would be boards external to the RPi to expand signals of the GPIO header.)
- The signals of interest on the RPi GPIO header are all connected to the SoC (not expander), and are GPIOs 2 through 27. None of these appear in the list of pin_defines (for 3b2 for example).
- So within a particular pins_xx block, (eg: pins_3b2), only the [email protected] and [email protected]<number> (number 2..27) blocks are pertinent to the GPIO header.
> so no it isn't going to touch GPIO2 on pin 3.
"pin 3" referring to pin 3 on the RPi GPIO header (ie: not to be confused with
[email protected]).
> There are no "collisions" between the normal GPIO header and any of these internal functions.
Where "these internal" here means the functions mentioned in pin_defines marked "external", and also those marked "internal" but using GPIOs other than 2..27. That is, we know that functions mentioned in pin_define blocks are not on the GPIO header because "external" means associated with the on-board I/O expander, which does not serve the GPIO header. And other pin_defines marked "internal" have numbers not corresponding to the range on the GPIO header.
Again, thanks for your additional info, and looking forward to the answer to the DC Electrical Characteristics at VDD_IO 3.3V question when it becomes available.
[Several edits due to trickiness of avoiding typos and ambiguities etc.]