Har ATmega inbyggda resistorer?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Har ATmega inbyggda resistorer?

Inlägg av Al_Bundy »

I Arduino finns det en funktion som heter pinMode(); och i den funktionen kan man skriva två argument. Det första argumentet är utgången/ingången t.ex. 3 eller 4. Andra argumentet är om det är INPUT eller OUTPUT. Men då finns det en tredje INPUT som heter INPUT_PULLUP.

Enligt Arduinos hemsida så står det följande:
The Atmega microcontroller on the Arduino has internal pull-up resistors (resistors that connect to power internally) that you can access. If you prefer to use these instead of external pull-up resistors, you can use the INPUT_PULLUP argument in pinMode().
http://arduino.cc/en/Reference/Constants

Menar då skaparna till Arduino att det är ATmega processorn som har inbyggda resistorer eller är det själva arduinokortet dem syftar på?
Om jag använder mig av pinMode(3, INPUT_PULLUP); Måste jag då senare använda mig av digitalWrite(3, HIGH); för att det ska fungera?

En god vän till mig hävdar att man måste använda sig av digitalWrite(Pinne, HIGH); när man använder sig av pinMode(Pinne, INPUT_PULLUP); Annars fungerar det inte, dvs att det blir signalfel.

När jag använder mig av INPUT_PULLUP och ansluter den valda pinnens ingång till jorden GND så läser mitt program av en 0:a, annars en 1:a. Så jag hävdar att det fungerar att använda pinMode(Pinne, INPUT_PULLUP); utan att direkt skicka ut en spänning med hjälp av digitalWrite(Pinne, HIGH);
Användarvisningsbild
Klas-Kenny
Inlägg: 11840
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Har ATmega inbyggda resistorer?

Inlägg av Klas-Kenny »

Jag vet inte (har inte mycket erfarenhet av just Arduino) om man behöver "skriva" ingången hög eller ej för att aktivera Pull-up i Arduino, men, att du inte bara testar?
Jag antar att du har en Arduino tillgänglig, det är ju ett experiment på fem minuter för att få reda på svaret, om du nu inte hittar det på nätet.

Men ja, det är inbyggda pull-up i processorn, väldigt vanligt att det finns på mikrokontrollers.
Användarvisningsbild
AndLi
Inlägg: 18274
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Har ATmega inbyggda resistorer?

Inlägg av AndLi »

Pull-up:enrna sitter inne i Atmegan (i princip alla µC idag erbjuder möjligheten till interna pull-up:s på ingångarna)
Vad säger Atmels datablad om den Atmegan du använder?

Så svaret på din rubrik är JA :)
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46968
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Har ATmega inbyggda resistorer?

Inlägg av TomasL »

The Atmega microcontroller
Står det i ditt citat, men du får ju lämpligen kolla i processorns datablad.
Användarvisningsbild
säter
Inlägg: 35294
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Har ATmega inbyggda resistorer?

Inlägg av säter »

du får ju lämpligen kolla i processorns datablad
Al Bundy vägrar läsa datablad. :)
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Har ATmega inbyggda resistorer?

Inlägg av Icecap »

Rent faktisk är svaret nej!

Det finns pull-up på en del portpinnar - men det är inte motstånd som sitter där, det är svaga strömgeneratorer, alltså MOSFET-transistorer med låg drainström.

Så ja, det finns pull-up - men nej, det är inte i form av motstånd.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Har ATmega inbyggda resistorer?

Inlägg av Al_Bundy »

Klas-Kenny skrev:Jag vet inte (har inte mycket erfarenhet av just Arduino) om man behöver "skriva" ingången hög eller ej för att aktivera Pull-up i Arduino, men, att du inte bara testar?
Jag antar att du har en Arduino tillgänglig, det är ju ett experiment på fem minuter för att få reda på svaret, om du nu inte hittar det på nätet.

Men ja, det är inbyggda pull-up i processorn, väldigt vanligt att det finns på mikrokontrollers.
Men jag har redan testat och det fungerar, men han säger att det blir störningar om man inte sätter ingången hög. Jag har inte märkt att det har blivit några störningar.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Har ATmega inbyggda resistorer?

Inlägg av Al_Bundy »

säter skrev:
du får ju lämpligen kolla i processorns datablad
Al Bundy vägrar läsa datablad. :)
Varför ljuger du?
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Har ATmega inbyggda resistorer?

Inlägg av Al_Bundy »

AndLi skrev:Pull-up:enrna sitter inne i Atmegan (i princip alla µC idag erbjuder möjligheten till interna pull-up:s på ingångarna)
Vad säger Atmels datablad om den Atmegan du använder?

Så svaret på din rubrik är JA :)
Okej, tack för svaret :)

