اطلاعیه

Collapse
No announcement yet.

میشه خروجی MAX232 رو مستقیم به میکرو وصل کرد ؟

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

    میشه خروجی MAX232 رو مستقیم به میکرو وصل کرد ؟

    سلام
    می خواستم MAX232 رو به یه ATXMEGA128A3U وصل کنم
    مستقیم میشه وصل کرد ؟ صدمه ای به میکرو نمی زنه ؟
    تغذیه MAX232 رو باید 3.3 ولت بکنم ؟
    کسی تست کرده ؟
    ممنون

    #2
    پاسخ : میشه خروجی MAX232 رو مستقیم به میکرو وصل کرد ؟

    با فرض تغذیه 3.3 برای XMEGA، تغذیه max232 را به 5 ولت و خروجی ارسال را مستقیما از میکروکنترلر به ورودی max232 متصل کنید(زیرا 3.3 را به عنوان high قبول می کند). برای اتصال خروجی max232 به ورودی دریافت سریال هم از یک تقسیم مقاومتی مناسب استفاده کنید، به نحوی که 5 خروجی max232 را به 3.3 تبدیل کند.
    اوژن: به معنای افکننده و شکست دهنده است
    دانایی، توانایی است-Knowledge is POWER
    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

    دیدگاه


      #3
      پاسخ : میشه خروجی MAX232 رو مستقیم به میکرو وصل کرد ؟

      با سلام خدمت آقا فرشاد عزیز و جناب طراح

      میشه از دیود زنر 3.3 ولت هم استفاده کرد.
      تاپیک جامع سیستم مدیریت ساختمان BMS و خانه هوشمند Smart Home
      دانلود مجموعه آموزشی شرکت Altium ا (Altium Training)
      مقالات و فایل های آموزشی نرم افزار Labview
      حل مشکل درایور و راه اندازی FT232 های غیراورجینال

      دیدگاه


        #4
        پاسخ : میشه خروجی MAX232 رو مستقیم به میکرو وصل کرد ؟

        من رشتم الکترونیک نیست
        دقیقاً دیدم بعضی جاها یه دیود زنر با پورت موازی میبندن
        همینجوری ولتاژ تا ولتاژ زنر پایین میاد ؟
        دیگه لازم نیست بهش مقاومتی چیزی ببندیم ؟
        اصلاً اصولی هست این روش ؟

        دیدگاه


          #5
          پاسخ : میشه خروجی MAX232 رو مستقیم به میکرو وصل کرد ؟

          نوشته اصلی توسط فرشاد اکرمی
          من رشتم الکترونیک نیست
          دقیقاً دیدم بعضی جاها یه دیود زنر با پورت موازی میبندن
          همینجوری ولتاژ تا ولتاژ زنر پایین میاد ؟
          دیگه لازم نیست بهش مقاومتی چیزی ببندیم ؟
          اصلاً اصولی هست این روش ؟
          بله ولتاژ تا ولتاژ زنر پایین میاد .
          اصولی بودنش رو که جناب طراح نظر بدن بهتره . من ایده دادم ولی فکر نکنم مشکلی داشته باشه . چون زنر 3.3 مثل رگولاتور 3.3 هست (البته در کل یکی از کاربرداش اینه) . ولی بهتره دیود زنری که میذاری از نوع fast باشه تا با سرعت بالاتری عمل کنه (برای نرخ های باودریت بالا) . مقاومت هم نمی خواد .
          تاپیک جامع سیستم مدیریت ساختمان BMS و خانه هوشمند Smart Home
          دانلود مجموعه آموزشی شرکت Altium ا (Altium Training)
          مقالات و فایل های آموزشی نرم افزار Labview
          حل مشکل درایور و راه اندازی FT232 های غیراورجینال

          دیدگاه


            #6
            پاسخ : میشه خروجی MAX232 رو مستقیم به میکرو وصل کرد ؟

            به یک مشکلی برخورد کردم!
            ارسال کاراکتر اشتباه خیلی زیاد شده !!
            هر کاری می کنم درست نمیشه !
            نمونه کد:
            کد PHP:

            #include <stdio.h>
            #include <avr\io.h>
            #define F_CPU 32000000
            #include <util\delay.h>

            void Config32MHzClock(void);
            void UsartWriteChar(unsigned char data);
            unsigned char UsartReadChar(void);

            int main(void)
            {
                
            int data;
                
            Config32MHzClock();

                
            CLK.PSCTRL 0x00;

                
            PORTCFG.CLKEVOUT PORTCFG_CLKOUT_PE7_gc;
                
            PORTE.DIR = (1<<7);

                
            PORTF.DIR |= (1<<3) | (1<<0); 
                
            PORTF.OUT |= (1<<3);   
                 
            USARTF0.BAUDCTRLA 207;

                
            USARTF0.CTRLB USART_TXEN_bm USART_RXEN_bm;
                
            PORTA.DIRSET=0b10000000;
                while(
            1)
                {
                
            // data=UsartReadChar(); 
                
            UsartWriteChar(data); 
                    
            _delay_ms(100);
            PORTA_OUTTGL=0b10000000;

                };
            };

            void UsartWriteChar(unsigned char data)
            {
                
            USARTF0.DATA = 'a' ; 
                
            if(!(USARTF0.STATUS&USART_DREIF_bm))
                while(!(
            USARTF0.STATUS &ampUSART_TXCIF_bm));
                
            USARTF0.STATUS |= USART_TXCIF_bm
            };

            unsigned char UsartReadChar(void)
            {
                
            unsigned char ret;
                while(!(
            USARTF0.STATUS&USART_RXCIF_bm)); 

                return 
            USARTF0.DATA;
            };


            void Config32MHzClock(void)
            {
                
            CCP CCP_IOREG_gc//Security Signature to modify clock
                // initialize clock source to be 32MHz internal oscillator (no PLL)
                
            OSC.CTRL OSC_RC32MEN_bm// enable internal 32MHz oscillator
                
            while(!(OSC.STATUS &ampOSC_RC32MRDY_bm)); // wait for oscillator ready
                
            CCP CCP_IOREG_gc//Security Signature to modify clock
                
            CLK.CTRL 0x01//select sysclock 32MHz osc
            }; 

            خروجی که میده !!!
            áaaaaaaa¡á¡áá¡& #225;áaaáaaáaaa¡a¡á& #225;aaaaaa¡¡áaaaaaaaa¡¡& #225;a¡aaá¡aaaááaa¡a aa¡aa
            aááaaa¡aaaáaaaá¡aaa& #161;¡¡aaaaaaaáaaa¡¡aa&#2 25;aaaá¡aaaá¡¡aa

            مقدار بودرت رو از 9600 آوردم روی 1200 تأثیری نداشت
            برای رسوندن به حد 3.3 اول زنر گذاشتم ، گفتم شاید از اونه تقسیم مقاومتی کردم ! دیدم باز نشد، کلاً این max232 رو زدم به 3.3
            هر کاری کردم فرقی نکرد و خروجی همینه !

            فقط یه نکته ای ، مثل اینکه تغذیه max232 میشه 3.3 داد

            دیدگاه


              #7
              پاسخ : میشه خروجی MAX232 رو مستقیم به میکرو وصل کرد ؟

              با سلام،

              ظاهرا کد های برنامه که مشکلی نداره، برای تغییر Level از این استفاده کن :

              مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

              Sh_Nourbakhsh@Yahoo.com

              http://s2.picofile.com/file/7170362468/_Wall_e_.jp

              دیدگاه


                #8
                پاسخ : میشه خروجی MAX232 رو مستقیم به میکرو وصل کرد ؟

                برنامه شما اشکالاتی دارد، اما به همین شکل هم برای ارسال مداوم حرف a به درستی عمل می کند. ضمنا برای اتصال خط ارسال از XMEGA به max232 احتیاجی به تغییر سطح نیست و باید بصورت مستقیم متصل شود و تغییر سطح مربوط به اتصال از max232 به ورودی دریافت در XMEGA است.
                اوژن: به معنای افکننده و شکست دهنده است
                دانایی، توانایی است-Knowledge is POWER
                برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                دیدگاه


                  #9
                  پاسخ : میشه خروجی MAX232 رو مستقیم به میکرو وصل کرد ؟

                  نوشته اصلی توسط طراح
                  برنامه شما اشکالاتی دارد، اما به همین شکل هم برای ارسال مداوم حرف a به درستی عمل می کند. ضمنا برای اتصال خط ارسال از XMEGA به max232 احتیاجی به تغییر سطح نیست و باید بصورت مستقیم متصل شود و تغییر سطح مربوط به اتصال از max232 به ورودی دریافت در XMEGA است.
                  میشه بگید ایراداش کجاست ؟
                  منبعی واسه سریال هست ! راستش رو بخواین دیتاشیت رو نیگا کردم و o_O شدم !
                  در مورد MAX232 هم ، کلا تغذیه رو 3.3 کردم و بدون مشکلی کار می کنه ( با aVR معمولی چک کردم و تو سطح ولتاژ 3.3 درست کار می کنه )

                  دیدگاه


                    #10
                    پاسخ : میشه خروجی MAX232 رو مستقیم به میکرو وصل کرد ؟

                    نوشته اصلی توسط فرشاد اکرمی
                    میشه بگید ایراداش کجاست ؟
                    1- رجیستر OSC.CTRL از نوع حفاظت شده نیست. بنابراین مقدار دهی به CCP قبل از آن زائد است. همچنین مقدار بیت مربوط به روشن کردن اسیلاتور 32 مگاهرتز باید از طریق OR کردن روشن شود و با نوع مقداردهی در برنامه، قبل از راه اندازی اسیلاتور 32 مگاهرتز، اسیلاتور 2 مگاهرتز باید از کار بیافتد(هر چند ظاهرا حفاظت سخت افزاری در مورد این رجیستر وجود دارد که حتی در صورت مقداردهی اشتباه هم، اسیلاتور 2 مگاهرتز از کار نیافتد).

                    2- رجیستر CLK.PSCTRL دارای مقدار پیش فرض 0X00 است و مقداردهی به آن لازم نیست. همچنین این رجیستر از نوع حفاظت شده است و اگر لازم باشد مقدار آن تغییر کند، باید ابتدا به CCP مقدار داده شود. (البته حفاظت شده بودن این رجیستر در XMEGA A Manual آورده نشده که قبلا از طریق مکاتبه به Atmel گزارش داده ام).

                    3- در تابع ارسال اولا آرگومان تابع از نوع دو بایتی است که احتمالا نوع تک بایتی مد نظر بوده و ثانیا از این آرگومان هم استفاده نشده است. اما اصلی ترین مورد این است که همیشه قبل از ارسال، باید فلگ DREIF بررسی شود و نه بعد از آن. چرا که بعد از شروع ارسال قطعا این فلگ فعال نیست. بنابراین if قرار داده شده همیشه محقق می شود. همچنین در این تابع برای پاک کردن بیت فلگ مربوطه از یک اشتباه بزرگ و بسیار مصطلح استفاده شده و آن OR کردن با مقدار متناظر یک در محل فلگ است. البته در این برنامه به خصوص، این روش مشکلی ایجاد نمی کند. اما اگر یک ارسال و دریافت توام ممکن باشد، OR کردن می تواند فلگ دریافت را هم پاک کند. بطور کلی برای پاک کردن فلگ هایی که با نوشتن یک پاک می شوند ( به خصوص در شرایطی که فلگ های دیگر هم در آن بایت حضور داشه باشند)، بجای OR کردن باید در آن بایت فقط یک در محل مورد نظر نوشته شود. بنابراین بجای

                    USARTF0.STATUS |= USART_TXCIF_bm;


                    باید نوشته شود:

                    USARTF0.STATUS = USART_TXCIF_bm;


                    4- از تابع دریافت هم هرچند استفاده نشده، اما دارای این اشکال است که فلگ RXCIF در آن پاک نشده است.



                    اوژن: به معنای افکننده و شکست دهنده است
                    دانایی، توانایی است-Knowledge is POWER
                    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                    دیدگاه


                      #11
                      پاسخ : میشه خروجی MAX232 رو مستقیم به میکرو وصل کرد ؟

                      سلام به همه دوستان
                      در صورتی که تغذیه MAX232 به 3.3 ولت وصل کنیم ، خروجی دیتا هم 3.3 میشه که به میکرو آسیب نرسه؟!
                      ممنون

                      دیدگاه


                        #12
                        پاسخ : میشه خروجی MAX232 رو مستقیم به میکرو وصل کرد ؟

                        سلام
                        در دیتاشیت مینیمم ولتاژ تغذیه رو 4.5 گفته ...
                        ساده ترین روش تغییر سطح همون تقسیم مقاومتی یا استفاده از زنر و مقاومت هست
                        نوشته اصلی توسط محمد م
                        با سلام خدمت آقا فرشاد عزیز و جناب طراح
                        میشه از دیود زنر 3.3 ولت هم استفاده کرد.
                        استفاده از زنر بدون مقاومت اصولی نیست و در صورتی که مقاومت خروجی وسیله که میخواین باهاش ارتباط برقرار کنید پایین باشه کل ولتاژ میوفته رو زنر و ...
                        با سپاس

                        دیدگاه

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