Monthly Archives: April 2018

Raspberry Pi 3, rpi-update

Es gibt so gut wie keinen Grund an einem laufenden System ein Firmware- und Kernel-Update mit “rpi-update” durchzuführen. Die Gefahr ist viel zu groß, dass danach das eine oder andere System nicht mehr richtig funktioniert.”

Ein Update über “rpi-update” kann “unstable” sein. Das heißt, dass daran noch entwickelt wird und dass es vielleicht fehlerhaft ist. Sobald Firmware, Bootloader, der Kernel und die Bibliotheken “stable” sind, werden sie über “apt-get upgrade” verfügbar gemacht und sind dann offiziell installierbar.

Deshalb generell die Empfehlung, Finger weg von “rpi-update“. Es sei denn man weiß, warum man das tut.

github.com/Hexxeh/rpi-update, An easier way to update the firmware of your Raspberry Pi
Firmware- und Kernel-Update mit rpi-update beim Raspberry Pi

Raspberry Pi 3, Power Requirements

FAQ: WHAT ARE THE POWER REQUIREMENTS?

Voltage

“Power sources SHOULD provide 5±0.25V”
“The newer Pi(3/2/B+) have a voltage monitor chip (APX803) which triggers at 4.63±0.07V. This controls the Red Power LED.”

Low Power

“China Power Supplies: They may appear to work OK for a lightly loaded Pi, but may not if many peripherals are connected.”
“If you use poor quality cables to connect to the Pi you will have problems.”

Current

“The Pi 3.3V rail is widely assumed to provide 50mA, but this is not officially documented for recent Pi models.”
“The regulator chip (which supplies both 3.3V and 1.8V) is rated at 1A.”
“Tests by a member indicate up to 800mA can be used – subject to an adequate power supply.”

Raspberry Pi Power Limitations

Feasability Of Powering A Raspberry Pi With A 3.7V Battery

Raspberry Pi 3, GPIO Input/Push Button and Pull-Up/Down

“The input current however is something nobody usually cares about as in digital circuits we usually assume low impedance outputs and high impedance inputs.”

What is the minimum current value into the Pi’s GPIO input?
Push buttons – should I be using a resistor or not? (yes)
Bread Board Setup for Input Buttons
GPIO Electrical Specifications

GPIO pin pull state on powerup

New

dt-blob.bin not working for RaspberryPi 3+ ?
New “gpio” config command
New “gpio” config.txt command announcement

Old

Changing the default pin configuration
Device Trees, overlays, and parameters
github.com/raspberrypi/firmware/blob/master/extra/dt-blob.dts

Enabling Pullup and Pulldown Resistors on The Raspberry Pi
Device Tree Overlay to adjust GPIO Outputs
Raspberry Pi GPIO states at boot time
Raspberry Pi Device Tree and Overlay Configuration

GPIO pin states on powerup [duplicate]
Default pin pull state upon boot
Power on behaviour
Override GPIO state at boot (2016)
GPIO Pin States a Boot time – Change in 3.6.11+ (2013)

5V to 3.3V

  • 0.0V – 2.0V = LOW
  • 2.1V – 3.3V = HIGH

GPIO Voltage Thresholds

Books

Exploring Raspberry Pi: Interfacing to the Real World with Embedded Linux
“CMOS gate inputs have extremely large resistance and draw almost no current, allowing large fan-out capability.”

Raspberry Pi 3, GPIO Pin Alternate Functions

Forum

GPIO: switching between ALT functions

Tools and Applications

pi-gpio-switch , Utility to switch Raspberry-Pi GPIO pin functions by Tim Giles 01/04/2013
changing pins works!
Raspberry Pi And The IoT In C – Memory Mapped GPIO

bcm2835

C library for Broadcom BCM 2835 as used in Raspberry Pi
github.com/SS-JIA/bcppm2835, A C++ port of Mike’s bcm2835 C library
Device::BCM2835 – Perl extension for accesing GPIO pins on a Raspberry Pi via the BCM 2835 GPIO
github.com/jperkin/node-rpio, Raspberry Pi GPIO library for node.js


/*!   \brief bcm2835PortFunction
  Port function select modes for bcm2835_gpio_fsel()
*/
typedef enum
{
    BCM2835_GPIO_FSEL_INPT  = 0x00,   /*!< Input 0b000 */
    BCM2835_GPIO_FSEL_OUTP  = 0x01,   /*!< Output 0b001 */
    BCM2835_GPIO_FSEL_ALT0  = 0x04,   /*!< Alternate function 0 0b100 */
    BCM2835_GPIO_FSEL_ALT1  = 0x05,   /*!< Alternate function 1 0b101 */
    BCM2835_GPIO_FSEL_ALT2  = 0x06,   /*!< Alternate function 2 0b110, */
    BCM2835_GPIO_FSEL_ALT3  = 0x07,   /*!< Alternate function 3 0b111 */
    BCM2835_GPIO_FSEL_ALT4  = 0x03,   /*!< Alternate function 4 0b011 */
    BCM2835_GPIO_FSEL_ALT5  = 0x02,   /*!< Alternate function 5 0b010 */
    BCM2835_GPIO_FSEL_MASK  = 0x07    /*!< Function select bits mask 0b111 */
} bcm2835FunctionSelect;

/*! \brief bcm2835PUDControl
  Pullup/Pulldown defines for bcm2835_gpio_pud()
*/
typedef enum
{
    BCM2835_GPIO_PUD_OFF     = 0x00,   /*!< Off ? disable pull-up/down 0b00 */
    BCM2835_GPIO_PUD_DOWN    = 0x01,   /*!< Enable Pull Down control 0b01 */
    BCM2835_GPIO_PUD_UP      = 0x02    /*!< Enable Pull Up control 0b10  */
} bcm2835PUDControl;

Device Tree

Device Trees, overlays, and parameters
Enabling Pullup and Pulldown Resistors on The Raspberry Pi
How do I make a device tree overlay for just a single GPIO?

elinux.org

RPi Low-level peripherals
RPi Tutorial Easy GPIO Hardware & Software
RPi BCM2835 GPIOs
RPi GPIO Code Samples