Jag har inte kollat Atmels datablad än. Jag har bara kollat på Arduinos hemsida.
Jag skulle dessutom inte hitta en liten text i hundratals sidor långt datablad om just interna pull ups :)
Användarvisningsbild
maha
EF Sponsor
Inlägg: 1685
Blev medlem: 22 november 2005, 09:47:02
Ort: Jakobstad, Finland

Re: Har ATmega inbyggda resistorer?

Inlägg av maha »

CTRL+F är ett hett tips. Jag har inte Arduinofilerna tillgängliga nu så jag kan inte kolla vad som sker då man använder INPUT_PULLUP men det är ju nästan hundra procent säkert att det är samma som en vanlig pinMode(x, INPUT) med efterföljande digitalWrite(x, HIGH). Men som sagt, bara att gräva i koden och kolla.
Användarvisningsbild
maha
EF Sponsor
Inlägg: 1685
Blev medlem: 22 november 2005, 09:47:02
Ort: Jakobstad, Finland

Re: Har ATmega inbyggda resistorer?

Inlägg av maha »

Äh, kunde inte låta bli att kolla och jo, skillnaden är att utgången sätts hög (aktiverar pullup). Men det lönar sig att använda INPUT_PULLUP för det går lite snabbare än en extra digitalWrite som i Arduino är mååånga instruktioner.

Kod: Markera allt

	if (mode == INPUT) { 
		uint8_t oldSREG = SREG;
                cli();
		*reg &= ~bit;
		*out &= ~bit;
		SREG = oldSREG;
	} else if (mode == INPUT_PULLUP) {
		uint8_t oldSREG = SREG;
                cli();
		*reg &= ~bit;
		*out |= bit;
		SREG = oldSREG;
	} else {
		uint8_t oldSREG = SREG;
                cli();
		*reg |= bit;
		SREG = oldSREG;
	}
Användarvisningsbild
Klas-Kenny
Inlägg: 11840
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Har ATmega inbyggda resistorer?

Inlägg av Klas-Kenny »

Jag skulle dessutom inte hitta en liten text i hundratals sidor långt datablad om just interna pull ups :)
Jag har vad jag kan minnas aldrig kollat i ett datablad ifrån Atmel förut, det tog mig under en minut att ta fram ett datablad och hitta precis den informationen, så svårt är det faktiskt inte..
Icecap skrev:Rent faktisk är svaret nej!

Det finns pull-up på en del portpinnar - men det är inte motstånd som sitter där, det är svaga strömgeneratorer, alltså MOSFET-transistorer med låg drainström.

Så ja, det finns pull-up - men nej, det är inte i form av motstånd.
Är du helt säker?
I databladet för ATmega32 nämns vad jag kan hitta enbart "Pull-up Resistor", specificerade till 20-50kΩ, och i exempelvis figur 23 General Digital I/O ritas det som ett helt vanligt motstånd, då i serie med en transistor.

Det är ju förvisso inte omöjligt att det i verkligheten är strömgeneratorer som du säger men att de förenklar ner det lite för att det inte spelar någon roll för användaren, men det vore kul med en källa på det i så fall. :)
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Har ATmega inbyggda resistorer?

Inlägg av Icecap »

KK: jag är ganska säker på att det inte är motstånd. Orsaken är att ett motstånd på en chip fyller en del och är besvärligt medan en transistor är hur enkel som helst att tillverka och fyller minimalt.
Användarvisningsbild
Lennart Aspenryd
Tidigare Lasp
Inlägg: 12607
Blev medlem: 1 juli 2011, 19:09:09
Ort: Helsingborg

Re: Har ATmega inbyggda resistorer?

Inlägg av Lennart Aspenryd »

Återigen ett märkligt inlägg.
Här säger TS att en SEF medlem ljuger, som hävdar att TS inte har läst datablad.
Så direkt i inlägget efter kommer sanningen! "Jag har inte läst databladet!"
Hur länge kan detta troll driva med Er SEFáre? Lasp är förvånad!
Balans, Sans och Moral. Nyckelord som inte finns i Chigago, eller i Umeå! BSM
Användarvisningsbild
Glenn
Inlägg: 36722
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Re: Har ATmega inbyggda resistorer?

Inlägg av Glenn »

Jag har läst en diskussion om detta innan (här ? kanske) där man kommer fram till att det inte är resistorer men att det benämns och ritas som resistorer för att det är den funktionen man vill ha, även om man löser det med transistorer internt i praktiken. (Antagligen av det skälet som Icecap skriver om.)

Själv har jag lite svårt för interna pullups, föredrar att sätta dit en extern resistor så vet man hur det är sen :)
Skriv svar