ustawienie DDR

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
oneat
Użytkownik
Posty: 122
Rejestracja: 01 sie 2009, 13:37
Lokalizacja: <Brak danych>

ustawienie DDR

Post autor: oneat » 25 maja 2010, 19:51

Czy kiedy ustawie np DDRA na odczyt to mogę i wysyłać i przyjmować dane a jak na wysyl to tylko wysylac ?
Co sie dzieje gdy czytam z wejscia ustawionego na wysył ?

Awatar użytkownika
kayron
Użytkownik
Posty: 2088
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 26 maja 2010, 7:04

Zmień sobie nazwę tematu bo większości skrót DDR kojarzy się z pamięciami RAM w PC.

maxzwp
-
Posty: 36
Rejestracja: 31 sty 2006, 15:13

Post autor: maxzwp » 26 maja 2010, 7:21

Popatrz sobie do datasheet'u. Generalnie:
- jeżeli ustawisz DDRA jako wyjście, to stan nóżki zależy od wartości zapisanej do PORTA. Odczytując wtedy PINA otrzymasz wartość na nóżce, czyli tę samą co w PORTA.
- jeżeli ustawisz DDRA jako wejście, to ustawienie PORTA powoduje podciągnięcie nóżki do plusa zasilania (poprzez wew. rezystancję). Wyzerowanie PORTA pozostawia nóżkę pływającą (wysoka impedancja). Odczytując PINA odczytujesz stan nóżki.

keruseykaryu

Post autor: keruseykaryu » 27 maja 2010, 18:40

maxzwp pisze:Odczytując wtedy PINA otrzymasz wartość na nóżce, czyli tę samą co w PORTA.
Hola. Nie rozpędzaj się kolego. Odczytując PINA otrzymasz rzeczywisty stan na nóżce i na Twoje nieszczęście wcale nie musi to być stan taki sam jak w PORTA.

maxzwp
-
Posty: 36
Rejestracja: 31 sty 2006, 15:13

Post autor: maxzwp » 30 maja 2010, 10:37

keruseykaryu pisze:
maxzwp pisze:Odczytując wtedy PINA otrzymasz wartość na nóżce, czyli tę samą co w PORTA.
Hola. Nie rozpędzaj się kolego. Odczytując PINA otrzymasz rzeczywisty stan na nóżce i na Twoje nieszczęście wcale nie musi to być stan taki sam jak w PORTA.
Wyraźnie napisałem, że jest tak w momencie pracy PORTA jako wyjście. W trakcie pracy portu jako wyjście, wymuszenie z zewnątrz innego stanu nóżki(zwarcie do GND lub Vcc) może uszkodzić AVR, więc nie jest to praktykowane.

oneat
Użytkownik
Posty: 122
Rejestracja: 01 sie 2009, 13:37
Lokalizacja: <Brak danych>

Post autor: oneat » 31 maja 2010, 16:05

To czym się różni PINA od PORTA ??

Jony130
Moderator
Posty: 3170
Rejestracja: 11 sie 2005, 16:33
Lokalizacja: wrocław

Post autor: Jony130 » 31 maja 2010, 17:35

Korzystając z PINA mamy zawsze możliwość odczytania rzeczywistego stanu portu (nóżki, końcówki danego portu).
PORTA w zależność od stanu w rejestrze DDA wymusza stan na wyjściu albo podciąga wejście.
Dla DDA = 0 dana nóżka pracuje jako wejście
I tak dla stanu 0 w PORTA wejście jest "pływające" dla 1 wejście podciągane jest do plusa.

Wpisując stan wysoki (1) do DDA ustawiamy dany port do pracy jako wyjście.
I wtedy niski stan w PORTA oznacza wymuszenie stanu niskiego na wyjściu.
A wpisane stanu wysokiego do PORTA wymusza stan wysoki na wyjściu.
maxzwp pisze:wymuszenie z zewnątrz innego stanu nóżki(zwarcie do GND lub Vcc) może uszkodzić AVR, więc nie jest to praktykowane.

Tu nie chodzi o wymuszenie, a o prąd jak i wpływa lub wypływa z portu pracującego w roli wyjścia i o spadek napięcia na tranzystorze wyjściowym.
Czyli o parametry elektryczne, takie jak output low voltage i output high voltage.
Mówiąc obrazowo, pobór prąd jest na tyle duży, że rzeczywisty stan napięcia na danej końcówce ma się nijak do stanu wpisanego do PORTA.

ODPOWIEDZ