RTV forum PL | NewsGroups PL

Prosty projekt analizatora stanów logicznych na RS232 do 100kS/s na PC z Win2000

analizator stanów logicznych na RS232

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Prosty projekt analizatora stanów logicznych na RS232 do 100kS/s na PC z Win2000

Goto page Previous  1, 2

T.M.F.
Guest

Thu Aug 17, 2006 4:38 pm   



Quote:
No tak, ale czy pan Datasheet nie mówi, że na faktyczną zmianę na pinie
trzeba troszkę poczekać? Mi się wydaje, że trzeba, ale rzeczywiście
nigdzie się nie dokopałem do konkretnej informacji, a oscyloskopu nie
mam, więc nie podejrzę.

O tak. Dlatego napisalem chyba. Gdyby szlo SBI, NOP, SBI to bylbym pewien:)



--
Inteligentny dom - http://idom.wizzard.one.pl
Teraz takze forum dyskusyjne
Zobacz, wyslij uwagi, dolacz sie do projektu.

Grzegorz Kurczyk
Guest

Thu Aug 17, 2006 5:25 pm   



Użytkownik T.M.F. napisał:

Quote:
SBI PINB,1
SBI PINB,1
SBI PINB,1
SBI PINB,1
itd.


Tą metodą zrobisz 4MHz bo instrukcje cbi/sbi zajmują dwa takty zegara
A można dwa razy szybciej szybciej :-)

P.S. Chyba będą dwa piwa :-)


Chetnie:) Jesli na nie zasluzysz Smile
SBI zajmuje 2 takty, wiec rzeczywisty przebieg bedzie mial 8MHz. Ale ok,
niech bedzie out, wtedy mi wychodzi 16MHz.

Hmmm... zaproponowałeś sekwencję rozkazów:
SBI PINB,1
SBI PINB,1
SBI PINB,1
SBI PINB,1

Teraz dopiero zauważyłem, że ona właściwie nic nie robi. Zapisywanie
czegokolwiek (ustawianie bitów) do portów PINx nic nie daje, bo te porty
są wyłącznie do odczytu. Jeśli miałeś może na mysli sekwencję:
SBI PORTB,1
SBI PORTB,1
SBI PORTB,1
SBI PORTB,1

to pierwszy rozkaz ustawi stan wysoki na nodze PB1 (o ile był wcześniej
ustawiony na wyjscie), a kolejne rozkazy już nic nie zmienią...

Pozdrawiam
Grzegorz

Grzegorz Kurczyk
Guest

Thu Aug 17, 2006 5:34 pm   



Użytkownik Krzysiek napisał:

Quote:

No tak, ale czy pan Datasheet nie mówi, że na faktyczną zmianę na pinie
trzeba troszkę poczekać? Mi się wydaje, że trzeba, ale rzeczywiście
nigdzie się nie dokopałem do konkretnej informacji, a oscyloskopu nie
mam, więc nie podejrzę.

Trzeba poczekać... jakieś kilka..kilkanaście ns (nanosekund) od
zakończenia cyklu zegarowego.

Pozdrawiam
Grzegorz

Sirtap
Guest

Thu Aug 17, 2006 6:01 pm   



Quote:
Teraz dopiero zauważyłem, że ona właściwie nic nie robi. Zapisywanie
czegokolwiek (ustawianie bitów) do portów PINx nic nie daje, bo te porty
są wyłącznie do odczytu.

nie w najnowszych atmegach. jeżeli zapiszesz bit PINB to zmienisz stan
wyjścia. jeżeli było 1 to będzie 0, jeżeli 0 to będzie 1.

Grzegorz Kurczyk
Guest

Thu Aug 17, 2006 6:16 pm   



Użytkownik Sirtap napisał:

Quote:
nie w najnowszych atmegach. jeeli zapiszesz bit PINB to zmienisz stan
wyjcia. jeeli byo 1 to bdzie 0, jeeli 0 to bdzie 1.

