RTV forum PL | NewsGroups PL

Brak sygnału zegarowego na wyjściu SPI z AVRa MEGA162 - możliwe przyczyny?

piła na wyjściu AVR?

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Brak sygnału zegarowego na wyjściu SPI z AVRa MEGA162 - możliwe przyczyny?

badworm
Guest

Mon Nov 19, 2012 11:25 pm   



Problem jak zwykle pewnie banalny ale wymiękłem Razz Na wyjściu z AVRa
(MEGA162), gdzie powinienem mieć piękny sygnał zegarowy dla PGA2310 po
software'owym SPI ale chwilowo jest nic niepodłączone mam cś takiego:
http://obrazki.elektroda.pl/3153887600_1353363520.png
Port z którego to wychodzi (dolna połówka portu C) zainicjowany
poprawnie, zresztą wcześniej działało to i dawało elegancki przebieg a w
kodzie nic się nie zmieniło. Procek zmieniony, dalej to samo. Nic też
nie wskazuje na jakąś globalną usterkę AVRa tudzież oscyloskopu bo
przebieg z wyjścia TXD jest elegancki, prostokątny. Zgłupiałem do reszty
Quote:
/
--

Pozdrawiam Bad Worm badworm[maupa]post{kropek}pl
GG#2400455 ICQ#320399066

Pawel O'Pajak
Guest

Tue Nov 20, 2012 4:53 pm   



Powitanko,

Quote:
ale chwilowo jest nic niepodłączone mam cś takiego

A z jakims obciazeniem? Bo wyglada, jakby jakas pojemnosc sie
rozladowywala nie majac za bardzo przez co.


Pozdroofka,
Pawel Chorzempa
--
"-Tato, po czym poznać małą szkodliwość społeczną?
-Po wielkiej szkodzie prywatnej" (kopyrajt: S. Mrożek)
******* >>> !!! UWAGA: ODPOWIADAM TYLKO NA MAILE:
moje imie.(kropka)nazwisko, ten_smieszny_znaczek, gmail.com

Paweł Hadam
Guest

Tue Nov 20, 2012 5:09 pm   



W dniu 2012-11-19 23:25, badworm pisze:
Quote:
Problem jak zwykle pewnie banalny ale wymiękłem Razz Na wyjściu z AVRa
(MEGA162), gdzie powinienem mieć piękny sygnał zegarowy dla PGA2310 po
software'owym SPI ale chwilowo jest nic niepodłączone mam cś takiego:
http://obrazki.elektroda.pl/3153887600_1353363520.png
Port z którego to wychodzi (dolna połówka portu C) zainicjowany
poprawnie, zresztą wcześniej działało to i dawało elegancki przebieg a w
kodzie nic się nie zmieniło. Procek zmieniony, dalej to samo. Nic też
nie wskazuje na jakąś globalną usterkę AVRa tudzież oscyloskopu bo
przebieg z wyjścia TXD jest elegancki, prostokątny. Zgłupiałem do reszty
/

Jesteś pewien, że to ten sam wsad procesora? Mnie to wygląda, że port
jest ustawiony na wejście(DDRC dla tego bitu=0), a rejestrem danych
kluczujesz między pull-up a Hi-z.

Pozdrawiam,
Paweł

Michoo
Guest

Tue Nov 20, 2012 5:22 pm   



On 19.11.2012 23:25, badworm wrote:
Quote:
Problem jak zwykle pewnie banalny ale wymiękłem Razz Na wyjściu z AVRa
(MEGA162), gdzie powinienem mieć piękny sygnał zegarowy dla PGA2310 po
software'owym SPI ale chwilowo jest nic niepodłączone mam cś takiego:
http://obrazki.elektroda.pl/3153887600_1353363520.png
Port z którego to wychodzi (dolna połówka portu C) zainicjowany
poprawnie, zresztą wcześniej działało to i dawało elegancki przebieg a w
kodzie nic się nie zmieniło. Procek zmieniony, dalej to samo. Nic też
nie wskazuje na jakąś globalną usterkę AVRa tudzież oscyloskopu bo
przebieg z wyjścia TXD jest elegancki, prostokątny. Zgłupiałem do reszty
/

Wygląda jakby "w dół" sygnał był ciągnięty tylko jakimś pull-down. Po
mojemu zamienione DDR i PORT.

--
Pozdrawiam
Michoo

badworm
Guest

Tue Nov 20, 2012 11:16 pm   



Dnia Tue, 20 Nov 2012 17:22:56 +0100, Michoo napisał(a):

Quote:
Wygląda jakby "w dół" sygnał był ciągnięty tylko jakimś pull-down. Po
mojemu zamienione DDR i PORT.

