اطلاعیه

Collapse
No announcement yet.

پروگرامر بیسیم برای avr

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

    پروگرامر بیسیم برای avr

    سلام به تمامی دوستان ECA :NO:
    دوستان من برای برنامه ریزی یک avr نیاز به پروگرامری دارم که از طریق بیسیم عمل نماید !!!!!! بله تعجب نکنبد من هم سرم به جای برنخورده است
    بردی که من برای کنترل کاری درست کرده ام نیاز است هر چند وقت یک برنامه جدید قبول کند و میخوام بدون اتصال سیم میکرو را پروگرام شود !!!
    پیشنهاد و طرح بدهید لطفا!!!!!!!!!
    موفق باشید به امید دیدار :bye
    کمتر سخن گویم
    بیشتر عمل کنیم

    #2
    پاسخ : پروگرامر بیسیم برای avr

    سلام

    شما می تونی با بوت لودر این کار و انجام بدی (من یه چند وقتی روش کار میکنم)

    وقتی با بوت لودر میکرو رو پروگرم می کنی به 2 تا سیم احتیاج داری همون rx tx

    حالا این دو تا رو به راحتی می تونی به اینفررد (زاویه باز) تبدیل کنی

    اگه تو هر قسمت مشکلی داشتی بگو تا بیشتر توضیح بدم

    موفق باشی
    زندگی یه فرصته

    دیدگاه


      #3
      پاسخ : پروگرامر بیسیم برای avr

      بیتر توضیح بدبد؟ یه مدار کوپولو هم بد نیست ؟ با RF هم میشه این کار را کرد؟
      Difficult But possible
      به امید ایرانی آباد.
      http://art-net.ir

      دیدگاه


        #4
        پاسخ : پروگرامر بیسیم برای avr

        سلام دوست گرامی آقای علیرضا خلیلی
        من با کد ویژن کار میکنم و تا به حال از بوت لودر استفاده نکرده ام لطفا برای شروع برنامه کوچکی برایم در همین تایپ قرار دهید
        قبلا از همکاری و راهنمای شما کمال تشکر میشود. :wow:
        کمتر سخن گویم
        بیشتر عمل کنیم

        دیدگاه


          #5
          پاسخ : پروگرامر بیسیم برای avr

          سلام

          من با بسکام کار می کنم اگه برنامه ش به درد می خوره بگو بزارم

          در مورد کد ویژن کتاب پرتویی فر ، بوت لودر کامل توضیح داده.
          یه سرچ تو انجمن بی نتیجه نیست.

          موفق باشی

          زندگی یه فرصته

          دیدگاه


            #6
            پاسخ : پروگرامر بیسیم برای avr

            نوشته اصلی توسط علیرضا خلیلی
            سلام

            من با بسکام کار می کنم اگه برنامه ش به درد می خوره بگو بزارم

            در مورد کد ویژن کتاب پرتویی فر ، بوت لودر کامل توضیح داده.
            یه سرچ تو انجمن بی نتیجه نیست.

            موفق باشی

            برنامه BootLoader و برنامه اصلی میتونن از دو زبان مختلف باشن. مشکلی نداره که یکی بیسیک باشه و اون یکی کدویژن
            بت در بغل و به سجده پیشانی ما کافر زده خنده بر مسلمانی ما
            اسلام به ذات خود ندارد عیبی هر عیب که هست در این مسلمانی ماست

            دیدگاه


              #7
              پاسخ : پروگرامر بیسیم برای avr

              سلام
              دوستان لطفا یک مثال بیاورید تا ما شروع کنیم
              کتاب پرتوی فر را دیدم همه توضیحات بود خواندم ولی من با مثال چیزی را یاد میگیرم لطفا یک نمونه کوچک در این تایپ قرار دهید مثلا یک پایه را صفر و یک کند
              متشکرم :cry2:
              کمتر سخن گویم
              بیشتر عمل کنیم

              دیدگاه


                #8
                پاسخ : پروگرامر بیسیم برای avr

                من فقط کلیات کار رو میدونم.
                تو AVR شما می تونید یه برنامه برای BootLoader بنویسید که با پروتکل دلخواه شما داده ها رو از هر پورتی که دوست داشت میخونه و شروع می کنه از خانه اول حافظه دونه دونه دخیره کردن تو فلش. حالا خود این برنامه انتهای فلش قرار داره و خودش نمیتونه به خودش صدمه بزنه. اگه بخواید از این قابلیت استفاده کنید باید برنامه BootLoader رو در آی سی پروگرام کنید و بعدش فیوز بیتها رو یه دستکاری کوچیک کنید و بعد از اون دیگه نباید با پروگرامر میکرو رو پروگرام کنید. بلکه با برنامه هایی که خودتون نوشتید یا شرکتها می نویسن فایل hex برنامه اصلی رو با هر پورتی که دوست داشتید (UART, SPI,..) به آی سی میفرستید و ...
                بت در بغل و به سجده پیشانی ما کافر زده خنده بر مسلمانی ما
                اسلام به ذات خود ندارد عیبی هر عیب که هست در این مسلمانی ماست

                دیدگاه


                  #9
                  پاسخ : پروگرامر بیسیم برای avr

                  سلام
                  میتونی از ماژولهای RF با ورودی و خروجی استفاده کنی.
                  فقط کافیه از سمت پروگرمر فرستنده رو به پایه هاش وصل کنی و از سمت میکروی برای پروگرم باید پینهای گیرنده رو به پینهای برنامه ریزی میکرو متصل کنی.
                  البته اینقدر هم که گفتم ساده نیست یه چیزهایی رو اول باید تست کنی بعد
                  خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

                  دیدگاه


                    #10
                    پاسخ : پروگرامر بیسیم برای avr

                    نوشته اصلی توسط علیرضا خلیلی
                    سلام

                    من با بسکام کار می کنم اگه برنامه ش به درد می خوره بگو بزارم

                    در مورد کد ویژن کتاب پرتویی فر ، بوت لودر کامل توضیح داده.
                    یه سرچ تو انجمن بی نتیجه نیست.

                    موفق باشی

                    سلام دوست عزیز
                    لطف کنید اطلاعات و برنامه های مورد نظر را در سایت قرار دهید
                    متشکرم :bye
                    کمتر سخن گویم
                    بیشتر عمل کنیم

                    دیدگاه


                      #11
                      پاسخ : پروگرامر بیسیم برای avr

                      سلام

                      ['This sample will be extended to support other chips with bootloader

                      'The loader is supported from the IDE



                      '$regfile = "m88def.dat"

                      'Const Loader = 88



                      '$regfile = "m32def.dat"

                      'Const Loaderchip = 32





                      '$regfile = "m88def.dat"

                      'Const Loaderchip = 88



                      $regfile = "m162def.dat"

                      Const Loaderchip = 162





                      #if Loaderchip = 88 'Mega88

                      $loader = $c00 'this address you can find in the datasheet

                      'the loader address is the same as the boot vector address

                      Const Maxwordbit = 5

                      Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0

                      #endif

                      #if Loaderchip = 32 ' Mega32

                      $loader = $3c00 ' 1024 words

                      Const Maxwordbit = 6 'Z6 is maximum bit '

                      Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0

                      #endif

                      #if Loaderchip = 8 ' Mega8

                      $loader = $c00 ' 1024 words

                      Const Maxwordbit = 5 'Z5 is maximum bit '

                      Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0

                      #endif

                      #if Loaderchip = 161 ' Mega161

                      $loader = $1e00 ' 1024 words

                      Const Maxwordbit = 6 'Z5 is maximum bit '

                      #endif

                      #if Loaderchip = 162 ' Mega162

                      $loader = $1c00 ' 1024 words

                      Const Maxwordbit = 6 'Z5 is maximum bit '

                      Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0

                      #endif







                      Const Maxword =(2 ^ Maxwordbit) * 2 '128

                      Const Maxwordshift = Maxwordbit + 1





                      $crystal = 8000000

                      '$crystal = 14745600

                      $baud = 57600 'this loader uses serial com

                      'It is VERY IMPORTANT that the baud rate matches the one of the boot loader



                      'do not try to use buffered com as we can not use interrupts



                      'Dim the used variables

                      Dim Bstatus As Byte , Bretries As Byte , Bblock As Byte , Bblocklocal As Byte

                      Dim Bcsum1 As Byte , Bcsum2 As Byte , Buf(128) As Byte , Csum As Byte

                      Dim J As Byte , Spmcrval As Byte ' self program command byte value



                      Dim Z As Word 'this is the Z pointer word

                      Dim Vl As Byte , Vh As Byte ' these bytes are used for the data values

                      Dim Wrd As Byte , Page As Byte 'these vars contain the page and word address

                      'Mega 88 : 32 words, 128 pages







                      Disable Interrupts 'we do not use ints





                      Waitms 1000 'wait 1 sec

                      'We start with receiving a file. The PC must send this binary file



                      'some constants used in serial com

                      Const Nak = &H15

                      Const Ack = &H06

                      Const Can = &H18



                      'we use some leds as indication in this sample , you might want to remove it

                      Config Portb = Output

                      Portb = 255 'the stk200 has inverted logic for the leds



                      '$timeout = 1000000 'we use a timeout

                      $timeout = 1000000 'we use a timeout



                      'Do

                      Bstatus = Waitkey() 'wait for the loader to send a byte

                      Print Chr(bstatus);

                      If Bstatus = 123 Then 'did we received value 123 ?

                      Goto Loader

                      End If

                      'Loop



                      For J = 1 To 10 'this is a simple indication that we start the normal reset vector

                      Toggle Portb : Waitms 100

                      Next



                      Goto _reset 'goto the normal reset vector at address 0





                      'this is the loader routine. It is a Xmodem-checksum reception routine

                      Loader:

                      For J = 1 To 3 'this is a simple indication that we start the normal reset vector

                      Toggle Portb : Waitms 500

                      Next



                      Spmcrval = 3 : Gosub Do_spm ' erase the first page

                      Spmcrval = 17 : Gosub Do_spm ' re-enable page





                      Bretries = 10 'number of retries

                      Do

                      Csum = 0 'checksum is 0 when we start

                      Print Chr(nak); ' firt time send a nack

                      Do

                      Bstatus = Waitkey() 'wait for statuse byte

                      Select Case Bstatus

                      Case 1: ' start of heading, PC is ready to send

                      Incr Bblocklocal 'increase local block count

                      Csum = 1 'checksum is 1

                      Bblock = Waitkey() : Csum = Csum + Bblock 'get block

                      Bcsum1 = Waitkey() : Csum = Csum + Bcsum1 'get checksum first byte

                      For J = 1 To 128 'get 128 bytes

                      Buf(j) = Waitkey() : Csum = Csum + Buf(j)

                      Next

                      Bcsum2 = Waitkey() 'get second checksum byte

                      If Bblocklocal = Bblock Then 'are the blocks the same?

                      If Bcsum2 = Csum Then 'is the checksum the same?

                      Gosub Writepage 'yes go write the page

                      Print Chr(ack); 'acknowledge

                      Else 'no match so send nak

                      Print Chr(nak);

                      End If

                      Else

                      Print Chr(nak); 'blocks do not match

                      End If

                      Case 4: ' end of transmission , file is transmitted

                      Print Chr(ack); ' send ack and ready



                      Portb.3 = 0 ' simple indication that we are finished and ok

                      Goto _reset ' start new program

                      Case &H18: ' PC aborts transmission

                      Goto _reset ' ready



                      Case Else

                      Exit Do ' no valid data

                      End Select

                      Loop

                      If Bretries > 0 Then 'attempte left?

                      Waitms 1000

                      Decr Bretries 'decrease attempts

                      Else

                      Goto _reset 'reset chip

                      End If

                      Loop







                      'write one or more pages

                      Writepage:

                      For J = 1 To 128 Step 2 'we write 2 bytes into a page

                      Vl = Buf(j) : Vh = Buf(j + 1) 'get Low and High bytes

                      lds r0, {vl} 'store them into r0 and r1 registers

                      lds r1, {vh}

                      Spmcrval = 1 : Gosub Do_spm 'write value into page at word address

                      Wrd = Wrd + 2 ' word address increases with 2 because LS bit of Z is not used

                      If Wrd = Maxword Then ' page is full

                      Wrd = 0 'Z pointer needs wrd to be 0

                      Spmcrval = 5 : Gosub Do_spm 'write page

                      Page = Page + 1 'next page

                      Spmcrval = 3 : Gosub Do_spm ' erase next page

                      Spmcrval = 17 : Gosub Do_spm ' re-enable page

                      End If

                      Next

                      Toggle Portb.2 : Waitms 10 : Toggle Portb.2 'indication that we write

                      Return





                      Do_spm:

                      Bitwait Spmcsr.selfprgen , Reset ' check for previous SPM complete

                      Bitwait Eecr.eepe , Reset 'wait for eeprom



                      Z = Page 'make equal to page

                      Shift Z , Left , Maxwordshift 'shift to proper place

                      Z = Z + Wrd 'add word

                      lds r30,{Z}

                      lds r31,{Z+1}



                      Spmcsr = Spmcrval 'assign register

                      spm 'this is an asm instruction

                      nop

                      nop

                      Return



                      1- این برنامه رو کامپایل کن و میکروتو پروگرم کن
                      2-از داخل لیست پروگرمر ها MCS Bootloader رو انتخاب کم

                      3-برنامه مورد نظر خودتو کامپایل کن و F4 بزنی میکروت پروگرم می شه

                      مدار MCS Bootloader با یه دونه MAX232 حله.
                      زندگی یه فرصته

                      دیدگاه


                        #12
                        پاسخ : پروگرامر بیسیم برای avr

                        دوست عزیز آقای علیرضا خلیلی
                        از جواب شما کمال تشکر میکنم :rolleyes:
                        سعی میکنم این را با سی بنویسم اگر شما و یا دوستان دیگر نمونه برنامه ای پیدا کردید( با کدویژن) ممنون میشوم آن را در این تایپ قرار دهید :bye
                        کمتر سخن گویم
                        بیشتر عمل کنیم

                        دیدگاه


                          #13
                          پاسخ : پروگرامر بیسیم برای avr

                          سلام

                          قابل توجه اساتید کدویژن :NO:
                          http://www.cmeter.org/CVmegaload

                          یک نگاه داشته باشید و هر چه متوجه شدید در همین تایپ لطفا با مثالی کوچک شرح دهید.

                          راستی کسی میداند max485 با sn75176 چه تفاوتی دارد ؟ اگر هر دو مثل همند چرا تفاوت قیمت زیادی با هم دارند؟
                          کمتر سخن گویم
                          بیشتر عمل کنیم

                          دیدگاه


                            #14
                            پاسخ : پروگرامر بیسیم برای avr

                            دوست عزیز مشکل اینجاست که شما می خواهید بی سیم کار کنید. این یعنی احتمال خطای بایتها زیاده و تو هیچ کدوم از این برنامه برای رفع خطا کاری نکردن.
                            چرا راه دور می رید؟
                            خود اتمل مثال داره به شماره avr109 :
                            فایل های ضمیمه مثال
                            PDF For AVR109

                            تمام مثالهای اتمل

                            یه سایتی که این مثال رو راحت تر توضیح داده

                            باید یه پروژه تو سایت تعریف کنیم در این باره. اگه قصد کرده باشید یه پروگرامر jtag بسازید می بینید که تو فرآیند ساخت باید یه برنامه bootLoader رو پروگرام کنید و سپس فایل اصلی رو با برنامه avr prog بزنید توش. این برنامه avr prog خیلی ضعیفه و وقتی با سیم وصله 2-3 بار حداقل باید سعی کنید تا بتونه بدون خطا کار رو تموم کنه، چه برسه به وقتی که بخواد بی سیم بشه
                            بت در بغل و به سجده پیشانی ما کافر زده خنده بر مسلمانی ما
                            اسلام به ذات خود ندارد عیبی هر عیب که هست در این مسلمانی ماست

                            دیدگاه


                              #15
                              پاسخ : پروگرامر بیسیم برای avr

                              سلام به تمام دوستان
                              یه مشکل کوچیک با uart در بیسکام دارم من چند تا mega8 و mega32 دارم که توی هرکدوم 6 تا uart نرم افزاری تعریف شده بصورت ورودی و 1 کی هم بصورت خروجی و یه سری متغیر باید بین این میکرو ها منتقل بشه که همه از نوع single هستند این متغیر مثلا از میکرو اول به میکرو دوم می ره اونجا پردازش می شه و مجددا به میکرو بعدی میره یه جوری همه به هم وصل هستند که خروجی هر کدوم به قبلی وابسته است تا اینجا همه چیز خیلی خوب کار می کنه و در کل شبکه میکرو ها اطلاعات نتقل میشه حالا می خوام از آخری به اولی یه اتصال دیگه بدم ولی چون این خروجی میکرو آخر زمانی ایجاد میشه که میکرو اول یه عددی رو روی شبکه میکرو ها بنویسه و بیاد تا بره آخر و دوباره برگرده و میکرو اول درگیر میشه با خروجی میکرو آخر یه جورایی این دوتا با هم دعواشون میشه جفتشون قهر می کنند و هیچ کدوم اطلاعات نمی فرستند
                              حالا سوالات :
                              اول از همه نقش بافر چیه بافر می تونه زمانی که میکرو داره یه کار دیگه انجام میده اطلاعات رو از روی خط بگیره . بعدش بریزه توی یه متغیر و اصلا بافر می تونه به من کمک کنه
                              هر کاری کردم نتونستم پرش در هنگام وقفه میکرو رو توی بیسکام فعال کنم
                              این دستوراتشه
                              Enable Interrupts

                              Enable Urxc

                              Config Serialin = Buffered , Size = 32

                              On Urxc Lable11

                              بافر با دستور پرش هم زمان کار نمی کنه و یکی از اونا باید باشه یعنی یا OnURXC یا config serialin
                              help meeeeeeeeeee

                              دیدگاه

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