W ATmega32 raczej nie. Patrzę i patrzę w tego pdf-a i nic takiego nie
widzę. Aż wsadzę Atmela w podstawkę i sprawdzę.

Pozdrawiam
Grzegorz

Grzegorz Kurczyk
Guest

Thu Aug 17, 2006 6:19 pm   



Użytkownik Grzegorz Kurczyk napisał:
Quote:
W ATmega32 raczej nie. Patrzę i patrzę w tego pdf-a i nic takiego nie
widzę. Aż wsadzę Atmela w podstawkę i sprawdzę.

Ale faktycznie budowa portu w ATmega48/88 daje taką praktyczną
możliwość. Ale wracając do zagadki, to spróbujmy wycisnąć te 8MHz z pinu
na ATmega8/32/64 itp.

Pozdrawiam
Grzegorz

krzychk2
Guest

Thu Aug 17, 2006 6:48 pm   



Sirtap napisał(a):

Quote:
witam

AVT ma w swojej ofercie takie urządzenie. Jestem w jego posiadaniu i jak
na
razie sprawuje się całkiem nieźle.

Zapewne piszesz o avt-389. Masz jego schemat? Niestety nie udostępnili na
stronie avt, a EP z kwietnia 2005 nie mam.

pozdrawiam

Schemat posiadam ale tylko w wersji papierowej Sad A skanera już niestety nie
posiadam. Zresztą nie ma co kombinować - kit ze wszystkimi gratami kosztuje
koło 90 PLN i masz wszystko w komplecie, łącznie z obudową i krokodylkami
do kabelków. Wystarczy dorobić tylko kabel łączący i kabelki do analizatora
i wszystko. Jak liczyłem samemu od początku jakby składać to wyszło
niewiele taniej, a jeszcze trzeba zrobić płytkę, zaprogramować procek
itepe.


--
Pozdro
KrzychK2

badworm
Guest

Thu Aug 17, 2006 7:41 pm   



Grzegorz Kurczyk napisał(a):
Quote:
Jeśli wystarczy poniżej 2KB pamięci próbek, to na ATmega32 możesz zrobić
sobie ośmiokanałowy analizator, na którym wyciągniesz ponad 5MS/s.

Zapomniałem dodać - mi chodzi o coś bez zewnętrznej elektroniki(poza
układami dopasowującymi poziom i ew. formującymi sygnał) a przy okazji
bardzo taniego Smile Cała inteligencja tego urządzenia ma się kryć w
sofcie na PC.
--
Pozdrawiam Bad Worm badworm{"a" w kolku}post[punkt]pl
GG# 2400455 ICQ# 320399066
http://photobucket.com/albums/b252/badworm/
http://www.firefox.pl/ - I Ty miej swojego liska!

Sirtap
Guest

Thu Aug 17, 2006 8:26 pm   



Quote:
W ATmega32 raczej nie. Patrzę i patrzę w tego pdf-a i nic takiego nie
widzę. Aż wsadzę Atmela w podstawkę i sprawdzę.

Według książki 'mikrokontrolery avr, atmega w praktyce' jest to możliwe w
ATmega88/165/169/325.
Według datasheeta do atmega32 porty PINx są read-only, a ich zapis nic nie
powoduje (co innego w atmega325 i itp).

Grzegorz Kurczyk
Guest

Fri Aug 18, 2006 7:27 am   



Użytkownik Grzegorz Kurczyk napisał:
Quote:
Chetnie:) Jesli na nie zasluzysz Smile
SBI zajmuje 2 takty, wiec rzeczywisty przebieg bedzie mial 8MHz. Ale
ok, niech bedzie out, wtedy mi wychodzi 16MHz.

No to zarabiam na to drugie piwo Smile
Oczywiście trzeba do tego zastosować instrukcję OUT.
Przykład dla wspomnianego bitu PB1

; zapamiętujemy stan PORTB coby nie wajhlować pozostałymi bitami Smile
IN R16, PORTB
MOV R17, R16
; przygotowujemy maski bitów dla PB1
ORI R16, b00000010
ANDI R17, b11111101
; i wajhlujemy bitem PB1 Smile
OUT PORTB, R16
OUT PORTB, R17
OUT PORTB, R16
OUT PORTB, R17
OUT PORTB, R16
OUT PORTB, R17
..
..
..
OUT PORTB, R16
OUT PORTB, R17

