اطلاعیه

Collapse
No announcement yet.

مشکل Atmega 64L و max232

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

    مشکل Atmega 64L و max232

    سلام

    من قبلا برای atmega 8 و max232 یک مدار ساختم که وقتی مدار رو به کامپیوتر میزدم و نرم افزار hyper terminal رو اجرا میکردم میتونستم مثلا اگه نوستم اون چیزایی که وارد برنامه کرده بودم رو ببینم
    اینم کد برنامه

    کد:
    $regfile = "M8def.dat"
    $crystal = 8000000
    
    $baud = 9600
    Config Serialin = Buffered , Size = 12
    Config Portd.0 = Input
    Config Portd.1 = Output
    Portd = &HFF
    Enable Interrupts
    
    Cls
    Print "Wellcome "
    end

    cksel0=1
    cksel1=0
    cksel2=0
    ckse3=0

    اما الان من از atmega 64l استفاده کردم و دقیقا همون برنامه رو گذاشتم اما کار نمیکنه میشه بگید چرا
    کد:
    $regfile = "m64def.dat"
    
    $crystal = 8000000
    
    $baud = 9600
    Config Serialin = Buffered , Size = 12
    Config Portd.2= Input
    Config Portd.3 = Output
    Portd = &HFF
    Enable Interrupts
    
    Cls
    Print "Wellcome "
    end

    cksel0=1
    cksel1=0
    cksel2=0
    ckse3=0


    بگید مشکل چیه

    مرسی

    http://services.nexodyne.com/email/i...3D/0/image.png

    #2
    پاسخ : مشکل Atmega 64L و max232

    از تنظیمات هایپر مطمئنی ؟

    شماره Com
    9600
    8
    N
    1
    None

    دیدگاه


      #3
      پاسخ : مشکل Atmega 64L و max232

      سلام
      اگه ATmega 64 رو تازه خریدی فیوز بیت Watch Dog اونو کنترل کن. WDT به طور پیش فرض در این میکرو روشنه که اگه برنامه ریزی نشه باعث Reset مکرر میکروکنترلر می شه. فیوز بیت ATmega103 Compatibility رو هم روی حالت Atmega64 تنظیم کن.
      موفق باشی

      دیدگاه


        #4
        پاسخ : مشکل Atmega 64L و max232

        دوست عزیز شما برنامتون رو با فرکانس 8مگ تعریف و کامپایل کردین ولی در عمل فرکانس دیگه ای (1Mhz)
        رو با انتخاب CKSEL3..0=0001 برای میکرو اعمال میکنید. مشکلتون به احتمال زیاد از همین جاست.
        در واقع باود ریت میکرو مقدار واقعی خودش رو نداره.
        آموزش نرم افزار Matlab برای دانشجویان رشته های مهندسیhttp://alidoost.ir/news.php?readmore=22

        دیدگاه


          #5
          پاسخ : مشکل Atmega 64L و max232

          سلام
          دوست عزیز mega64L سطح منطقی 3.3 ولت داره و max232 پنج ولتی
          شما باید از max3232 بجای max232 استفاده کنید . این آی سی با سطح 3.3 ولت کار میکنه و پایه هاش هم دقیقا مثل max232 هست .

          :job:
          نوفن پردازش هوشمند

          دیدگاه


            #6
            پاسخ : مشکل Atmega 64L و max232


            سطح منطقی 3.3 ولت داره و max232 پنج ولتی
            شما باید از max3232 بجای max232 استفاده کنید
            چنین چیزی واقعیت ندارد شاید شما میکرو رو اشتباه گرفتید چون من خیلی با پورت سریال atmega64 , atmega2561 کار کرده ام و از همان max232 هم استفاده می کنم

            دیدگاه


              #7
              پاسخ : مشکل Atmega 64L و max232

              اشتباه که نگرفتم . مگا 64 ال با سطح 3.3 کار میکنه . حالا اگه یک آی سی که با سطح 5 کار میکنه با اون کار کرد دلیلی بر بی اطلاعی منه ؟
              شما بهتره یخورده اطلاعات خودت رو اضافه کنی . و الا شرکت maxim دلیلی میدید که بیاد max3232 رو بسازه ؟
              max 3232 از 3 ولت تا 5 ولت رو ساپورت میکنه و قیمتش هم کمه .
              بهتره به دیتا شیت هم یک نگاهی بندازی قبل از اینکه پست بزنی
              نوفن پردازش هوشمند

              دیدگاه


                #8
                پاسخ : مشکل Atmega 64L و max232

                دوست من ، بنده قصد آن ندارم که بگم اطلاعاتم زیاد فقط میگم باهاش زیاد کار کردم
                اما
                atmega64 جزو avr ها است و ولتاژ کاری اونها by default همون 5 ولت است که شما می تونید با فیوز بیتها حتی brown out reset هم براش در سطوح مختلف تعریف کنید که اگر تعریفتون روی 3 ولت باشه با این 3 ولت کار می کنه و مشکلی نداره
                این قضیه برای اکثر avr ها صادقه ولی اکثرا توصیه می کنند که ازش استفاده نکنید چون مثلا اگه شما اون رو روی 3 ولت تنظیم کنید اگه lcd داشته باشید تو مدارتون کنتراست با 5 ولت و 3 ولت یکسان نخواهد بود حال آنکه شما تا پایین اومدن میکرو تا این ولتاژ به میکرو اجازه کارکرد رو دادین مگه اینکه بگین که ولتاژم همیشه همون 3.3 ولته و هیچگاه تغییری اندک هم نخواهد داشت

                دیدگاه


                  #9
                  پاسخ : مشکل Atmega 64L و max232

                  نوشته اصلی توسط farid-a
                  دوست عزیز شما برنامتون رو با فرکانس 8مگ تعریف و کامپایل کردین ولی در عمل فرکانس دیگه ای (1Mhz)
                  رو با انتخاب CKSEL3..0=0001 برای میکرو اعمال میکنید. مشکلتون به احتمال زیاد از همین جاست.
                  در واقع باود ریت میکرو مقدار واقعی خودش رو نداره.
                  سلام
                  من با نرم افزار progisp کار میکنم و این قسمت ها رو پیدا نکردم که تنظیم کنم میشه بگید کجاست

                  برای تنظیم فرکانش نرم افزار رو عوض کنم و چه عددی قرار بدم

                  مرسی
                  http://services.nexodyne.com/email/i...3D/0/image.png

                  دیدگاه


                    #10
                    پاسخ : مشکل Atmega 64L و max232

                    سلام

                    شما اولش گفتید با مگا 8 کار میکرد(ولی cksel ...!!!)

                    cksel توی progisp سمت چپ چند تا 0 و 1 سبز و قرمز با اسم مجموعه low fuse bits هست

                    اگه مشکل فرکانس کاری حله من این مشکل رو چند وقت پیش داشتم

                    مشکل از بیسکامه

                    پیشنهاد میکنم از دیتا شیت میکرو طریقه تنظیم uart رو در بیارید اگه هم حوصله ندارید مثل من از ویزارد کد ویژن استفاده کنید

                    روش کار خیلی سادست شما uart رو با باوود مورد نظر توی کد ویزارد تنظیم کنید و کدی که برنامه به شما میده رو توی بیسیک بنویسید مثال پایین باوود ریته 57600 با فرکانس 14.7456 هستش:

                    Ucsr0a = &H00
                    Ucsr0b = &H18
                    Ucsr0c = &H06
                    Ubrr0h = &H00
                    Ubrr0l = &H0F

                    این طوری حتما کار میکنه

                    راستی این دستورات رو بعد از serialin و $baud بذارید که بیسکام کارهای بافر و اینارو انجام بده

                    موفق باشید :mrgreen:
                    به وبلاگم سر بزنید

                    دیدگاه


                      #11
                      پاسخ : مشکل Atmega 64L و max232

                      نوشته اصلی توسط naeimwtg


                      سلام
                      من با نرم افزار progisp کار میکنم و این قسمت ها رو پیدا نکردم که تنظیم کنم میشه بگید کجاست

                      برای تنظیم فرکانش نرم افزار رو عوض کنم و چه عددی قرار بدم

                      مرسی
                      سلام.
                      دوست عزیز لازم نیست برنامتون رو عوض کنید , اگه برنامتون رو تو بسکام با همون 8مگ کامپایل کردین ,
                      تو نرم افزار progisp تو قسمت فیوز بیت ها برای اینکه از اسیلاتور داخلی 8مگ میکرو استفاده کنید باید تنظیمات cksel اینطوری باشه :
                      0100 یعنی بجز CKsel2 بقیه همشون علامت دار(تیک زده شده) باشن و cksel2 مقدارش یک باشه.
                      در ضمن حداقل یکی از فیوزبیت های SUT10 هم صفر شود. (اگر هر دوشون یک باشن , و میکرو با اسلاتور داخلی تنظیم شه , میکرو هرگز ریست نمیشه) و تنها راه نجات میکرو
                      استفاده از پروگرمر high voltage برای برنامه ریزی دوباره میکرو و فیوزبیت ها هستش.

                      مگا 64 ال با سطح 3.3 کار میکنه
                      دوست عزیز سری میکروکنترلر های AVR که با پسوند L هستن برای اینه که میتونن با سطوح ولتاژ پائین تر هم کار کنند و اسلاتورشون تا این ولتاژ ها هم کار میکنه ,
                      نه اینکه حتما باید بهشون 3.3 ولت بدی :biggrin:
                      اون آی سی های MAx رو هم که فرمودین بیشتر برای مواقعی هستش که تغذیتون رو تو مدار آوردین پائین تا تلفاتتون کمتر باشه.
                      دیتاشیت رو که میخونید یکم با دقت تر بخونید و البته قبل از دیتاشیت ها دروس دانشگاهیتون رو مفهومی تر :nerd:
                      در ضمن دوستمون آقا نعیم هم صحبتی از ولتاژ نکردن و به احتمال 99.9 درصد هم با 5 ولت دارن کار میکنن و مشکلشون هم به احتمال 99.999999 درصد همون هماهنگ نبودن باودریت PC و میکرو هستش
                      که با تنظیم اسسلاتور داخلی میکرو (رو 8 مگ) طوری که برنامشون رو هم با همون فرکانس کامپایل کردن , مشکلشون رفع میشه به احتمال 100 درصد

                      چی گفتم
                      آموزش نرم افزار Matlab برای دانشجویان رشته های مهندسیhttp://alidoost.ir/news.php?readmore=22

                      دیدگاه


                        #12
                        پاسخ : مشکل Atmega 64L و max232

                        سلام دوستان در از پاسخ همه شما منونم

                        شما اولش گفتید با مگا 8 کار میکرد(ولی cksel ...!!!)

                        cksel توی progisp سمت چپ چند تا 0 و 1 سبز و قرمز با اسم مجموعه low fuse bits هست

                        دوست عزیز اینو میدونم کجاست منظورم فیوز بیت Watch Dog و فیوز بیت ATmega103 Compatibility بودش

                        روش کار خیلی سادست شما uart رو با باوود مورد نظر توی کد ویزارد تنظیم کنید و کدی که برنامه به شما میده رو توی بیسیک بنویسید مثال پایین باوود ریته 57600 با فرکانس 14.7456 هستش:

                        Ucsr0a = &H00
                        Ucsr0b = &H18
                        Ucsr0c = &H06
                        Ubrr0h = &H00
                        Ubrr0l = &H0F

                        این طوری حتما کار میکنه

                        راستی این دستورات رو بعد از serialin و $baud بذارید که بیسکام کارهای بافر و اینارو انجام بده

                        دوست عزیز دقیقا نفهمیدم باید چیکار کنم
                        میشه بیشتر توضیح بدهید

                        دوستان من از ولتاژ 4.5 ولت استفاده میکنم . در ضمن این atmega 64l دوتا rx,tx داره من اولی رو به یک sim300 وصل کردم اما portd که توی دیتا شیت هم هستش رو به max وصل کردم اما کار نمیکنه
                        http://services.nexodyne.com/email/i...3D/0/image.png

                        دیدگاه


                          #13
                          پاسخ : مشکل Atmega 64L و max232

                          سلام

                          وقتی شما uart0 رو پیکره بندی کنید باید از rxd txd سریال صفر استفاده کنید یعنی pe0 & 1
                          اگه با پورت uart1 استفاده میکنید از پایه های pd 2 & 3

                          تنظیمات config comx و تنظیماتی که گفتم رو رعایت کنید کلاک هم رست باشه و فیوز بیت سازگاری با mega103 غیر فعال باشه نباید مشکلی پیش بیاد فقط....

                          این سری میکرو ها یه پایه pe دارن (پین 1) که اگه صفر باشه میتونید پروگرام کنید و اگه یک باشه میکرو کار عادی خودشو میکنه اینا رعایت شده

                          یه چیز دیگه: برای پروگرام کردن isp باید بجای وصل کردن پروگرامر به miso و mosi به پایه های pdo و pdi وصل کنی(همون پایه های pe0 و pe1) ولی sck همون جای قبلی
                          به وبلاگم سر بزنید

                          دیدگاه


                            #14
                            پاسخ : مشکل Atmega 64L و max232

                            سلام دوستان

                            این عکس اول رو سازنده مدار به من گفته باید این جوری باشه



                            که با این تنظیمات کار میکنه

                            اما من با progisp کار میکنم که به این شکل تنظیم کردم همه رو پیدا کردم بجز m103c


                            اینم سورس برنامه با asm
                            ;*****
                            ;* Title: USART0 initialize and send/receive data
                            ;* Version: 2.0
                            ;* Start date: 87.09.04
                            ;* End date: 87.09.04
                            ;* Target MCU: ATMEGA64
                            ;* XTAL: 7.3728MHZ

                            ;* Describtion:
                            ;*This program initialize usart0 and send/receive data for it's buffer
                            ;*
                            ;*Used register:
                            ;*XL,XH
                            ;*****
                            ;*****
                            .INCLUDE "M64DEF.INC"
                            .ORG 0X0000
                            RJMP RESET ;Reset Handle
                            ;*****
                            RESET:
                            ;***** Initialize stack pointer
                            ;* Initialize stack pointer to 0X085F in internal SRAM

                            LDI XL,LOW(0X10FF) ;Load XL with 0XFF
                            LDI XH,HIGH(0X10FF) ;Load XH with 0X10
                            OUT SPL,XL ;Load SPL with XL
                            OUT SPH,XH ;Load SPH with XH

                            LDI XL,0XFF ;Load XL with 0XFF
                            OUT DDRA,XL ;Set port A as output

                            LDI XL,0X00
                            OUT PORTA,XL

                            CALL USART0_INITIALIZE


                            ;***** Initialize USART0
                            ;* Describtion:
                            ;*This subroutine initialize usart0 parameter
                            ;*Used register:
                            ;*XL
                            ;*
                            USART0_INITIALIZE:

                            LDI XL,0X20 ;RXC TXC UDRE FE DOR PE U2X MPCM
                            OUT UCSR0A,XL ; 0 0 1 0 0 0 0 0
                            LDI XL,0XF8 ;RXCIE TXCIE UDRIE RXEN TXEN UCSZ2 RXB8 TXB8
                            OUT UCSR0B,XL ; 1 1 1 1 1 0 0 0
                            LDI XL,0X86 ;URSEL UMSEL UPM1 UPM0 USBS UCSZ1 UCSZ0 UCPOL
                            STS UCSR0C,XL ; 1 0 0 0 0 1 1 0
                            LDI XL,0X00 ;URSEL - - - UBRR11 UBRR10 UBRR9 UBRR8
                            STS UBRR0H,XL ; 0 0 0 0 0 0 0 0
                            LDI XL,0XBF ;UBRR7 UBRR6 UBRR5 UBRR4 UBRR3 UBRR2 UBRR1 UBRR0
                            OUT UBRR0L,XL ; 1 0 1 1 1 1 1 1

                            RET
                            میشه راهنمایی کنید
                            با تشکر
                            http://services.nexodyne.com/email/i...3D/0/image.png

                            دیدگاه


                              #15
                              چگونگی استفاده از ATMEGA64

                              سلام دوستان ، من یه IC ATMEGA64 خریدم دیدم SMD هست حالا نمی دونم چطوری ازش استفاده کنم روی برد بورد که سوار نمیشه بخوام بهش برنامه بدم و پروگرامش کنم لطفا منو راهنمایی کنید.
                              کسی کوه بزرگ را جابه جا می کند که شروع به برداشتن سنگریزه ها کند.

                              دیدگاه

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