Page 1 of 1

Pull Up Widerstände in der Shell steuern?

Posted: Tue Jul 02, 2013 8:27 am
by matt.b
Hallo,

wie man in der Shell die GPIO-Pins steuern ist mir bekannt (echo "2" > /sys/class/gpio/export, usw.).
Kann man mit so einem Befehl auch die Pull-Up-Widerstände der Eingänge steuern?
Konnte bisland noch nichts finden.

Gruss
matt

Re: Pull Up Widerstände in der Shell steuern?

Posted: Tue Jul 02, 2013 2:05 pm
by mline
Versuch mal gpio als eingangbzu definieren und eine 1 reinzuschreiben. So funktionierte bei Mikrocontroller

Re: Pull Up Widerstände in der Shell steuern?

Posted: Wed Jul 03, 2013 1:03 pm
by matt.b
Hallo mline,

deine Idee habe ich gerade gecheckt. Funktioniert aber leider nicht.

Gruss
matt

Re: Pull Up Widerstände in der Shell steuern?

Posted: Wed Jul 03, 2013 2:09 pm
by naicheben
Sind die Pullups nicht aufgelötet?
EDIT: habe den Schaltplan von Rev.1.0 mal angeschaut, die I2C Pullups sind fest aufgelötet und können somit nicht wie bei AVR und Co. gesteuert werden.

Re: Pull Up Widerstände in der Shell steuern?

Posted: Wed Jul 03, 2013 2:34 pm
by matt.b
Bei den I2C-Pins ist das so. Bei den restlichen Pins sind im Chip Pull-Up Widerstände eingebaut. Und ich würde diese gerne über die Shell steuern. Leider habe ich noch überhaupt gar nichts in der Richtung gefunden.

Re: Pull Up Widerstände in der Shell steuern?

Posted: Wed Jul 03, 2013 3:04 pm
by naicheben
Achso, dann versuche doch mal das hier aus dem Wiki:

Code: Select all

gpio -g mode 17 up
Quelle: http://elinux.org/RPi_Low-level_periphe ... t_-_take_2

Re: Pull Up Widerstände in der Shell steuern?

Posted: Wed Jul 03, 2013 3:39 pm
by matt.b
Um den Befehl

Code: Select all

gpio -g mode 17 up
benutzen zu können muss wiringPi installiert sein. Das will ich eigentlich vermeiden.

Trotzdem danke!

Re: Pull Up Widerstände in der Shell steuern?

Posted: Thu Jul 04, 2013 6:25 pm
by naicheben
Ich habe mal geschaut wie wiringPi das macht. In der Shell über sysfs gehts meiner Meinung nach überhaupt nicht. Im Kernel ist das scheinbar gar nicht integriert. Gordon setzt das Register dementsprechend direkt so:

Code: Select all

/*
 * pullUpDownCtrl:
 *      Control the internal pull-up/down resistors on a GPIO pin
 *      The Arduino only has pull-ups and these are enabled by writing 1
 *      to a port when in input mode - this paradigm doesn't quite apply
 *      here though.
 *********************************************************************************
 */
   
void pullUpDnControlGpio (int pin, int pud)
{
  pin &= 63 ;
  pud &=  3 ;

  *(gpio + GPPUD)              = pud ;                  delayMicroseconds (5) ;
  *(gpio + gpioToPUDCLK [pin]) = 1 << (pin & 31) ;      delayMicroseconds (5) ;

  *(gpio + GPPUD)              = 0 ;                    delayMicroseconds (5) ;
  *(gpio + gpioToPUDCLK [pin]) = 0 ;                    delayMicroseconds (5) ;
}
 
void pullUpDnControlWPi (int pin, int pud)
{
  pullUpDnControlGpio (pinToGpio [pin & 63], pud) ;
}
 
void pullUpDnControlSys (int pin, int pud)
{
  return ;
}