Re: Impuls 244ns-Pomocy!
Masz problem? Zapytaj na forum elektroda.pl
From: "Juliusz" <juliusz_at_nospam_multi-ip.com.pl>
Subject: Re: Impuls 244ns-Pomocy!
Date: Fri, 03 Dec 1999 03:31:41 GMT
Paweł Rudziński <pawru_at_nospam_polmail.com> wrote in message
news:826c4n$l1j$1_at_nospam_sunsite.icm.edu.pl...
Witam
Mam nastepujace zadanie:
Oto mam do dyspozycji uklad CMOS HC74 4060 (dzielnik f).Czestotliwosc
wejsciowa 4096000 Hz.Dzielac to przez 512 (wyjscie Q9) otrzymuje 8000 Hz
Tj.okres tego przebiegu wynosi 125 mikro sek.Ale problem w tym jak przy
narastajacym zboczu tego sygnalu (8000 Hz) otrzymac krotki impuls zerujacy
trwajacy 244 ns,stosujac odpowiednio polaczone uklady cyfrowe...i tu caly
problem jakie uklady (CMOS) i jak je polaczyc i zsynchronizowac,aby
otrzymac
taki impuls na danym wyjsciu z jakiegos tam ukladu.
Za wszelkie koncepcje wielkie dzieki...aha,uniwibrator HC123
odpada...niestety:(
O ile cie dobrze rozumiem to chcesz dostac jeden dodatni impuls co
narastajace zbocze podzielonego zegara 4096000 / 512 right ? Zegar 4096000
ma okres 224,141ns i ty chcesz misc taki impulsik synchronicznie do obu
zboczy zegarow - wejsciowego i podzielonego rownoczesnie.
Jak to mowia - piece of cake :-)
Wez GAL'a 22V10. Czym szybszy tym dostaniesz mniejsze opoznienia zboczy -
ale tego i tak nie unikniesz nigdy.
Ten kawalek kodu zapewnia ci dokladnie to o co ci chodzi. Impulsy trwaja
"pin-point" 224,141 ns i sa dokladnie tam gdzie chcesz. Czasy propagacji dla
CLK ---> CLK_PODZIELONY to 4ns
CLK_PODZIELONY ---> TWOJ_IMPULS wyjsciowy to 5ns
Tak przynajmniej pokazuje symulator Aldec'a dla GAL'a 5ns - i tak nijak tego
nie przeskoczysz no chyba, ze zabawimy sie w kompensacje i CLK na koniec
puscimy przez kawalek logiki w tym samym PLD. Mimo to nie sadze, ze ci to do
czegos potrzebne :-)
Moze zastanow sie czy nie uzyc wiekszego PLD i nie wsadzic calego twojego
ukladu w jeden scalak co ?
library ieee;
use ieee.std_logic_1164.all;
library work;
use work.std_arith.all;
entity impuls is
port (
reset_n :in std_logic;
clk :in std_logic;
short :out std_logic;
div_out :buffer std_logic
);
end entity;
architecture arch_impuls of impuls is
signal div_tmp :std_logic_vector (8 downto 0);
begin
-- Do the divider
process (reset_n, clk)
begin
if reset_n='0' then
div_tmp <= "000000000";
elsif clk'event and clk='1' then
div_tmp <= div_tmp + 1;
end if;
end process;
div_out <= div_tmp(8);
-- Generate short
process (reset_n, div_tmp)
begin
if reset_n='0' then
short <= '0';
elsif div_tmp="100000000" then
short <= '1';
else
short <= '0';
end if;
end process;
end arch_impuls;
==============
Juliusz
From: "Juliusz" <juliusz_at_nospam_multi-ip.com.pl>
Subject: Re: Impuls 244ns-Pomocy!
Date: Fri, 03 Dec 1999 03:49:13 GMT
Zrob sobie copy/paste z ekranu i zapisz tego GAL'a :-)
d d
i i
r v v
u e _ _
n s t t
u e m m
s t c V p p
e _ l N C _ _
d n k C C 6 5
| | | | | | |
______________________
| 4 3 2 1 28 27 26 |
| |
unused_| 5 25| div_tmp3
unused_| 6 24| div_tmp1
unused_| 7 23|_short
NC_| 8 22|_NC
unused_| 9 21| div_tmp0
unused_|10 20| div_tmp2
unused_|11 19| div_tmp4
| |
| 12 13 14 15 16 17 18 |
______________________
| | | | | | |
u u G N u d d
n n N C n i i
u u D u v v
s s s _ _
e e e t o
d d d m u
p t
_
7
Juliusz
---------- tu odetnij --------------
Cypress C22V10 Jedec Fuse File: dekoder.jed
This file was created on 12/03/1999 at 04:36:14
by PLA2JED.EXE 02 APR1999 [v4.02 ] 5.2 IR 24
C22V10*
QP28* Number of Pins*
QF5828* Number of Fuses*
F0* Note: Default fuse setting 0*
G0* Note: Security bit Unprogrammed*
NOTE DEVICE C22V10*
NOTE PACKAGE PALCE22V10-5JC*
NOTE PROPERTY BUS_HOLD ENABLE*
NOTE PINS clk:2 reset_n:3 div_out:18 short:23 *
NOTE PINS div_tmp_7:_17 div_tmp_4:_19 div_tmp_2:_20 div_tmp_0:_21
div_tmp_1:_24 *
NOTE PINS div_tmp_3:_25 div_tmp_5:_26 div_tmp_6:_27 *
NOTE NODES *
L00000
11111011111111111111111111111111111111111111
- Node clk[1] => BANK : 1 *
L00044
00000000000000000000000000000000000000000000
11011110111011101111111011101110111111111111
11101111111111111111110111111111111111111111
11101111111111011111111111111111111111111111
11101111111111111111111111011111111111111111
11101111110111111111111111111111111111111111
11101111111111111111111111111101111111111111
11101101111111111111111111111111111111111111
00000000000000000000000000000000000000000000
- Node div_tmp_6[23] => OE : 1 ,LOGIC : 8 *
L00440
00000000000000000000000000000000000000000000
11111101111011101111111011101110111111111111
11111110111111111111110111111111111111111111
11111110111111011111111111111111111111111111
11111110111111111111111111011111111111111111
11111110110111111111111111111111111111111111
11111110111111111111111111111101111111111111
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
- Node div_tmp_5[22] => OE : 1 ,LOGIC : 10 *
L00924
00000000000000000000000000000000000000000000
11111111110111101111111011101111111111111111
11111111111011111111110111111111111111111111
11111111111011011111111111111111111111111111
11111111111011111111111111011111111111111111
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
- Node div_tmp_3[21] => OE : 1 ,LOGIC : 12 *
L01496
00000000000000000000000000000000000000000000
11111111111111101111110111111111111111111111
11111111111111011111111011111111111111111111
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
- Node div_tmp_1[20] => OE : 1 ,LOGIC : 14 *
L02156
11111111111111111111111111111111111111111111
11010101110111011111110111011101111011011111
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
- Node short[19] => OE : 1 ,LOGIC : 16 *
L02904
00000000000000000000000000000000000000000000
11111111111111111111110111111111111111111111
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
- Node div_tmp_0[18] => OE : 1 ,LOGIC : 16 *
L03652
00000000000000000000000000000000000000000000
11111111111111101111111011011111111111111111
11111111111111111111110111101111111111111111
11111111111111011111111111101111111111111111
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
- Node div_tmp_2[17] => OE : 1 ,LOGIC : 14 *
L04312
00000000000000000000000000000000000000000000
11111111111011101111111011101101111111111111
11111111111111111111110111111110111111111111
11111111111111011111111111111110111111111111
11111111111111111111111111011110111111111111
11111111110111111111111111111110111111111111
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
- Node div_tmp_4[16] => OE : 1 ,LOGIC : 12 *
L04884
11111111111111111111111111111111111111111111
11101110111011101111111011101110110111101111
11111111111111111111110111111111111011111111
11111111111111011111111111111111111011111111
11111111111111111111111111011111111011111111
11111111110111111111111111111111111011111111
11111111111111111111111111111101111011111111
11111101111111111111111111111111111011111111
11011111111111111111111111111111111011111111
11111111111111111111111111111111111011011111
00000000000000000000000000000000000000000000
- Node div_out[15] => OE : 1 ,LOGIC : 10 *
L05368
00000000000000000000000000000000000000000000
11101110111011101111111011101110111111011111
11111111111111111111110111111111111111101111
11111111111111011111111111111111111111101111
11111111111111111111111111011111111111101111
11111111110111111111111111111111111111101111
11111111111111111111111111111101111111101111
11111101111111111111111111111111111111101111
11011111111111111111111111111111111111101111
- Node div_tmp_7[14] => OE : 1 ,LOGIC : 8 *
L05764
00000000000000000000000000000000000000000000
- Node reset_n[2] => BANK : 1 *
L05808
10* Note: 23 *
L05810
10* Note: 22 *
L05812
10* Note: 21 *
L05814
10* Note: 20 *
L05816
11* Note: 19 *
L05818
10* Note: 18 *
L05820
10* Note: 17 *
L05822
10* Note: 16 *
L05824
10* Note: 15 *
L05826
10* Note: 14 *
CF0CB* Note: Fuse Checksum*
A2EB
From: jfox_at_nospam_friko6.onet.pl (J.F.)
Subject: Re: Impuls 244ns-Pomocy!
Date: 3 Dec 1999 08:58:21 GMT
On Fri, 03 Dec 1999 03:49:13 GMT, Juliusz <juliusz_at_nospam_multi-ip.com.pl> wrote:
Zrob sobie copy/paste z ekranu i zapisz tego GAL'a :-)
Juliusz - proponujesz kosc za 5$ zamiast kostki i kondensatora za 0.5$ ?
Ktora w dodatku wymaga programatora za 500$ ?
-)
J.
From: "Juliusz" <juliusz_at_nospam_multi-ip.com.pl>
Subject: Re: Impuls 244ns-Pomocy!
Date: Fri, 03 Dec 1999 12:48:19 GMT
J.F. <jfox_at_nospam_friko6.onet.pl> wrote in message
news:slrn84f1io.mv0.jfox_at_nospam_mars.planconsult.com.pl...
On Fri, 03 Dec 1999 03:49:13 GMT, Juliusz <juliusz_at_nospam_multi-ip.com.pl> wrote:
Zrob sobie copy/paste z ekranu i zapisz tego GAL'a :-)
Juliusz - proponujesz kosc za 5$ zamiast kostki i kondensatora za 0.5$ ?
Ktora w dodatku wymaga programatora za 500$ ?
GAL na Wolumenie kosztuje 5zl, a o ile ci upraszcza zadanie :-) Tak
potrzebujesz czyms podzielic przez 512 czyli 8+1 bit i komparator cyfrowy 9
bitowy i z tego co widze jeszcze inwerter na wyjsciu.
Na 8 bitowych kosciach wychodzi to
2 liczniki
2 komparatory
1 inverter
Lub i tak 2 liczniki kaskadowo polaczone i jakas zabawa flip-flopami
ustawianymi synchronicznie zboczem CLK/512 i kasowana niskim stanem CLK i
nie wiadomo czy nie potrzeba invertera... na wyjsciu. Szkoda czasu - kod mu
napisalem :-)
Niech pokaze co ma tam jeszcze to mu zaraz zrobie reszte. Jak bedzie
sumiennym uczniem to mu dam jedno CPLD w prezencie :-) Ale niech najpierw
zrobi PCB :-)
Juliusz
From: "Pawel Michocki" <pawelm_at_nospam_sim.com.pl>
Subject: Re: Impuls 244ns-Pomocy!
Date: Fri, 3 Dec 1999 14:00:23 +0100
Użytkownik Juliusz <juliusz_at_nospam_multi-ip.com.pl> w wiadomości do grup
dyskusyjnych napisał:n_O14.18867$Oo3.450875_at_nospam_news.tpnet.pl...
J.F. <jfox_at_nospam_friko6.onet.pl> wrote in message
news:slrn84f1io.mv0.jfox_at_nospam_mars.planconsult.com.pl...
On Fri, 03 Dec 1999 03:49:13 GMT, Juliusz <juliusz_at_nospam_multi-ip.com.pl>
wrote:
Zrob sobie copy/paste z ekranu i zapisz tego GAL'a :-)
Juliusz - proponujesz kosc za 5$ zamiast kostki i kondensatora za 0.5$ ?
Ktora w dodatku wymaga programatora za 500$ ?
GAL na Wolumenie kosztuje 5zl, a o ile ci upraszcza zadanie :-) Tak
potrzebujesz czyms podzielic przez 512 czyli 8+1 bit i komparator cyfrowy
9
bitowy i z tego co widze jeszcze inwerter na wyjsciu.
Na 8 bitowych kosciach wychodzi to
2 liczniki
2 komparatory
1 inverter
Lub i tak 2 liczniki kaskadowo polaczone i jakas zabawa flip-flopami
ustawianymi synchronicznie zboczem CLK/512 i kasowana niskim stanem CLK i
nie wiadomo czy nie potrzeba invertera... na wyjsciu. Szkoda czasu - kod
mu
napisalem :-)
Niech pokaze co ma tam jeszcze to mu zaraz zrobie reszte. Jak bedzie
sumiennym uczniem to mu dam jedno CPLD w prezencie :-) Ale niech najpierw
zrobi PCB :-)
Juliusz
Juliusz ma racje-najprosciej zrobic to na PLD - przeciez ma to byc do
"cyfrowego pola komutacyjnego" - u tu moze dojsc jeszcze np. generacja
ramek, synchronizacja z innymi streamami itp. Napisz cos wiecej - czy to ma
byc jakis "teoretyczny model", czy cos praktycznego - postaram sie pomoc.
Pawel
From: "Juliusz" <juliusz_at_nospam_multi-ip.com.pl>
Subject: Re: Impuls 244ns-Pomocy!
Date: Fri, 03 Dec 1999 13:52:40 GMT
Pawel Michocki <pawelm_at_nospam_sim.com.pl> wrote in message
news:828elb$hes$1_at_nospam_helios.man.lublin.pl...
Juliusz ma racje-najprosciej zrobic to na PLD - przeciez ma to byc do
"cyfrowego pola komutacyjnego" - u tu moze dojsc jeszcze np. generacja
ramek, synchronizacja z innymi streamami itp. Napisz cos wiecej - czy to
ma
byc jakis "teoretyczny model", czy cos praktycznego - postaram sie pomoc.
Ja wiem co on chce :-) On ma scalak "pole komutacyjne" jakiejs tam firmy i
ze strumienia PCM chce wycinac timesloty :-)
Nie wyglada mi to na prace dyplomowa - bo nieco skomplikowane :-) Ale niech
mu bedzie :-)
Trzeba zrobic caly kontroler tego w jednym scalaku, bo pewnie kolega chce
codec-i podlaczyc do tego i nie wie jak sie w to wbic :-) Heh - ZEZNAJ CO TO
TO ZA stuff :-)
Juliusz
From: "=?iso-8859-2?B?UGF3ZbMgUnVkemnxc2tp?=" <pawru_at_nospam_polmail.com>
Subject: Re: Impuls 244ns-Pomocy!
Date: Sat, 4 Dec 1999 20:10:36 +0100
Pawel Michocki napisał(a) w wiadomości:
<828elb$hes$1_at_nospam_helios.man.lublin.pl>...
Użytkownik Juliusz <juliusz_at_nospam_multi-ip.com.pl> w wiadomości do grup
dyskusyjnych napisał:n_O14.18867$Oo3.450875_at_nospam_news.tpnet.pl...
J.F. <jfox_at_nospam_friko6.onet.pl> wrote in message
news:slrn84f1io.mv0.jfox_at_nospam_mars.planconsult.com.pl...
On Fri, 03 Dec 1999 03:49:13 GMT, Juliusz <juliusz_at_nospam_multi-ip.com.pl>
wrote:
Zrob sobie copy/paste z ekranu i zapisz tego GAL'a :-)
Juliusz - proponujesz kosc za 5$ zamiast kostki i kondensatora za 0.5$
?
Ktora w dodatku wymaga programatora za 500$ ?
GAL na Wolumenie kosztuje 5zl, a o ile ci upraszcza zadanie :-) Tak
potrzebujesz czyms podzielic przez 512 czyli 8+1 bit i komparator cyfrowy
9
bitowy i z tego co widze jeszcze inwerter na wyjsciu.
Na 8 bitowych kosciach wychodzi to
2 liczniki
2 komparatory
1 inverter
Lub i tak 2 liczniki kaskadowo polaczone i jakas zabawa flip-flopami
ustawianymi synchronicznie zboczem CLK/512 i kasowana niskim stanem CLK i
nie wiadomo czy nie potrzeba invertera... na wyjsciu. Szkoda czasu - kod
mu
napisalem :-)
Niech pokaze co ma tam jeszcze to mu zaraz zrobie reszte. Jak bedzie
sumiennym uczniem to mu dam jedno CPLD w prezencie :-) Ale niech najpierw
zrobi PCB :-)
Juliusz
Juliusz ma racje-najprosciej zrobic to na PLD - przeciez ma to byc do
"cyfrowego pola komutacyjnego" - u tu moze dojsc jeszcze np. generacja
ramek, synchronizacja z innymi streamami itp. Napisz cos wiecej - czy to
ma
byc jakis "teoretyczny model", czy cos praktycznego - postaram sie pomoc.
Rzeczywiscie praca jest dosyc skomplikowana.Caly problem w tym ze trzeba
zrobic odp. generatory 2.048 khz,8 khz,4.096 khz (z tym akurat problemu nie
ma) wszystko to jest potrzebne do synchronizacji ramek itd.Wszystko to
trzeba dorobic do ukladu Mitel8982.
4.096 mhz odswiezanie pamieci 2.048 strumien danych wejsciowych(32 kanaly po
8 bitow to razy 2)
Problem sie zaczyna dopiero w momencie gdy chcemy rozpoczac i zakonczyc
ramke to tego jest wlasnie potrzebne te 244 ns.Dokladnosc czasowa jest dosyc
istotna.Nastepnym problemem bedzie uzyskanie 3 mikro sekund po wprowadzeniu
8 bitow adresu/danych(ot cala komutacja np.5 kanal z jednego wejscia pojawia
sie jako 4 kanal na drugim wyjsciu,mamy dwa kanaly we i wy po 2048kbit/s
kazdy).Ale na razie skupmy sie na tych 244 ns.Uklad 8982 ma tylko 16 nozek a
tyle z nim problemu...:)
Pozdrawiam
Paweł Rudziński
Pawel.R_at_nospam_polmail.com
From: "Juliusz" <juliusz_at_nospam_multi-ip.com.pl>
Subject: Re: Impuls 244ns-Pomocy!
Date: Sat, 04 Dec 1999 19:32:51 GMT
Paweł Rudziński <pawru_at_nospam_polmail.com> wrote in message
news:82bp0l$rsa$1_at_nospam_sunsite.icm.edu.pl...
Rzeczywiscie praca jest dosyc skomplikowana.Caly problem w tym ze trzeba
zrobic odp. generatory 2.048 khz,8 khz,4.096 khz (z tym akurat problemu
nie
ma) wszystko to jest potrzebne do synchronizacji ramek itd.Wszystko to
trzeba dorobic do ukladu Mitel8982.
Trzeba bylo tak gadac od razu, ze to MT8982 :-) . Spoko damy rade ale bez
CPLD sie nie obejdzie. Szkoda czasu. Najpierw polaczymy jakkolwiek, zamowisz
plytki, a pozniej sie zastanowimy jak to ma dzialac :-) Ja na ST-BUS robilem
juz uklady wiec nie jest to wielki problem :-)
Juliusz
From: "Juliusz" <juliusz_at_nospam_multi-ip.com.pl>
Subject: Re: Impuls 244ns-Pomocy!
Date: Sat, 04 Dec 1999 20:40:47 GMT
Paweł Rudziński <pawru_at_nospam_polmail.com> wrote in message
news:82bp0l$rsa$1_at_nospam_sunsite.icm.edu.pl...
Rzeczywiscie praca jest dosyc skomplikowana.Caly problem w tym ze trzeba
A w czym widzisz problem ? Uklad pamieta 64x8 i wypuszcza to z opoznieniem
jakby na wyjscia. Dane trzeba podawac synchronicznie w stosunku do /F0i i
/C4. To samo z portem kontrolnym. Sa 2 opcje - albo bezposrednio z procka
albo tak jak powuzsze dane. Procek sie moze nie wyrobic wiec proponuje uzyc
do wszystkiego synchronicznej logiki.
Zauwaz, ze ten microport ma tez swoje dranstwa ale w sumie prosta sprawa do
przeskoczenia. Musisz mu dac SCLK plus w odpowiednim momencie wystawic
ujemne zbocze /CS. Dane po RxD i TxD leca taktowane narastajacym/opadajacym
zboczem SCLK czyli nic nowego.
W jeden skromny CPLD wszystko wejdzie plus procesorek gdzie w jego
przestrzen adresowa wsadzimy ten CPLD i podciagniemy jakies przerwania
generowane tez przez CPLD.
Jakies 128 makrocel i sprawa zalatwiona.
Nie wyjasniles tylko co dalej .... czym bedziesz karmil ten scalak i w jaki
sposob to polaczysz z reszta - ta o ktorej nie wiem. W koncu jakies dane
bedziesz komutowal tym i jakies ramki bedziesz zamienial miejscami. Skad je
wezmiesz ? I komu je podasz ?
A moze projektujesz centralke telefoniczna ?
O robieniu tego na piechote zapomnij !!!!!! Nie stac cie po pierwsze na
poprawki plytek ani zastanawianie sie tygodniami nad logika budowana na
TTL-ach. Do tego potrzeba bedzie rejestrow przesuwnych, pamieci 1 bajtowych
(holding registers) oraz kupa innych rzeczy.
Tutaj sprawe zalatwi 1 scalak za 12USD i troche oleju w glowie :-)
Wszystkie sygnaly, wlacznie z SCLK wygenerujemy w CPLD jak i kilka bajtow
"pamieci" na ramki przesylane kanalem microportu zeby odciazyc procesor,
ktorego zadaniem jest nie tylko transmisja i generowanie przerwan UART-u w
trybie zero. Wlasciwie te 4 bajty kontrolne wsadzane i wysysane ze scalaka
pomiedzy zboczami /CS trzeba wsadzic w CPLD jako bufor i ladowac/odczytywac
jednym przerwaniem z takiego urojonego buforka :-)
Zostanie ci tylko oprogramowac mikrokontroler :-) Ja stawiam na AVR'a
90S8515 czy 4414 nawet.
Juliusz
From: k.rozniak.XXX_at_nospam_ien.gda.pl (Krzysztof Rozniak)
Subject: Re: Impuls 244ns-Pomocy!
Date: Sun, 05 Dec 1999 03:36:30 +0100
On Sat, 4 Dec 1999 20:10:36 +0100, "Paweł Rudziński"
<pawru_at_nospam_polmail.com> wrote:
<snip>
Rzeczywiscie praca jest dosyc skomplikowana.Caly problem w tym ze trzeba
zrobic odp. generatory 2.048 khz,8 khz,4.096 khz (z tym akurat problemu nie
ma) wszystko to jest potrzebne do synchronizacji ramek itd.Wszystko to
trzeba dorobic do ukladu Mitel8982.
4.096 mhz odswiezanie pamieci 2.048 strumien danych wejsciowych(32 kanaly po
8 bitow to razy 2)
Problem sie zaczyna dopiero w momencie gdy chcemy rozpoczac i zakonczyc
ramke to tego jest wlasnie potrzebne te 244 ns.Dokladnosc czasowa jest dosyc
istotna.Nastepnym problemem bedzie uzyskanie 3 mikro sekund po wprowadzeniu
8 bitow adresu/danych(ot cala komutacja np.5 kanal z jednego wejscia pojawia
sie jako 4 kanal na drugim wyjsciu,mamy dwa kanaly we i wy po 2048kbit/s
kazdy).Ale na razie skupmy sie na tych 244 ns.Uklad 8982 ma tylko 16 nozek a
tyle z nim problemu...:)
Do generacji zegarów magistrali ST-BUS zawsze możesz zastosować MT
9041 lub MT9042, pracujący w trybie wolnobieżnym (freerun mode). Ale
nie wiem, czy jest to najtańsze (i najlepsze) rozwiązanie. A już na
pewno mało edukacyjne ;)). Może lepiej spróbować zrobić to na piechotę
(TTL lub PLD) i oswoić się trochę z cyfrówką.
--
Krzysztof Rożniak, Gdańsk
E-mail: k.rozniak.XXX_at_nospam_ien.gda.pl
Usuń .XXX z adresu przed wysłaniem poczty
From: "=?iso-8859-2?B?UGF3ZbMgUnVkemnxc2tp?=" <pawru_at_nospam_polmail.com>
Subject: Re: Impuls 244ns-Pomocy!
Date: Fri, 3 Dec 1999 09:32:51 +0100
Juliusz napisał(a) w wiadomości: ...
Paweł Rudziński <pawru_at_nospam_polmail.com> wrote in message
news:826c4n$l1j$1_at_nospam_sunsite.icm.edu.pl...
Witam
Mam nastepujace zadanie:
Oto mam do dyspozycji uklad CMOS HC74 4060 (dzielnik f).Czestotliwosc
wejsciowa 4096000 Hz.Dzielac to przez 512 (wyjscie Q9) otrzymuje 8000 Hz
Tj.okres tego przebiegu wynosi 125 mikro sek.Ale problem w tym jak przy
narastajacym zboczu tego sygnalu (8000 Hz) otrzymac krotki impuls
zerujacy
trwajacy 244 ns,stosujac odpowiednio polaczone uklady cyfrowe...i tu caly
problem jakie uklady (CMOS) i jak je polaczyc i zsynchronizowac,aby
otrzymac
taki impuls na danym wyjsciu z jakiegos tam ukladu.
Za wszelkie koncepcje wielkie dzieki...aha,uniwibrator HC123
odpada...niestety:(
O ile cie dobrze rozumiem to chcesz dostac jeden dodatni impuls co
narastajace zbocze podzielonego zegara 4096000 / 512 right ? Zegar 4096000
ma okres 224,141ns i ty chcesz misc taki impulsik synchronicznie do obu
zboczy zegarow - wejsciowego i podzielonego rownoczesnie.
Jak to mowia - piece of cake :-)
Wez GAL'a 22V10. Czym szybszy tym dostaniesz mniejsze opoznienia zboczy -
ale tego i tak nie unikniesz nigdy.
Ten kawalek kodu zapewnia ci dokladnie to o co ci chodzi. Impulsy trwaja
"pin-point" 224,141 ns i sa dokladnie tam gdzie chcesz. Czasy propagacji
dla
CLK ---> CLK_PODZIELONY to 4ns
CLK_PODZIELONY ---> TWOJ_IMPULS wyjsciowy to 5ns
Tak przynajmniej pokazuje symulator Aldec'a dla GAL'a 5ns - i tak nijak
tego
nie przeskoczysz no chyba, ze zabawimy sie w kompensacje i CLK na koniec
puscimy przez kawalek logiki w tym samym PLD. Mimo to nie sadze, ze ci to
do
czegos potrzebne :-)
Moze zastanow sie czy nie uzyc wiekszego PLD i nie wsadzic calego twojego
ukladu w jeden scalak co ?
Ojoj az taki dobry w technice cyfrowej to ja nie jestem,myslalem raczej o
czyms takim co podpowiedzial kolega Grzegorz Kraszewski,o tym ukladzie(GAL)
to ja nawet nie slyszalem,ale chodzilo mi o przebieg w ktorym przez jakis
czas wystepowalaby 1 logiczna(tzn.poziom wysoki) i w pewnym
momencie(zaleznym od 8khz)
pojawialoby sie 0 logiczne(tzn.poziom niski) trwajace 244ns lub cos kolo
tego.
O tak mialby wygladac ten przebieg:
11111111111111111111101111111111111111110111111111111111111
I
244ns
I
W tym momencie w przebiegu 8000 hz
jest zbocze narastajace.
Pawel Rudzinski
From: "Juliusz" <juliusz_at_nospam_multi-ip.com.pl>
Subject: Re: Impuls 244ns-Pomocy!
Date: Fri, 03 Dec 1999 12:50:42 GMT
Paweł Rudziński <pawru_at_nospam_polmail.com> wrote in message
news:827v6n$3rv$2_at_nospam_sunsite.icm.edu.pl...
Ojoj az taki dobry w technice cyfrowej to ja nie jestem,myslalem raczej o
czyms takim co podpowiedzial kolega Grzegorz Kraszewski,
To niech kolega Grzegorz narysuje schemat :-) Zobaczymy ......
o tym ukladzie(GAL)
to ja nawet nie slyszalem,ale chodzilo mi o przebieg w ktorym przez jakis
czas wystepowalaby 1 logiczna(tzn.poziom wysoki) i w pewnym
momencie(zaleznym od 8khz)
Sluchaj - czas sie poznac :-) Juz ci kod napisalem - tobie zajmie zrobienie
tego doslownie pare minut i jak cos nie bedzie gralo to przeprogramujemy.
Zanim zrobisz uklad z kilkoma scalakami to minie miesiac :-)
Juliusz
From: "Juliusz" <juliusz_at_nospam_multi-ip.com.pl>
Subject: Re: Impuls 244ns-Pomocy!
Date: Fri, 03 Dec 1999 12:57:08 GMT
Paweł Rudziński <pawru_at_nospam_polmail.com> wrote in message
news:827v6n$3rv$2_at_nospam_sunsite.icm.edu.pl...
O tak mialby wygladac ten przebieg:
11111111111111111111101111111111111111110111111111111111111
I
244ns
I
W tym momencie w przebiegu 8000 hz
jest zbocze narastajace.
To moze sie zastanow !!!!!!!!!!! czy zbocze narastajace czy malejace
???????????????????????
Jesli tak to wystarczy zamienic trzy cyferki i juz chodzi . Mowie daj reszte
zaraz bedzie gotowe :-)
========= TU MASZ POPRAWIONY --=============
library ieee;
use ieee.std_logic_1164.all;
library work;
use work.std_arith.all;
entity impuls is
port (
reset_n :in std_logic;
clk :in std_logic;
short :out std_logic;
div_out :out std_logic
);
end entity;
architecture arch_impuls of impuls is
signal div_tmp :std_logic_vector (8 downto 0);
begin
-- Do the divider
process (reset_n, clk)
begin
if reset_n='0' then
div_tmp <= "000000000";
elsif clk'event and clk='1' then
div_tmp <= div_tmp + 1;
end if;
end process;
div_out <= div_tmp(8);
-- Generate short
process (reset_n, div_tmp)
begin
if reset_n='0' then
short <= '1';
elsif div_tmp="100000000" then
short <= '0';
else
short <= '1';
end if;
end process;
end arch_impuls;
Juliusz