[En-Nut-Discussion] RFA_2: Nut/OS GPIO API
ole.reinhardt at embedded-it.de
Thu Oct 18 13:09:38 CEST 2012
> Sorry, but this an absolute no-go! A Pin may never be configured as
> push-pull output without extra user intervention. So _OUTPUT ever only
> sets open-collector mode!
I fully understand your point, but anyway I do not agree to you! This
would break any existing Nut/OS application as GPIO_CFG_OUTPUT is
traditionally used in push/pull mode.
Next problem is that several architectures do not support open drain
mode at all (natively). Most prominent AVR. They default to push/pull
mode and Nut/OS users are used to this behaviour.
> Next topic is the naming:
> MULTIDRIVE is not an exact name. Any open-source/open-collector bus is
> capable of multiple masters driving the bus. What we try to tell is,
> that the pin is of high impedance in that case, so not driving high, nor
> low. This is _HIGHZ (high impedance)
> Please delete _MULTIDRIVE it is misleading.
It seems that there are different views what MULTIDRIVE is. Most vendors
define MULTIDRIVE as "Open drain". So I decided to rename the flag as
GPIO_CFG_OPEN_DRAIN in my proposal.
Thermotemp GmbH, Embedded-IT
Embedded Hard-/ Software and Open Source Development,
Integration and Consulting
Geschäftsstelle Siegen - Steinstraße 67 - D-57072 Siegen -
tel +49 (0)271 5513597, +49 (0)271-73681 - fax +49 (0)271 736 97
Hauptsitz - Hademarscher Weg 7 - 13503 Berlin
Tel +49 (0)30 4315205 - Fax +49 (0)30 43665002
Geschäftsführer: Jörg Friedrichs, Ole Reinhardt
Handelsregister Berlin Charlottenburg HRB 45978 UstID DE 156329280
More information about the En-Nut-Discussion