اطلاعیه

Collapse
No announcement yet.

CORE ارتباط سریال RS232

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

    #16
    پاسخ : CORE ارتباط سریال RS232

    نوشته اصلی توسط mzarkoob
    سلام
    یه سوال داشتم در رابطه با این core ها
    اگه ما برنامه مان با وریلاگ باشه و یه core داشته باشیم که با vhdl نوشته شده باشه و بخواهیم از این core استفاده کنیم مشکلی هست؟
    نه
    هیچ فرقی نمیکنه
    هر دو زبان وقتی Core ئرونشون نوشته میشه-امگار شما یک IC خریدی که پایه هاش دسته شماست
    خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

    دیدگاه


      #17
      پاسخ : CORE ارتباط سریال RS232

      سلام خدمت دوستان گل :mrgreen:

      زمان بوووق ما AVR رو با RS232 همون UART راه اندازی کردیم.....حالا میخوایم با FPGA راه اندازی کنیم...


      http://www.eca.ir/forum2/index.php?t...7419#msg347419

      سوال 1 : همون طور که در عکس میبینید ..من از این CORE استفاده کردم .... ولی پایه های فرستنده گیرنده به صورت 8 بیتی (8 تا پایه جدا از هم) هستش.....
      من الان میخوام FPGA رو به PC وصل کنم.....باید از چه قطعه واسطی استفاده کنم؟؟؟؟؟ که بین این 8 تا پایه و PC قرار بگیره مثل عکس زیر(اون قطعه صورتیه :mrgreen: ) ؟؟؟؟(فرستنده اطلاعت 8 تا و گیرنده اطلاعات هم 8 تا پایه داره---یعنی 8 بیتی یا 1 بایتی هستش)






      سوال 2 : نرم افزار خاصی برا ارتباط بین FPGA و PC هستش؟؟؟؟؟

      مثلا من یادمه که برا AVR نرم افزار VIRTUAL TERMINAL بودش(که جز برنامه های ویندوز XP بودش)


      سوال3 : این پایه های RX و TX این UART(عکس اول پستم) کارشون چیه؟؟؟؟


      شرمنده اگه سوالام سادس....تازه کاریم دیگه :redface:
      اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

      اگه دوس دارید سریع به جواب برسید :
      1) قبل از پرسیدن سوال، بسرچید.
      2) سوالاتون رو با جزئیات کامل مطرح کنید.

      دیدگاه


        #18
        پاسخ : CORE ارتباط سریال RS232

        سلام.این 8 خطی که میگی اصلا برای وصل شدن به دنیای خارج نیست.شما 8 بیت به این هسته میدین (به tx_data) و احتمالا tx_req رو تحریک می کنید و داده ها روی خط tx شیفت داده میشن.در صورتی که داده ای هم دریافت بشه rx_ready تحریک میشه و شما می تونید داده ی دریافتی رو از rx_data بخونید.
        می تونید از مبدل های USB2COM استفاده کنید.خطوط tx و rx رو وصل کنید به rx و tx مبدل و با virtual terminal یا هر نرم افزار دیگه ای نتیجه رو ببینید.

        دیدگاه


          #19
          پاسخ : CORE ارتباط سریال RS232

          یعنی توسط این پایه های 8 بیتی دیتا ارسال و دریافت میشه(نرم افزاری).....که در کد نویسی ازشون استفاده میکنیم.....
          ولی در عمل پایه مربوط به ارسال و دریافت tx و rx هستن

          مثلا دیتا رو توسط 8 بیتیه ارسال میکنیم(تو کدنویسی) و در عمل دیتا توسط پایه tx ارسال میشه

          درست فهمیدم؟؟؟؟؟؟





          راستی نرم افزار خاصی(تحت ویندوز) برا ارتباط بین FPGA و PC هستش؟؟؟؟؟

          مثلا من یادمه که برا AVR نرم افزار VIRTUAL TERMINAL بودش(که جز برنامه های ویندوز XP بودش)
          اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

          اگه دوس دارید سریع به جواب برسید :
          1) قبل از پرسیدن سوال، بسرچید.
          2) سوالاتون رو با جزئیات کامل مطرح کنید.

          دیدگاه


            #20
            پاسخ : CORE ارتباط سریال RS232

            دقیقا.

            آره می تونی Hyper terminal رو دانلود کنی (قبلا تو win xp بود) و یه مبدل USB2COM بگیری و وصلش کنی به FPGA و داده ها رو مانیتور کنی باهاش (بگیری یا بفرستی).البته از ترمینال خود code vision هم میشه استفاده کرد.

            دیدگاه


              #21
              پاسخ : CORE ارتباط سریال RS232

              par_en برای parrity bit است
              تو این core تو حالت عادی...parrity bit تو چه وضعیتی هستش؟؟؟؟زوجه ؟؟؟فرده؟؟؟؟؟چی هستش؟؟؟؟

              این برنامم هستش....که قراره هر ثانیه یه مقدار (که هر ثانیه یه بار قبل از ارسال شیفت چرخشی داره) رو به pc ارسال کنه....
              [code=vhdl]
              library IEEE;
              use IEEE.STD_LOGIC_1164.ALL;
              use IEEE.STD_LOGIC_ARITH.ALL;
              use IEEE.STD_LOGIC_UNSIGNED.ALL;

              entity TEST1 is
              port( -- Control
              clk_port80 : in std_logic; -- Main clock
              reset_port : in std_logic; -- Main reset
              -- External Interface
              rx_port : in std_logic; -- RS232 received serial data
              tx_port : out std_logic; -- RS232 transmitted serial data
              -- RS232/UART Configuration
              par_en_port : in std_logic; -- Parity bit enable
              -- uPC Interface
              tx_req_port : in std_logic :='1';--start sent data -- Request SEND of data
              tx_end_port : out std_logic; -- Data SENDED
              tx_data_port : inout std_logic_vector(7 downto 0):="00000001"; -- Data to transmit
              rx_ready_port : out std_logic; -- Received data ready to uPC read
              rx_data_port : out std_logic_vector(7 downto 0) ); -- Received data
              end TEST1;


              architecture Behavioral of TEST1 is

              constant megdare_ersali: bit_vector := "00000001";

              component uart
              port(
              -- Control
              clk : in std_logic; -- Main clock
              rst : in std_logic; -- Main reset
              -- External Interface
              rx : in std_logic; -- RS232 received serial data
              tx : out std_logic; -- RS232 transmitted serial data
              -- RS232/UART Configuration
              par_en : in std_logic; -- Parity bit enable ?????
              -- uPC Interface
              tx_req : in std_logic; -- Request SEND of data
              tx_end : out std_logic; -- Data SENDED
              tx_data : in std_logic_vector(7 downto 0); -- Data to transmit
              rx_ready : out std_logic; -- Received data ready to uPC read
              rx_data : out std_logic_vector(7 downto 0) -- Received data
              );
              end component;

              begin

              U0 : uart port map(clk=>clk_port80,
              rst=>reset_port,
              rx=>rx_port,
              tx=>tx_port,
              par_en=>par_en_port,
              tx_req=>tx_req_port,
              tx_end=>tx_end_port,
              tx_data=>tx_data_port,
              rx_ready=>rx_ready_port,
              rx_data=>rx_data_port);



              process(clk_port80)
              variable count_time : integer range 0 to 50000000:=0; --(50,000000 CLOCK IN f=50Mhz)=1second
              begin
              if(rising_edge(clk_port80))then
              count_time := count_time+1;
              if(count_time=50000000)then
              tx_data_port <= To_StdLogicVector(megdare_ersali rol 1);
              count_time := 0;
              end if;
              end if;


              end process;
              end Behavioral;
              [/code]



              اینم از ارور هایی که برنامم میده
              [code=vhdl]
              WARNING:Xst:1542 - "C:/Users/Mahdi/Desktop/cor-uart/TEST1.vhd" line 50: No default binding for component: <uart>. Generic <CLK_FREQ> is not on the component.
              WARNING:Xst:1542 - "C:/Users/Mahdi/Desktop/cor-uart/TEST1.vhd" line 50: No default binding for component: <uart>. Generic <SER_FREQ> is not on the component.
              WARNING:Xst:646 - Signal <rx_data_tmp<7>> is assigned but never used.
              WARNING:Xst:1291 - FF/Latch <rx_data_tmp_7> is unconnected in block <uart>.
              WARNING:Xst:1426 - The value init of the FF/Latch tx_data_port_0 hinder the constant cleaning in the block test1.
              WARNING:Xst:1426 - The value init of the FF/Latch tx_data_port_1 hinder the constant cleaning in the block test1.
              WARNING:Xst:1293 - FF/Latch <tx_data_port_7> has a constant value of 0 in block <test1>.
              WARNING:Xst:1896 - Due to other FF/Latch trimming, FF/Latch <tx_data_port_2> has a constant value of 0 in block <test1>.
              WARNING:Xst:1896 - Due to other FF/Latch trimming, FF/Latch <tx_data_port_3> has a constant value of 0 in block <test1>.
              WARNING:Xst:1896 - Due to other FF/Latch trimming, FF/Latch <tx_data_port_4> has a constant value of 0 in block <test1>.
              WARNING:Xst:1896 - Due to other FF/Latch trimming, FF/Latch <tx_data_port_5> has a constant value of 0 in block <test1>.
              WARNING:Xst:1896 - Due to other FF/Latch trimming, FF/Latch <tx_data_port_6> has a constant value of 0 in block <test1>.
              WARNING:Xst:1710 - FF/Latch <tx_data_tmp_5> (without init value) has a constant value of 0 in block <uart>.
              WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <tx_data_tmp_6> (without init value) has a constant value of 0 in block <uart>.
              WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <tx_data_tmp_4> (without init value) has a constant value of 0 in block <uart>.
              WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <tx_data_tmp_3> (without init value) has a constant value of 0 in block <uart>.
              WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <tx_data_tmp_2> (without init value) has a constant value of 0 in block <uart>.
              WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <tx_data_tmp_7> (without init value) has a constant value of 0 in block <uart>.
              [/code]



              به نظر من مشکل از core باشد باشه....برنامه فک نکنم مشکلی داشته باشه....در هر صورت کسی میتونه بگه مشکل از وارنینگ ها چیه تا درستش کنم؟؟؟؟
              کسی پروژه نمونه برا تست نداره؟؟؟ :redface:
              اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

              اگه دوس دارید سریع به جواب برسید :
              1) قبل از پرسیدن سوال، بسرچید.
              2) سوالاتون رو با جزئیات کامل مطرح کنید.

              دیدگاه


                #22
                پاسخ : CORE ارتباط سریال RS232

                core رو بزار اینجا تا هم parity مشخص شه و احتمالا وارنینگ ها.بعضی هاشون به خاطر اینه که مقدار default به سیگنال ها ندادی اما اولی برای چیز دیگست که مربوط به core میشه.

                دیدگاه


                  #23
                  پاسخ : CORE ارتباط سریال RS232

                  نوشته اصلی توسط حمید نجفی
                  این Core که ارتباط سریال UART هست رو دوستمون آقای پوریا علی نژاد زحمتش رو کشیدن

                  نام : ارتباط سریال UART

                  توضیحات : این Core برای ارتباط سریال به هر تعداد در داخل FPGA بکار میره-نوع FPGA فرق نمیکنه و فقط باید ابتدا در یک پروژه جدید در کامپایل بشه و بعد بصورت Componenet یا بصورت یک Symbol در محیط شماتیک استفاده بشه.Clock ورودی به FPGA و Boadrate از داخل کد در قسمت Generic اول برنامه تنظیم میشه

                  ورودی و خروجیها : همونطور که در تصویر زیر میبینید - من این Core رو ISE کامپایل کردم و بصورت Symbol زیر درآوردم
                  tx و rx که مشخص هست.
                  clk کلاک اصلی FPGA هست.
                  rst با هر بار 1 شدن ماژول رو ریست میکنه.
                  tx_data دیتایی است که باید ارسال شود و rx_data دیتایی است که دریافت میشود.
                  par_en برای parrity bit است
                  tx_reg برای دستور شروع ارسال است.
                  rx_ready برای اعلام دریافت دیتا است.





                  دانلود ماژول : http://vip.eca.ir/sharing/uploads/13343167631.rar

                  اضافه شده در تاریخ :
                  یه سوال...
                  میگم خود spartan3
                  uart داخلی داره؟؟؟؟؟؟

                  تو یکی از سایت ها انگار اینطور نوشته بود
                  اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

                  اگه دوس دارید سریع به جواب برسید :
                  1) قبل از پرسیدن سوال، بسرچید.
                  2) سوالاتون رو با جزئیات کامل مطرح کنید.

                  دیدگاه

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