Ok, znalazłem rozwiązanie, nie trafiłeś choć byłeś blisko.
Najpierw miałem coś takiego:
DDR(SPI_PORT)=1<<SPI_CS | 1<<SPI_SCK | 1<<SPI_MOSI;
a kilka linijek dalej
DDR(MUTE_PORT)=1<<MUTE_OUT;
przy czym SPI_PORT i MUTE_PORT to to samo. Zebranie tego w jeden wiersz:
DDR(SPI_PORT)=1<<SPI_CS | 1<<SPI_SCK | 1<<SPI_MOSI | 1<<MUTE_OUT;
rozwiązało problem.
Dzięki za podpowiedź, tak coś czułem, że piny odpowiedzialne za soft-spi
mogą pracować jako wejścia ale nie mogłem znaleźć gdzie robię błąd.
--
Pozdrawiam Bad Worm badworm[maupa]post{kropek}pl
GG#2400455 ICQ#320399066

Michoo
Guest

Tue Nov 20, 2012 11:38 pm   



On 20.11.2012 23:16, badworm wrote:

Na przyszłość imo lepiej zrobić makra pokroju
SET_BITS(port,bits) port|=bits
CLEAR_BITS(port,bits) port&=!(bits)
TOGGLE_BITS(port,bits) port^=bits

mniejsza szansa, ze się operator = gdzieś "omsknie".

--
Pozdrawiam
Michoo

shg
Guest

Wed Nov 21, 2012 1:44 am   



On Tuesday, November 20, 2012 11:38:32 PM UTC+1, Michoo wrote:
Quote:
CLEAR_BITS(port,bits) port&=!(bits)

Tylda, nie wykrzyknik.

Michoo
Guest

Wed Nov 21, 2012 2:13 am   



On 21.11.2012 00:44, shg wrote:
Quote:
On Tuesday, November 20, 2012 11:38:32 PM UTC+1, Michoo wrote:
CLEAR_BITS(port,bits) port&=!(bits)

Tylda, nie wykrzyknik.
Zgadza się. &=~ Palec mi się omsknął.

--
Pozdrawiam
Michoo

Adam Wysocki
Guest

Wed Nov 21, 2012 10:29 am   



badworm <nospam@post.pl> wrote:

Quote:
Ok, znalazłem rozwiązanie, nie trafiłeś choć byłeś blisko.
Najpierw miałem coś takiego:
DDR(SPI_PORT)=1<<SPI_CS | 1<<SPI_SCK | 1<<SPI_MOSI;
a kilka linijek dalej
DDR(MUTE_PORT)=1<<MUTE_OUT;

Z ciekawości - wiesz (Ty albo ktoś), dlaczego akurat tak wygląda wykres?
Na moje oko to właśnie dla Hi-Z powinny być szumy i jakieś piły z pinów
obok, a dla pull-up powinna być stabilna jedynka. Na tym RIGOL-u masz to
zainwertowane?

Swoją drogą (1<<bit), w avr/io.h masz makro _BV(), IMO programy wtedy są
czytelniejsze.

--
Gof
http://www.chmurka.net/

Paweł Hadam
Guest

Wed Nov 21, 2012 7:36 pm   



W dniu 2012-11-21 09:29, Adam Wysocki pisze:
Quote:
badworm <nospam@post.pl> wrote:

Ok, znalazłem rozwiązanie, nie trafiłeś choć byłeś blisko.
Najpierw miałem coś takiego:
DDR(SPI_PORT)=1<<SPI_CS | 1<<SPI_SCK | 1<<SPI_MOSI;
a kilka linijek dalej
DDR(MUTE_PORT)=1<<MUTE_OUT;

Z ciekawości - wiesz (Ty albo ktoś), dlaczego akurat tak wygląda wykres?
Na moje oko to właśnie dla Hi-Z powinny być szumy i jakieś piły z pinów
obok, a dla pull-up powinna być stabilna jedynka. Na tym RIGOL-u masz to
zainwertowane?

"Jedynka" robiona przez pull-up właśnie jest stabilna, widać że narasta
bardzo szybko. Za to Hi-Z na porcie to tak na prawdę pull-down przez
sondę oscyloskopu (10MOhm?). Pojemności układu i samej sondy rozładowują
się wtedy dłużej niż trwa naładowanie przez pull-up. To dlatego przebieg
nie schodzi do zera - te zęby to nie "popsuta" jedynka, tam powinna być
seria impulsów 1,0,1,0...

Pozdrawiam,
Paweł

elektroda NewsGroups Forum Index - Elektronika Polska - Brak sygnału zegarowego na wyjściu SPI z AVRa MEGA162 - możliwe przyczyny?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map