ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.






جهت تبلیغ در وب سایت ECA کلیک کنید.

کاربران برچسب زده شده

نمایش نتایج: از 1 به 7 از 7
  1. #1
    2010/06/24
    مشهد
    949
    5

    مشکل در شمارش با CPLD

    سلام دوستان.

    من با XC9572 يه counter ساده 16 بيتي ساختم. قرار هست از اين کانتر براي شمردن پالس هاي انکودر استفاده کنم که در هر 360 درجه، 3600 تا پالس ميده، و به عبارتي فرکانس کل شمارش ميشه 7200 پالس در هر دور.
    مشکلي که من دارن دقيقاً همين جاست. يعني يه انکودر آروم بچرخه و چه سريع، کانتر درست نمي شمره. دقيق تر بگم، مثلاً از شماره 32500 اگر شروع به شمردن کنم، ميره تا 32900 بعد برمي گرده 32700، دوباره تا 32900 ميره بالا و دوباره برمي گرده 32700، و اين کار 2، 3 بار تکرار ميشه و بعد از اون يهو ميره 33500!!!
    خيلي تو اينترنت گشتم، اما چيزي پيدا نکردم. ممنون ميشم اگر کمک کنيد.
    دانش فني تا به عمل تبديل نشده، ذره اي ارزش نداره. اما بعضي وقت ها بايد از دانش براي باز کردن مرزهاي جديدي در علم استفاده کرد، نه اينکه اونها رو صرفاً فقط به عمل تبديل کرد.
  2. #2
    2007/07/08
    تهران
    1,603
    36

    پاسخ : مشکل در شمارش با CPLD

    نقل قول نوشته اصلی توسط حامد پور آزاد
    سلام دوستان.

    من با XC9572 يه counter ساده 16 بيتي ساختم. قرار هست از اين کانتر براي شمردن پالس هاي انکودر استفاده کنم که در هر 360 درجه، 3600 تا پالس ميده، و به عبارتي فرکانس کل شمارش ميشه 7200 پالس در هر دور.
    مشکلي که من دارن دقيقاً همين جاست. يعني يه انکودر آروم بچرخه و چه سريع، کانتر درست نمي شمره. دقيق تر بگم، مثلاً از شماره 32500 اگر شروع به شمردن کنم، ميره تا 32900 بعد برمي گرده 32700، دوباره تا 32900 ميره بالا و دوباره برمي گرده 32700، و اين کار 2، 3 بار تکرار ميشه و بعد از اون يهو ميره 33500!!!
    خيلي تو اينترنت گشتم، اما چيزي پيدا نکردم. ممنون ميشم اگر کمک کنيد.
    code کانتری که نوشتی رو بزار
    خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...
  3. #3
    2010/06/24
    مشهد
    949
    5

    پاسخ : مشکل در شمارش با CPLD

    نقل قول نوشته اصلی توسط حميد نجفي
    code کانتري که نوشتي رو بزار
    کد:
    	entity Counter is
    		 Port ( mreset : in std_logic;
    				 reset1 	: in std_logic;		-- asynchronous reset1
    				 a,b : in std_logic;
    				 clk1: in std_logic;
    				 xclk: in std_logic;
    				 output1 : out UNSIGNED (15 downto 0)); -- output of the counter1
    	end Counter;
     
    architecture behavioral of Counter is
    
    	COMPONENT D_FF
    		PORT (d,clock : IN STD_LOGIC;
    				q : OUT STD_LOGIC);
    		END component;
    	
    	component XOR_2
    		PORT (x, y : IN STD_LOGIC;
    	  z : OUT STD_LOGIC);
    		END component;
    	
    	component Digital_Filter is
    		port ( a   : in  std_logic; 
    				clock : in  std_logic; 
    				a_f  : out  std_logic);
    		end component;
    
    	signal a_f, b_f: std_logic;
    	signal clk1_f, reset1_f: std_logic;
    	signal out_d: std_logic;
    	signal	out1: UNSIGNED(15 downto 0);
    
    	begin
     
    		f1: Digital_filter port map (a,xclk,a_f);
    		f2: Digital_filter port map (b,xclk,b_f);
    		f3: Digital_filter port map (reset1,xclk,reset1_f);
    		
    		d1: D_FF port map (b_f,a_f,out_d);
    		x1: XOR_2 port map (b_f,a_f,clk1_f);
    		cntr1: process (clk1_f, out_d, reset1_f, mreset)
    		begin
    			if (clk1_f'event and clk1_f='1') then
    				if (reset1_f or mreset)='1' then out1 <= "0111111111111111";
    				elsif (reset1_f or mreset)='0' then
    					if (out_d='1') then out1 <= out1+'1';
    					elsif (out_d='0') then out1 <= out1-'1';
    					end if;
    				end if;
    			else
    				NULL;
    			end if;
    		end process cntr1; --- that's all
    		output1 <= out1;
    end architecture;

    يه چندتا توضيح کوچولو. اينکه اون کامپوننت digital_Filter رو براي از بين بردن نويز spike گذاشتم. بر اساس يه آي سي کانتر 16 بيتي که تو اينترنت پيداش کردم. و در ضمن با انکودر مي خوام هم بالا رونده بشمرم و هم پائين رونده. اون فليپ فلاپ D هم براي انتخاب بالا شمارش يا پائين شمارش گذاشته شده.

    يه توضيح ديگه. من دقيقاً نقطه پرش رو بدست آوردم. اما نمي تونم درک کنم:

    همه اعداد هگز هستند.
    دفعه اول که شمارش تا 84FF انجام ميشه و بعد به 80FF پرش مي کنه (يعنش به جاي اينکه بشه 8500 ميشه 80FF)، بعد يک بار ديگه ميره تا 84FF و بعد دوباره ميشه 80FF (اين بار بايد بشه 86FF)، بعد از اين يکي ديگه که ميشمره ناگهان مي پره به 8700.
    اين قضيه توي تمام حالت ها تکرار ميشه:
    از 80FF به 82FF، از 84FF به 86FF و فکر مي کنم از 88FF به 8AFF. که البته اين آخري رو حدث ميزنم بر اساس ترتيبي که داره اين طور عمل ميکنه.
    دانش فني تا به عمل تبديل نشده، ذره اي ارزش نداره. اما بعضي وقت ها بايد از دانش براي باز کردن مرزهاي جديدي در علم استفاده کرد، نه اينکه اونها رو صرفاً فقط به عمل تبديل کرد.
  4. #4
    2010/06/24
    مشهد
    949
    5

    پاسخ : مشکل در شمارش با CPLD

    مشکل بوجود اومده به ساده ترين شکل ممکن حل شد!!!

    اشکال از خود CPLD بود. اون رو که عوض کردم برطرف شد.

    با تشکر
    دانش فني تا به عمل تبديل نشده، ذره اي ارزش نداره. اما بعضي وقت ها بايد از دانش براي باز کردن مرزهاي جديدي در علم استفاده کرد، نه اينکه اونها رو صرفاً فقط به عمل تبديل کرد.
  5. #5
    2007/07/08
    تهران
    1,603
    36

    پاسخ : مشکل در شمارش با CPLD

    خب یکاری کن اول
    یک کانتر معمولی ساده رو به بالا بزار
    ببن تو اون حالت هم همینه؟
    هیچ کامپوننتی بهش متصل نکن
    باید مشکل رو ردیابی کنی
    اول این رو تست کن تا تکلیف یک سری چیز ها روشت بشه
    خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...
  6. #6
    2007/07/08
    تهران
    1,603
    36

    پاسخ : مشکل در شمارش با CPLD

    نقل قول نوشته اصلی توسط حامد پور آزاد
    مشکل بوجود اومده به ساده ترين شکل ممکن حل شد!!!

    اشکال از خود CPLD بود. اون رو که عوض کردم برطرف شد.

    با تشکر
    به سلامتی
    ولی بلاخره پیداش میکردیم :smile:
    خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...
  7. #7
    2010/06/24
    مشهد
    949
    5

    پاسخ : مشکل در شمارش با CPLD

    نقل قول نوشته اصلی توسط حميد نجفي
    به سلامتي
    ولي بلاخره پيداش ميکرديم :smile:
    همون ديگه. از ديشب همه موارد رو تست کردم، تا آخر با تست با مولتي متر متوجه شدم که اشکال از خود CPLD بود. بازم ممنون.
    دانش فني تا به عمل تبديل نشده، ذره اي ارزش نداره. اما بعضي وقت ها بايد از دانش براي باز کردن مرزهاي جديدي در علم استفاده کرد، نه اينکه اونها رو صرفاً فقط به عمل تبديل کرد.
نمایش نتایج: از 1 به 7 از 7

موضوعات مشابه

  1. مشکل در شمارش 0 تا 60
    توسط pencil در انجمن میکروکنترلرهای AVR
    پاسخ: 4
    آخرين نوشته: 2013/10/26, 09:22
  2. مشکل با پروگرم کردن cpld
    توسط salehjg در انجمن PLD , SPLD , GAL , CPLD , FPGA
    پاسخ: 6
    آخرين نوشته: 2012/10/10, 02:32
  3. مشکل در پروگرام CPLD
    توسط شهرام 5 در انجمن PLD , SPLD , GAL , CPLD , FPGA
    پاسخ: 1
    آخرين نوشته: 2011/10/09, 00:50
  4. مشکل با پروگرم CPLD
    توسط worldelm در انجمن PLD , SPLD , GAL , CPLD , FPGA
    پاسخ: 9
    آخرين نوشته: 2011/09/03, 09:01
  5. مشکل در ارتباط بین avr و cpld
    توسط kooshkestani در انجمن PLD , SPLD , GAL , CPLD , FPGA
    پاسخ: 2
    آخرين نوشته: 2010/11/14, 10:15

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •