attiny2313 i ISD1420

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
Nick_2
Użytkownik
Posty: 105
Rejestracja: 09 maja 2007, 8:11

attiny2313 i ISD1420

Post autor: Nick_2 » 29 mar 2008, 18:21

Witam
chciałem podlaczyc wejscia adresowe układu dzwiekowego ISD1420 do procesora attiny2313 i wymuszajac na nich stan 0 sterowac adresami w ukladzie ISD. z tego co wiem ze wpisanie 0 do rejestrow procesora nie sciaga portu do masy tylko pozostawia je w stanie trzecim (chyba ze sie myle). W jaki sposob zatem jednoznacznie wymuszac stan niski na koncowkach adresowych dodatkowego ukladu? tranzystory nie sa chyba dobtym pomyslem tym bardziej ze tych wejsc jest az 8

Awatar użytkownika
RcTomek
Moderator
Posty: 243
Rejestracja: 27 wrz 2007, 21:15
Lokalizacja: Głogów / Wrocław

Post autor: RcTomek » 29 mar 2008, 19:08

Porty AVR'ów są w stanie trzecim wtedy, gdy poszczególne znaczniki rejsetrów PORTxn i DDRxn są wyzerowane. Jeżeli DDRxn są wyzerowane, to znaczy, że porty pełnią rolę wejść. W jaki sposób chcesz sterować zewnętrznymi peryferiami skoro wyprowadzenia nie są wyjściami, tylko odwrotnie?

Nick_2
Użytkownik
Posty: 105
Rejestracja: 09 maja 2007, 8:11

Post autor: Nick_2 » 29 mar 2008, 19:25

porty konfiguruje nastepująco
config portb=&B11111111 ' co ustawia portb jako wyjscie
portb=&B11111111 'podciaga wyjscia do Vcc

Portb łacze nastepnie z wejsciami adresowymi ukadu ISD. aby okreslic poszczegolne miejsce w pamieci ukladu ISD musze wymusic na niektorych liniach portu b stan niski. Chodzi mi o to czy moge bezposrednio podlaczyc ten portb do wejsc adresowych i czy jezeli przykladowo wykonam polecenie portb=11100111 linie do ktorych wpisuje 0 beda fizycznie sciagniete do masy?

elektronWielki
Użytkownik
Posty: 247
Rejestracja: 30 maja 2006, 12:45
Lokalizacja: kontownia

Post autor: elektronWielki » 29 mar 2008, 22:53

przykład:

Kod: Zaznacz cały

	; Inicjalizacja portu D
	ldi			A, 1 << PD4 | 1 << PD6 ; PD4 i PD6 pracuja jako wyjscia pozostałe jako wejścia
	out			DDRD, A
	ldi			A, 1 << PD3 | 1 << PD5 ; PD3 i PD5 podciagniete do plusa, pozostale sa w stanie wysokiej impedancji
	out			PORTD, A

Awatar użytkownika
RcTomek
Moderator
Posty: 243
Rejestracja: 27 wrz 2007, 21:15
Lokalizacja: Głogów / Wrocław

Post autor: RcTomek » 30 mar 2008, 1:12

Nick_2 pisze:Chodzi mi o to czy moge bezposrednio podlaczyc ten portb do wejsc adresowych i czy jezeli przykladowo wykonam polecenie portb=11100111 linie do ktorych wpisuje 0 beda fizycznie sciagniete do masy?
Będą; stan trzeci można uzyskać tylko wtedy, gdy porty pracują w roli niepodciągniętych wejść. Dokładny opis razem z tabelką masz w karcie katalogowej mikrokontrolera.

ODPOWIEDZ