اطلاعیه

Collapse
No announcement yet.

مشکل در ارتباط بین avr و cpld

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل در ارتباط بین avr و cpld

    با سلام
    به یه مشکل در ارتباط میکرو و cpld برخوردم که از این قراره:
    خیلی ساده با avr که تغذیه اش 5 ولته 50 تا پالس به cpld که تغذیه اش 3.3 ولته میدم و تعداد پالسای دریافتی رو روی خروجی cpld میفرستم و توقع دارم که همون 50 تا باشه ولی اعداد متفاوتی میاد آیا مساله به pullup های داخلی cpld مربوط میشه یا چیز دیگه ؟ لطفا راهنمایی کنید.(cpld مورد استفاده xc95144xl هستش) ورودی خروجی هایی که ملاحظه میکنید برای برنامه اصلی است که یه ورودی و یه خروجی 8 بیتی اون تو این تست استفاده شده.اینم برنامه:
    library IEEE;
    use IEEE.STD_LOGIC_1164.ALL;
    use IEEE.STD_LOGIC_ARITH.ALL;
    use IEEE.STD_LOGIC_UNSIGNED.ALL;

    ---- Uncomment the following library declaration if instantiating
    ---- any Xilinx primitives in this code.
    --library UNISIM;
    --use UNISIM.VComponents.all;

    entity fm is
    Port ( clk_enable : in STD_LOGIC;
    clk : in STD_LOGIC;
    micro_wave : in STD_LOGIC;
    data_clock : in STD_LOGIC;
    int : out STD_LOGIC;
    data : out STD_LOGIC_VECTOR (7 downto 0));
    end fm;

    architecture Behavioral of fm is


    signal twomega_clk_counter:std_logic_vector(23 downto 0):=x"000000"; --should be initialized for counting to be correct
    signal counters_enable:bit:='0';
    signal data_index:integer range 0 to 25:=0;
    signal int_sig:std_logic:='0';

    ---------------------------------for test
    --signal divider:std_logic_vector(24 downto 0):="0000000000000000000000000";
    signal clk_enable_count:std_logic_vector(7 downto 0):="00000000";
    -----------------------------------------

    begin
    clk_enable_process:process(clk_enable)
    begin
    if (clk_enable='1' and clk_enable'event) then
    clk_enable_count<=clk_enable_count+1;
    end if;
    end process clk_enable_process;
    data<=clk_enable_count;
    -------------------------------------------------------


    end Behavioral;

    #2
    پاسخ : مشکل در ارتباط بین avr و cpld

    من vhdl مطلقا بلد نیستم. الکترونیک هم هکذا. ولی این مدلتون منطقی برای ریست کردن نمیخواد؟ منطقش که ترکیبی نیست. ترتیبیه. پس قاعدتا یه سیگنالی چیزی برای ریست کردن کم نداره؟

    دیدگاه


      #3
      پاسخ : مشکل در ارتباط بین avr و cpld

      نوشته اصلی توسط reza_agha
      من vhdl مطلقا بلد نیستم. الکترونیک هم هکذا. ولی این مدلتون منطقی برای ریست کردن نمیخواد؟ منطقش که ترکیبی نیست. ترتیبیه. پس قاعدتا یه سیگنالی چیزی برای ریست کردن کم نداره؟
      اگر منظورتون ریست خروجی هست این کار انجام شده:
      signal clk_enable_count:std_logic_vector(7 downto 0):="00000000";
      با این خط این مقدار سیگنال در مقدار اولیه صفر قرار داده شده است و با خط پایین خروجی به این سیگنال متصل شده است:
      data<=clk_enable_count;

      دیدگاه

      لطفا صبر کنید...
      X