W prockach ATmega48/88 itp. raczej nie uda się uzyskać 16MHz przez
ustawianie OUT-em bitu w porcie PINB ponieważ jeden rozkaz OUT PINB
zmieni stan pinu na przeciwny - czyli uzyskamy dokładnie to co w
powyższym programie. Ale tego nie testowałem, bo nie mam pod ręką
takiego procka.

Tak przy okazji zastanawiałem się nad poprzednimi przykładami:
Proponowana przez Kolegę sekwencja rozkazów...
SBI PINB,1 ; zmień z 0 na 1
SBI PINB,1 ; zmień z 1 na 0
SBI PINB,1 ; zmień z 0 na 1
SBI PINB,1 ; zmień z 1 na 0

da w zasadzie dokładnie to samo co

SBI PORTB,1 ; ustaw 1
CBI PORTB,1 ; ustaw 0
SBI PORTB,1 ; ustaw 1
CBI PORTB,1 ; ustaw 0

każdy rozkaz zajmuje dwa takty zegara więc na wyjściu pojawi sie 4MHz.

Pozdrawiam
Grzegorz

T.M.F.
Guest

Fri Aug 18, 2006 8:08 am   



Quote:
W prockach ATmega48/88 itp. raczej nie uda się uzyskać 16MHz przez
ustawianie OUT-em bitu w porcie PINB ponieważ jeden rozkaz OUT PINB
zmieni stan pinu na przeciwny - czyli uzyskamy dokładnie to co w
powyższym programie. Ale tego nie testowałem, bo nie mam pod ręką
takiego procka.

Nie, to nie tak dziala. OUT PINB robi toggle bitu w taki sposob, ze
jesli np. bit 0 ma wartosc 0 i teraz zrobimy out pinb,1 to stan tego
portu na chwile zmieni sie na 1 i SAM wroci do 0. Czyli niejako jedna
instrukcja zalatwia nam dwie.
Dlatego sekwencja :

Quote:
SBI PINB,1 ; zmień z 0 na 1
SBI PINB,1 ; zmień z 1 na 0
SBI PINB,1 ; zmień z 0 na 1
SBI PINB,1 ; zmień z 1 na 0

nie jest rownowazna sekwencji:

SBI PORTB,1 ; ustaw 1
CBI PORTB,1 ; ustaw 0
SBI PORTB,1 ; ustaw 1
CBI PORTB,1 ; ustaw 0


Dlatego teoretycznie mozna by uzyskac 16MHz. Problem w tym, ze w
datasheecie nie podaja dokladnie kiedy zmieniaja sie stany portu. Wydaje
sie, ze w drugiej polowie cyklu zegara stan portu powinien sie zmienic,
ale zupelnie nie mam pojecia kiedy wraca do stanu wyjsciowego. Musze to
podejrzec na oscyloskopie.



--
Inteligentny dom - http://idom.wizzard.one.pl
Teraz takze forum dyskusyjne
Zobacz, wyslij uwagi, dolacz sie do projektu.

Grzegorz Kurczyk
Guest

Fri Aug 18, 2006 9:58 am   



Użytkownik T.M.F. napisał:
Quote:
W prockach ATmega48/88 itp. raczej nie uda się uzyskać 16MHz przez
ustawianie OUT-em bitu w porcie PINB ponieważ jeden rozkaz OUT PINB
zmieni stan pinu na przeciwny - czyli uzyskamy dokładnie to co w
powyższym programie. Ale tego nie testowałem, bo nie mam pod ręką
takiego procka.


Nie, to nie tak dziala. OUT PINB robi toggle bitu w taki sposob, ze
jesli np. bit 0 ma wartosc 0 i teraz zrobimy out pinb,1 to stan tego
portu na chwile zmieni sie na 1 i SAM wroci do 0. Czyli niejako jedna
instrukcja zalatwia nam dwie.
Dlatego sekwencja :

