تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 6 از 8 اولاول ... 2345678 آخرآخر
نمايش نتايج 51 به 60 از 72

نام تاپيک: آموزش ميكروكنترلر Pic

  1. #51
    پروفشنال sheytoon001's Avatar
    تاريخ عضويت
    Jul 2007
    پست ها
    961

    پيش فرض

    آقا من با این pic18f4550 یه مشکل اساسی تو راه اندازیش دارم
    اولا که مدارم فقط با کریستال 4 کار میکنه ولی همینم سرعتش بیشتر از چیزیه که انتخاب کردم
    مثلا اگه تاخیر 1 ثانیه تو برنامه انتخاب کرده باشم تو مدار شاید نصفش تاخیر ایجاد میکنه
    اینی که میگم در مورد یه مدار ساده چراق چشمک زنه
    مدارم با کریستال بالاتر از 4 هم اصلا کار نمیکنه ، فیوز بیت مربوط به کریستال هم تغیییر میدم هیچ فایده ای نداره xt, hs,es..
    لطفا اگه میتونید راهنماییم کنید
    با pic1684A کار کردم هیچ مشکلی هم ندارم اما نمیدونم چرا سری 18 اینجوری میشه
    راستی پروگرمرم nup113 نوآورانه و برنامه ای که باهاش کار میکنم MikroC

  2. #52
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Apr 2010
    محل سكونت
    تهران
    پست ها
    265

    پيش فرض

    میشه بگید هنگام پروگرام کردن آیسی چه تنظیماتی رو انتخاب کردید؟ به خصوص PLL prescaler و Post scaler.

  3. این کاربر از Peji2010 بخاطر این مطلب مفید تشکر کرده است


  4. #53
    پروفشنال sheytoon001's Avatar
    تاريخ عضويت
    Jul 2007
    پست ها
    961

    پيش فرض

    آقا دمت گرم عجب پا قدمی داری شما
    دیشب کلی گشتم بعد از مدت ها دلیل این مشکل رو تو mikroc پیدا کردم
    دلیلشم این بود که در قسمت Edit project فیوز بیت ها باید همانند تنظیم اون ها در پروگرمر انتخاب بشن
    اما چون تازه کارم هنوز تنظیمات درست رو نمیدونم
    اینم از فیوزبیتهای PIC18F4550 لطفا تنظیمات درستش رو برای کریستلهای متفاوت توضیح بدید




    سوال دیگه هم اینکه کد مربوط به هر کریستالی که برا مدارمون انتخاب میکنیم چیه؟آیا برای هر کریستال واقعا لازمه مقدار osccon=x را در برنامه قرار بدیم؟
    این کدهای زیر درستند؟
    'oscillator control bit settings
    '111 = 8 MHz (8 MHz source drives clock directly) 0x72
    '110 = 4 MHz
    '101 = 2 MHz
    '100 = 1 MHz
    '011 = 500 kHz
    '010 = 250 kHz
    '001 = 125 kHz
    '000 = 31.25 kHz (INTRC source drives clock directly)
    '=================================

    Device = 18F1320
    XTAL=8
    OSCCON = %01110000 ' Internal x MHz osc

    'THIS CONFIG IS FOR THE INTERNAL 8 MHZ OSCILLATOR, AND MCLRE OFF
    @ CONFIG_REQ
    @ __CONFIG CONFIG1H, IESO_ON_1 & FSCMEN_OFF_1 & INTIO67_OSC_1
    @ __CONFIG CONFIG2L, BORV_27_2 & BOR_ON_2 & PWRT_ON_2
    @ __CONFIG CONFIG2H, WDT_ON_2 & WDTPS_32_2
    @ __CONFIG CONFIG3H, MCLRE_OFF_3
    @ __CONFIG CONFIG4L, DEBUG_OFF_4 & LVP_OFF_4 & STVR_ON_4
    @ __CONFIG CONFIG5H, CPB_OFF_5 & CPD_OFF_5
    @ __CONFIG CONFIG5L, CP0_OFF_5 & CP1_OFF_5
    @ __CONFIG CONFIG6H, WRTC_OFF_6 & WRTB_OFF_6 & WRTD_OFF_6
    @ __CONFIG CONFIG6L, WRT0_OFF_6 & WRT1_OFF_6
    @ __CONFIG CONFIG7H, EBTRB_OFF_7
    @ __CONFIG CONFIG7L, EBTR0_OFF_7 & EBTR1_OFF_7
    ' End of config block
    '==============================================
    مثلا میگن برای کریستال 8 باید کد osccon=0x72 رو تو برنامه قرار بدیم
    در نهایت از راهنمایی شما صمیمانه متشکرم
    Last edited by sheytoon001; 28-07-2010 at 13:33.

  5. #54
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Apr 2010
    محل سكونت
    تهران
    پست ها
    265

    پيش فرض

    آقا دمت گرم عجب پا قدمی داری شما
    ما اینیم دیگه..

    اینم از فیوزبیتهای PIC18F4550 لطفا تنظیمات درستش رو برای کریستلهای متفاوت توضیح بدید
    خب با فرض اینکه شما میخاید با هر کریستالی که میذارید , میکروکنترلر با حداکثر سرعت یعنی 48 مگاهرتز کار کنه تنظیمات به این صورته :
    تو قسمت PLL Prescaler که خودش مشخص کرده یعنی برای کریستال 4 مگاهرتز , 4MHZ و برای کریستال 8 مگاهرتز Divide by 2/8 MHZ input و برای سایر کریستالها هم اونی که خودش مشخص کرده رو انتخاب میکنید.

    تو قسمت CPU System Clock Postscaler هم همیشه گزینه ی OSC1/OSC2 Src:/1,96Mhz PLL Src:/2 رو انتخاب کنید.
    در قسمت USB Clock Source Selection هم 'گزینه 96MHZ PLL/2 رو انتخاب کنید و تو قسمت Oscillator هم بهتره همیشه HSPLL رو انتخاب کنید و بیشترین کریستالی هم که میتونید بذارید 20 مگا هرتزه و بقیه ی گزینه ها هم که مربوط به کریستال نمیشه.

    سوال دیگه هم اینکه کد مربوط به هر کریستالی که برا مدارمون انتخاب میکنیم چیه؟آیا برای هر کریستال واقعا لازمه مقدار osccon=x را در برنامه قرار بدیم؟
    این کدهای زیر درستند؟
    مثلا میگن برای کریستال 8 باید کد osccon=0x72 رو تو برنامه قرار بدیم
    برای هیج کریستالی لازم نیست رجیستر OSCCON رو تغییر بدید و اون کد هم لازم نیست. شما زمانی میرین سراغ OSCCON و OSCTUNE که بخاید از اوسیلاتور داخلی (INTOSC یا INTRC) استفاده کنید که البته در هر صورت برای کار با USB باید یه اوسیلاتور خارجی وصل کنید.
    از هر کریستالی هم که استفاده میکنید باید تو MicroC کلاک رو 48 مگاهرتز انتخاب کنید.
    حالا اگر نخاستید میکرو با حداکثر سرعت (48 مگاهرتز) کار کنه قضیه فرق میکنه.



    Last edited by Peji2010; 28-07-2010 at 15:33.

  6. این کاربر از Peji2010 بخاطر این مطلب مفید تشکر کرده است


  7. #55
    پروفشنال sheytoon001's Avatar
    تاريخ عضويت
    Jul 2007
    پست ها
    961

    پيش فرض


    ما اینیم دیگه..



    خب با فرض اینکه شما میخاید با هر کریستالی که میذارید , میکروکنترلر با حداکثر سرعت یعنی 48 مگاهرتز کار کنه تنظیمات به این صورته :
    تو قسمت PLL Prescaler که خودش مشخص کرده یعنی برای کریستال 4 مگاهرتز , 4MHZ و برای کریستال 8 مگاهرتز Divide by 2/8 MHZ input و برای سایر کریستالها هم اونی که خودش مشخص کرده رو انتخاب میکنید.

    تو قسمت CPU System Clock Postscaler هم همیشه گزینه ی OSC1/OSC2 Src:/1,96Mhz PLL Src:/2 رو انتخاب کنید.
    در قسمت USB Clock Source Selection هم 'گزینه 96MHZ PLL/2 رو انتخاب کنید و تو قسمت Oscillator هم بهتره همیشه HSPLL رو انتخاب کنید و بیشترین کریستالی هم که میتونید بذارید 20 مگا هرتزه و بقیه ی گزینه ها هم که مربوط به کریستال نمیشه.



    برای هیج کریستالی لازم نیست رجیستر OSCCON رو تغییر بدید و اون کد هم لازم نیست. شما زمانی میرین سراغ OSCCON و OSCTUNE که بخاید از اوسیلاتور داخلی (INTOSC یا INTRC) استفاده کنید که البته در هر صورت برای کار با USB باید یه اوسیلاتور خارجی وصل کنید.
    از هر کریستالی هم که استفاده میکنید باید تو MicroC کلاک رو 48 مگاهرتز انتخاب کنید.
    حالا اگر نخاستید میکرو با حداکثر سرعت (48 مگاهرتز) کار کنه قضیه فرق میکنه.



    دوست من واقعا برا توضیحاتتون ممنونم
    ببخشید ، میتونید درباره 18 تا فیوز بیت اول این میکرو بیشتر توضیح بدید
    اولی رو فهمیدم برا کریستالیه که انتخاب میکنیم، اما بقیه رو نمی دونم برا چیه بر چه اساسی باید تغییرشون داد؟
    بازم تشکر می کنم از راهنمایی بسیار مفیدتون

  8. #56
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Apr 2010
    محل سكونت
    تهران
    پست ها
    265

    پيش فرض

    ببخشید ، میتونید درباره 18 تا فیوز بیت اول این میکرو بیشتر توضیح بدید
    نه
    ببین این میکرو کلا" به دو منبع پالس ساعت نیاز داره یکی برای ماژول USB و یکی هم پالس ساعت اصلی برای انجام دستورات و ... برای پالس اصلی دو منبع وجود داره : خارجی و داخلی. اما برای USB منبع خارجی لازمه.
    اول میریم سراغ منبع اصلی خارجی.
    تو مدهای XT HS EC و ECIO با اتصال یه منبع مثل کریستال به ورودی (HS برای بالای 3.6MHZ و XT برای کمتر از 3.6MHZ) پالس ساعت , اول وارد تقسیم کننده ی Oscillator Postscaler میشه که بسته به تنظیم فیوز بیت دوم فرکانسش بر 4 یا 3 یا 2 یا 1 تقسیم میشه و بعد برای اجرای دستورات و ... استفاده میشه. یعنی اگه مثلا" کریستال 20MHZ وصل بشه و 2/ انتخاب بشه فرکانس 10MHZ به CPU میرسه و با حساب یک دستور در هر 4 پالس , 2.5 میلیون دستور در ثانیه اجرا میشه.
    تو مدهای HSPLL XTPLL ECPLL و ECPIO با اتصال منبع خارجی اول باید پالس وارد یک PLL بشه که این PLL ,فقط ورودی 4 مگاهرتز میگیره و در خروجی 96 مگاهرتز تحویل میده. چون این PLL فقط ورودیش باید 4 مگاهرتز باشه پالس ابتدا باید وارد تقسیم کننده ی PLL Prescaler بشه و بعد بره تو PLL. این تقسیم کننده با فیوز بیت اول تنظیم میشه و همیشه باید طوری تنظیم بشه که خورجی بشه 4 مگاهرتز. یعنی اگه مثلا" کریستال 20MHZ گذاشتید حتما" باید گزینه ی Divide by 5 انتخاب بشه چون : 20/5 =4 .
    بعد از اینکه 4 مگ تبدیل به 96 شد وارد تقسیم کننده ی PLL Postscaler میشه که 96 رو به 6 یا 4 یا 3 یا 2 تقسیم میکنه که با فیوز بیت دوم تنظیم میشه و برای حداکثر سرعت که 48 مگاهرتزه باید 2/ انتخاب بشه و پالس ساعت بعد از تقسیم وارد CPU میشه.
    یه نکته اینه که فیوز بیت دوم خودش دو قسمت داره که تو 4 مدی که قبلا" گفتم و از PLL استفاده نمیشه شما باید به عدد تقسیم سمت چپ توجه کنی که این چهار گزینه رو داره: 1/ 2/ 3/ 4/ و تو 4 مدی که بعدش توضیح دادم باید گزینه های سمت راست رو در نظر بگیری.( 2/ 3/ 4/ 6/)
    فیوز بیت سوم هم مربوط به ورودی پالس ساعت برای USB هست که گزینه ی PLL یعنی از خروجی PLL استفاده بشه(که بهتره همیشه اینو انتخاب کنید) و اون یکی هم یعنی به طور مستقیم پالس رو از ورودی OSC1 OSC2 بگیره.
    تو فیوز بیت چهارم هم که 8 تاشو توضیح دادم اما INTHS یعنی از اوسیلاتور داخلی استفاده بشه و یه کریستال فرکانس بالا برای USB وصل بشه و INTXT هم همونه فقط با فرکانس کمتر و INTIO مث قبلیه فقط ورودی غیر از کریستاله و INTCKO هم مثل قبلیه فقط پالس ساعت تقسیم بر 4 شده از پایه OSCO میاد بیرون! فیوز پنجم اگه فعال بشه وقتی در حین کار ,سیستم پالس ساعت میکرو دچار مشکل بشه میکرو به طور اتوماتیک به اوسیلاتور RC داخلی سوییچ میکنه. فیوز ششم برای سوییچ کردن بین پالس داخلی و خارجی در حین کاره و سه تا فیوز بعدی هم که مربوط به Powerup و BrownOut میشه و فیوز بعدی اگه فعال باشه در هنگام فعال بودن USB از پایه VUSB ولتاژ 3.3 ولت میاد بیرون و دو فیوز بعدی هم که مربوطه به WDT و بعدی هم برای انتخاب پایه ی مورد استفاده برای CCP است و بعدی هم برای تعیین مد PORTB بعد از RESET شدن میکرو هست(آنالوگ یا دیجیتال) و بعدی برای استفاده از کریستال خارجی کم توان TIMER1 به عنوان پالس ساعت میکرو هست(که معمولا" باید غیر فعال باشه) و بعدی پایه ی MCLR رو مشخص میکنه که پین ورودی RE3 باشه یا ورودی ریست و فیوز بعدی هم برای ریست شدن خودکار میکرو هنگام پرشدن Stack هست.
    درضمن پالس ساعت داخلی میتونه از 31KHZ تا 8MHZ رو تحویل بده (که قابل تنظیمه) و اوسیلاتورRC داخلی هم فرکانسش 31 کیلوهرتزه.

  9. #57
    پروفشنال sheytoon001's Avatar
    تاريخ عضويت
    Jul 2007
    پست ها
    961

    پيش فرض

    نه
    ببین این میکرو کلا" به دو منبع پالس ساعت نیاز داره یکی برای ماژول USB و یکی هم پالس ساعت اصلی برای انجام دستورات و ... برای پالس اصلی دو منبع وجود داره : خارجی و داخلی. اما برای USB منبع خارجی لازمه.
    اول میریم سراغ منبع اصلی خارجی.
    تو مدهای XT HS EC و ECIO با اتصال یه منبع مثل کریستال به ورودی (HS برای بالای 3.6MHZ و XT برای کمتر از 3.6MHZ) پالس ساعت , اول وارد تقسیم کننده ی Oscillator Postscaler میشه که بسته به تنظیم فیوز بیت دوم فرکانسش بر 4 یا 3 یا 2 یا 1 تقسیم میشه و بعد برای اجرای دستورات و ... استفاده میشه. یعنی اگه مثلا" کریستال 20MHZ وصل بشه و 2/ انتخاب بشه فرکانس 10MHZ به CPU میرسه و با حساب یک دستور در هر 4 پالس , 2.5 میلیون دستور در ثانیه اجرا میشه.
    تو مدهای HSPLL XTPLL ECPLL و ECPIO با اتصال منبع خارجی اول باید پالس وارد یک PLL بشه که این PLL ,فقط ورودی 4 مگاهرتز میگیره و در خروجی 96 مگاهرتز تحویل میده. چون این PLL فقط ورودیش باید 4 مگاهرتز باشه پالس ابتدا باید وارد تقسیم کننده ی PLL Prescaler بشه و بعد بره تو PLL. این تقسیم کننده با فیوز بیت اول تنظیم میشه و همیشه باید طوری تنظیم بشه که خورجی بشه 4 مگاهرتز. یعنی اگه مثلا" کریستال 20MHZ گذاشتید حتما" باید گزینه ی Divide by 5 انتخاب بشه چون : 20/5 =4 .
    بعد از اینکه 4 مگ تبدیل به 96 شد وارد تقسیم کننده ی PLL Postscaler میشه که 96 رو به 6 یا 4 یا 3 یا 2 تقسیم میکنه که با فیوز بیت دوم تنظیم میشه و برای حداکثر سرعت که 48 مگاهرتزه باید 2/ انتخاب بشه و پالس ساعت بعد از تقسیم وارد CPU میشه.
    یه نکته اینه که فیوز بیت دوم خودش دو قسمت داره که تو 4 مدی که قبلا" گفتم و از PLL استفاده نمیشه شما باید به عدد تقسیم سمت چپ توجه کنی که این چهار گزینه رو داره: 1/ 2/ 3/ 4/ و تو 4 مدی که بعدش توضیح دادم باید گزینه های سمت راست رو در نظر بگیری.( 2/ 3/ 4/ 6/)
    فیوز بیت سوم هم مربوط به ورودی پالس ساعت برای USB هست که گزینه ی PLL یعنی از خروجی PLL استفاده بشه(که بهتره همیشه اینو انتخاب کنید) و اون یکی هم یعنی به طور مستقیم پالس رو از ورودی OSC1 OSC2 بگیره.
    تو فیوز بیت چهارم هم که 8 تاشو توضیح دادم اما INTHS یعنی از اوسیلاتور داخلی استفاده بشه و یه کریستال فرکانس بالا برای USB وصل بشه و INTXT هم همونه فقط با فرکانس کمتر و INTIO مث قبلیه فقط ورودی غیر از کریستاله و INTCKO هم مثل قبلیه فقط پالس ساعت تقسیم بر 4 شده از پایه OSCO میاد بیرون! فیوز پنجم اگه فعال بشه وقتی در حین کار ,سیستم پالس ساعت میکرو دچار مشکل بشه میکرو به طور اتوماتیک به اوسیلاتور RC داخلی سوییچ میکنه. فیوز ششم برای سوییچ کردن بین پالس داخلی و خارجی در حین کاره و سه تا فیوز بعدی هم که مربوط به Powerup و BrownOut میشه و فیوز بعدی اگه فعال باشه در هنگام فعال بودن USB از پایه VUSB ولتاژ 3.3 ولت میاد بیرون و دو فیوز بعدی هم که مربوطه به WDT و بعدی هم برای انتخاب پایه ی مورد استفاده برای CCP است و بعدی هم برای تعیین مد PORTB بعد از RESET شدن میکرو هست(آنالوگ یا دیجیتال) و بعدی برای استفاده از کریستال خارجی کم توان TIMER1 به عنوان پالس ساعت میکرو هست(که معمولا" باید غیر فعال باشه) و بعدی پایه ی MCLR رو مشخص میکنه که پین ورودی RE3 باشه یا ورودی ریست و فیوز بعدی هم برای ریست شدن خودکار میکرو هنگام پرشدن Stack هست.
    درضمن پالس ساعت داخلی میتونه از 31KHZ تا 8MHZ رو تحویل بده (که قابل تنظیمه) و اوسیلاتورRC داخلی هم فرکانسش 31 کیلوهرتزه.
    واقعا برا این مطالب مفید ازتون متشکرم دوست من
    سر من که گیج رفت ، آخه تازه کارم، باید بیشتر ازینا کار کنم و مطالعه داشته باشم
    احتمالا ازین به بعد بیشتر منو اینجا میبینید
    راستی اون قسمت USB Clock Source Selection ;i که PLL رو انتخاب کردم سرعت مدار زیاد شده بود مجبور شدم دوباره osc رو انتخاب کنم ، فعلا تونستم یه برنامه شمارنده 1-9999 باهاش پیاده سازی کنم

  10. #58
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Apr 2010
    محل سكونت
    تهران
    پست ها
    265

    پيش فرض

    خوبه راه اندازی تایمر هم برای شروع با این آیسی کم چیزی نیست
    USB Clock هم اگه تنظیمات دیگه درست باشه تو مد PLL باید درست کار کنه!

  11. این کاربر از Peji2010 بخاطر این مطلب مفید تشکر کرده است


  12. #59
    پروفشنال sheytoon001's Avatar
    تاريخ عضويت
    Jul 2007
    پست ها
    961

    پيش فرض

    میشه درباره ADCON1 یه مقدار توضیح بدید که برای چه کاری استفاده میشه؟
    البته فکر میکنم به دیجیتال کردن پورت های آنالوگ مربوطه اما طریقه کارکردش چطوریه؟فرضا اگه در PIC18F4550 پورت A رو بخوایم دیجیتال کنیم یا فقط پورت B رو دیجیتال کنیم چطوری باید بفهمیم چه عددی رو باید به ADCON1 اختصاص بدیم؟
    و دیگه اینکه آیا این تنها راه تبدیل پورت آنالوگ به دیجیتاله؟
    یه سوال دیگه اینکه ،در 4550 چرا پورت C4 و C5 کار نمی کنن؟فکر میکنم یه ربطی به +D و -D که جلو این پورتها نوشته داره درسته؟یه مقدار درموردش اگه ممکنه توضیح بدید، و آیا راهی هست که به طور معمول بشه از این دو استفاده کرد؟
    Last edited by sheytoon001; 29-07-2010 at 17:07.

  13. #60
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Apr 2010
    محل سكونت
    تهران
    پست ها
    265

    پيش فرض

    میگم اگه دیتاشیت این آیسی رو نداری حتما" دانلود کن چون بدون دیتاشیت زندگی سخته
    4 بیت اول ADCON1 همونطور که میدونی دیجیتال یا آنالوگ بودن PORTA و PORTB رو تعیین میکنه و دوبیت بالاتر هم برای تعیین پایه های ورودی ولتاژ مرجع آنالوگ به دیجیتاله. تو دیتاشیت نحوه ی انتخاب رو به طور کامل نوشته که اون صفحه رو برات میذارم:

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    A = آنالوگ D = دیجیتال
    آره این تنها راه انتخاب آنالوگ یا دیجیتال بودن پایه هاست. پایه های -D و +D برای USB هستن و در حالت عادی که USB فعال نیست این پایه ها (RC4 , RC5) فقط به عنوان ورودی دیجیتال قابل استفاده هستن (یعنی فقط میشه PORTC4 , PORTC5 رو خوند) و بیتهای TRIS برای این دوپایه وجود نداره اما پایه های دیگه ی PORTC دو طرفه هستن.

  14. این کاربر از Peji2010 بخاطر این مطلب مفید تشکر کرده است


Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

برچسب های این موضوع

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •