Sida 2 av 3
Re: open drain, vad är det?
Postat: 16 maj 2009, 10:37:27
av sodjan
> Jag har inte möjligheten att lägga till ett motstånd...
Gör om, gör rätt.
Re: open drain, vad är det?
Postat: 16 maj 2009, 10:44:53
av eqlazer
Varför inte göra som vanligt och använda intern pullup och låta knappar sänka till jord?
Re: open drain, vad är det?
Postat: 16 maj 2009, 12:54:25
av Nerre
TomasL skrev:eftersom det ska bli avbrott när en switch slår till och kopplar pinnen till 3.3V
Det är lite otydligt
Nej, inte om man tolkar avbrott som "interrupt".
Re: open drain, vad är det?
Postat: 16 maj 2009, 14:18:51
av cyr
YeaYeah skrev:Jag har inte möjligheten att lägga till ett motstånd...
Varför inte? Det går alltid att modda dit något...
Det är såna misstag man gör ibland på prototyper, inte så konstigt (även om det i det här fallet borde ha varit enkelt att undvika genom att faktiskt läsa databladet först och bygga sen...)
Re: open drain, vad är det?
Postat: 16 maj 2009, 15:43:52
av jesse
Har du inte något
datablad till processorn? Där borde det väl stå om det finns pull-up eller pull-down inbyggt på ingångarna?
• All the I/O lines PA0 to PA31on AT91SAM7S512/256/128/64/321 (PA0 to PA20 on
AT91SAM7S32) are 5V-tolerant and all integrate a programmable pull-up resistor.
Du verkar blanda ihop funktionerna med utgångar och ingångar. Om du kopplar en signal som ska läsas av processorn så får du inte göra den pinnen till utgång - då bränner du ju kretsen. (processor ut 0 volt + en knapp nedtryckt till +3.3volt = kortslutning!)
Så se först till att pinnen är programmerad som ingång och inget annat. Och då är atrributet "open drain" helt ovidkommande - det används inte på ingångar.
Re: open drain, vad är det?
Postat: 16 maj 2009, 17:48:34
av YeaYeah
Mmm, jag är nybörjare och har nog blandet ihop en del. Men nu funkar det! Dock en riktig ful-lösning.
main{
while(1){
...
PIO_Configure(&pinPB1Output, 1); //Sätter pinne till 0
....
....
....
unsigned int i;
PIO_Configure(&pinPB1Input, 1);//Sätter pinne till input.
for (i =0;i<10;i++);
svar=PIO_Get(&pinPB1Input);
PIO_Configure(&pinPB1Output, 1);//Sätter pinne till 0
...
}
}
Jag sätter alltså pinnen till output för att dra ner den till 0v. När någon sedan trycker på knappen kommer pinnen bli hög fast att mikrokontrollern försöker dra ner pinnen till låg. Jag vet då att pinnen bara är låg om knapp INTE är nedtryckt. Finns det risk att jag bränner något i mikrokontrollern genom att göra så här? Hittills verkar inget ha gått sönder..
Tack för alla svaren!
Re: open drain, vad är det?
Postat: 16 maj 2009, 17:54:08
av TomasL
Öh, vad pysslar du med???
Jag vet då att pinnen bara är låg om knapp INTE är nedtryckt
Hur vet du det, du kan inte läsa av en utgång.
Re: open drain, vad är det?
Postat: 16 maj 2009, 18:00:14
av cyr
Jodå, det kan man oftast (ingången fungerar precis som vanligt även om utgångsbuffertern är aktiv).
Dock så är det inte speciellt bra att kortsluta på det sättet. Om det bara är någon sekund åt gången när
man trycker på knappen så håller det nog, men det är verkligen ett fulhack.
Re: open drain, vad är det?
Postat: 16 maj 2009, 18:14:30
av Micke_s
Hur svårt kan det vara att fästa 5st ytmonterade motstånd vid knapparna eller processorn och dra dessa mot gnd eller vcc vad nu som är lämpligt.
Re: open drain, vad är det?
Postat: 16 maj 2009, 18:40:07
av YeaYeah
Det går inte. Kortet är 4-lagers, kostade så där 2700kr och det är med solder stop. Finns alltså knappt några kontakter. Isåfall skulle jag få dra stora motstånd över hela kortet och det känns inte så bra.
Re: open drain, vad är det?
Postat: 16 maj 2009, 18:52:09
av Micke_s
fram med kniven och skrapa lite på processorn alt knapparna så ska du se att det går.
Re: open drain, vad är det?
Postat: 16 maj 2009, 19:11:07
av TomasL
Så länge det inte är ingjutit i epoxy så går allt. (går även om det är ingjutit, med lite vilja)
Re: open drain, vad är det?
Postat: 16 maj 2009, 20:47:33
av Micke_s
Om man har problem att löda fine-pitch är det värre...
Re: open drain, vad är det?
Postat: 17 maj 2009, 01:05:26
av sodjan
> Det går inte. Kortet är 4-lagers, kostade så där 2700kr...
>
> Jag sätter alltså pinnen till output för att dra ner den till 0v. När någon sedan trycker
> på knappen kommer pinnen bli hög fast att mikrokontrollern försöker dra ner pinnen till låg.
Det måste vara något av det dummaste jag har läst här på länge.
En ren idiotlösning...
> Finns det risk att jag bränner något i mikrokontrollern genom att göra så här?
Självklar gör det det.
> Hittills verkar inget ha gått sönder..
"Verkar" ? Du har inte en aning om ifall du har skadat något. Det är inte säkert att
du kommer att se det alls. I alla fall inte än. Jag hoppas inte skiten ska sitta i
något viktigt i alla fall. Eller att någon har betalat dig för att fixa denna konstruktion.
Re: open drain, vad är det?
Postat: 17 maj 2009, 20:00:01
av Nerre
YeaYeah skrev:Finns det risk att jag bränner något i mikrokontrollern genom att göra så här?
Nejdå, ingen risk, snarare garanti.