Hmmmm... jak patrzę na schemat budowy portu w ATmega48/88 (70 str.
Figure 12-2) to nie bardzo ma prawo działać to tak jak opisujesz. Pin
wyjściowy to typowy przerzutnik bistabilny typu D. Instrukcja SBI
PORTx,b powoduje wygenerowanie strobu WRx, który podany jest na wejście
zegarowe T przerzutnika w momencie gdy multiplekser podaje na wejście
danych D stan bitu z magistrali systemowej. W przypadku instrukcji SBI
PINx,b różnica jest taka, że generowany jest strob WPx, który przełącza
multuplekser podając na wejście D zanegowaną wartość wyjścia Q i
generuje zbocze na wejście zegarowe T przerzutnika. Nie widzę tu nic
coby mogło przełączyć ponownie ten przerzutnik bez generowania strobów
WRx lub WPx. Musiałyby się pojawiać conajmniej dwa następujące po sobie
sygnały strobujące przerzutnik.

Pozdrawiam
Grzegorz

T.M.F.
Guest

Fri Aug 18, 2006 11:17 am   



Quote:
Hmmmm... jak patrzę na schemat budowy portu w ATmega48/88 (70 str.
Figure 12-2) to nie bardzo ma prawo działać to tak jak opisujesz. Pin
wyjściowy to typowy przerzutnik bistabilny typu D. Instrukcja SBI
PORTx,b powoduje wygenerowanie strobu WRx, który podany jest na wejście
zegarowe T przerzutnika w momencie gdy multiplekser podaje na wejście
danych D stan bitu z magistrali systemowej. W przypadku instrukcji SBI
PINx,b różnica jest taka, że generowany jest strob WPx, który przełącza
multuplekser podając na wejście D zanegowaną wartość wyjścia Q i
generuje zbocze na wejście zegarowe T przerzutnika. Nie widzę tu nic
coby mogło przełączyć ponownie ten przerzutnik bez generowania strobów
WRx lub WPx. Musiałyby się pojawiać conajmniej dwa następujące po sobie
sygnały strobujące przerzutnik.

Chyba masz racje. No coz stawiam wiec dwa piwa :)


--
Inteligentny dom - http://idom.wizzard.one.pl
Teraz takze forum dyskusyjne
Zobacz, wyslij uwagi, dolacz sie do projektu.

Grzegorz Kurczyk
Guest

Sat Aug 19, 2006 12:13 pm   



Użytkownik T.M.F. napisał:
Quote:
Hmmmm... jak patrzę na schemat budowy portu w ATmega48/88 (70 str.
Figure 12-2) to nie bardzo ma prawo działać to tak jak opisujesz. Pin
wyjściowy to typowy przerzutnik bistabilny typu D. Instrukcja SBI
PORTx,b powoduje wygenerowanie strobu WRx, który podany jest na
wejście zegarowe T przerzutnika w momencie gdy multiplekser podaje na
wejście danych D stan bitu z magistrali systemowej. W przypadku
instrukcji SBI PINx,b różnica jest taka, że generowany jest strob WPx,
który przełącza multuplekser podając na wejście D zanegowaną wartość
wyjścia Q i generuje zbocze na wejście zegarowe T przerzutnika. Nie
widzę tu nic coby mogło przełączyć ponownie ten przerzutnik bez
generowania strobów WRx lub WPx. Musiałyby się pojawiać conajmniej dwa
następujące po sobie sygnały strobujące przerzutnik.


Chyba masz racje. No coz stawiam wiec dwa piwa Smile

Miło sie z Kolegą dyskutowało i jeśli byłby Kolega w pobliżu Słupska to
zapraszam :-)

Pozdrawiam
Grzegorz

GG: 1445218

Goto page Previous  1, 2

elektroda NewsGroups Forum Index - Elektronika Polska - Prosty projekt analizatora stanów logicznych na RS232 do 100kS/s na PC z Win2000

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map