اطلاعیه

Collapse
No announcement yet.

اموزش DSP

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

    #76
    پاسخ : اموزش DSP

    **************
    DEC loc16 :

    این دستور 1 واحد از محتوای ادرس اشاره شده کم می کند.
    Example ; VarA = VarA − 1;
    DEC @VarA ; Decrement contents of VarA

    INC loc16 :

    این دستور یک واحد به محتوای ادرس اشاره شده اضافه می کند.

    FLIP AX :
    این دستور مکان بیتهای رجیستر AX را با هم عوض می کند .
    temp = AX;
    AX(bit 0) = temp(bit 15);
    AX(bit 1) = temp(bit 14);
    .
    .
    AX(bit 14) = temp(bit 1);
    AX(bit 15) = temp(bit 0);

    ; Flip the contents of 32-bit variable VarA:
    MOV AH,@VarA+0 ; Load AH with low 16 bits of VarA
    MOV AL,@VarA+1 ; Load AL with high 16 bits of VarA
    FLIP AL ; Flip contents of AL
    FLIP AH ; Flip contents of AH
    MOVL @VarA,ACC ; Store 32-bit result in VarA

    ZALR ACC,loc16 :
    این دستور 16 بیت پایین ACC را با مقدار 0x800 و 16 بیت بالا را با محتوای ادرس اشاره شده پر می کند.
    AH = [loc16];
    AL = 0x8000;

    ; Calculate: Y = round(M*X << 1 + B << 16)
    ; Y, M, X, B are all Q15 numbers
    SPM +1 ; Set product shift mode to << 1
    MOV T,@M ; T = M (Q15)
    MPY P,T,@X ; P = M * X (Q30)
    ZALR ACC,@B ; ACC = B << 16 + 0x8000 (Q31)
    ADDL ACC,P << PM ; Add P to ACC with shift (Q31)
    MOV @Y,AH ; Store AH into Y (Q15)

    CSB ACC :
    این دستور بیتهای علامت را در رجیستر ACC با تعیین تقدم صفرها یا یکها در رجیستر ACC می شمارد و نتیجه را با کسر عدد یک از ان در رجیستر T قرار می دهد.
    T = 0, 1 sign bit
    T = 1, 2 sign bits
    .
    .
    T = 31, 32 sign bits

    عملیات شمارش بیتهای علامت اغلب برای عملیات نرمالیزه کردن استفاده می شود همچنیین برای الگوریتمهایی مانند محاسبه جذر یک عدد،محاسبه وارون یک عدد یا جستجو برای اولین بیت یک در یک کلمه استفاده می شود.
    ; Normalize the contents of VarA:
    MOVL ACC,@VarA ; Load ACC with contents of VarA
    CSB ACC ; Count sign bits
    LSLL ACC,T ; Logical shift left ACC by T(4:0)
    MOVL @VarA,ACC ; Store result into VarA
    http://www.eca.ir/forum2/index.php/topic,10159.0.html
    Engineering is the art of making what you want from things you can get.
    اموزش DSP ...........................
    http://www.eca.ir/forum2/index.php?topic=29824.0
    http://www.eca.ir/forum2/index.php?topic=32324.0

    دیدگاه


      #77
      پاسخ : اموزش DSP

      سلام دوستان این پست اخرین سری از دستورات اسمبلی 2812 است...........

      NORM ACC,XARn++ :
      NORM ACC,XARN-- :

      این دستور محتوای علامت دار ACC را نرمالیزه و رجیستر کمکی را اصلاح می کند.

      if(ACC != 0x0000 0000)
      {
      if((ACC(31) XOR ACC(30)) = 0)
      {
      ACC = ACC << 1, TC = 0;
      if(XARn++ addressing mode) XARn += 1;
      if(XARn−− addressing mode) XARn −= 1;
      }
      else
      TC = 1;
      }
      else
      TC = 1;


      ; Normalize the contents of VarA,
      ; XAR2 will contain shift value at the end of the operation:
      MOVL ACC,@VarA ; ACC = VarA
      MOVB XAR2,#0 ; Initialize XAR2 to zero
      SBF Skip,EQ ; Skip if ACC value is zero
      RPT #31 ; Repeat next operation 32 times
      ||NORM ACC,XAR2++ ; Normalize contents of ACC
      Skip:

      NORM ACC,*

      NORM ACC,*++
      NORM ACC,*--
      NORM ACC,*0++
      NORM ACC,*0--

      این دستور نیز محتوای علامت دار رجیستر ACC را نرمالیزه کرده و رجیستر کمکی اشاره شده با ادرس دهی غیر مستقیم توسط اشاره گر رجیستر کمکی ARP را تصحیح می کند.

      دستور NORM یک عدد علامت دار در رجیستر ACC را با پیدا کردن اندازه عدد نرمالیزه می کند.یک XOR روی بیت 31 و 30 رجیستر ACC انجام می شود.اگر بیتها یکسان باشند محتوای رجیستر ACC یک واحد به چپ شیفت پیدا می کندتا بیت علامت اضافی را حذف و اشاره گر انتخاب شده را نیز اصلاح کند.اگر بیتها متفاوت باشند،ACC شیفت پیدا نمی کند و اشاره گر انتخای شده نیز تغییری نمی کند.اشاره گرر انتخای شده به هیچ مکانی از حافظه دسترسی ندارد.

      ; Normalize the contents of VarA,
      ; XAR2 will contain shift value at the end of the operation:
      MOVL ACC,@VarA ; ACC = VarA
      MOVB XAR2,#0 ; Initialize XAR2 to zero
      NOP *,ARP2 ; Set ARP pointer to point to XAR2
      SBF Skip,EQ ; Skip if ACC value is zero
      RPT #31 ; Repeat next operation 32 times
      ||NORM ACC,*++ ; Normalize contents of ACC
      Skip:

      ROL ACC :
      این دستور محتوای رجیستر را یک بیت به سمت چپ می چرخاند،بیت صفر با محتوای پرچم کری و پرچم کری با بیت شیفت داده شده به بیرون پر می شود.

      ; Rotate contents of VarA left by 5:
      MOVL ACC,@VarA ; ACC = VarA
      RPT #4 ; Repeat next instruction 5 times
      ||ROL ACC ; Rotate ACC left
      MOVL @VarA,ACC ; Store result into VarA

      ROR ACC :

      این دستور نیز همانند دستور قبل عمل می کند منتها مقدار داخل ACC را به راست شیفت می دهد.

      ; Rotate contents of VarA right by 5:
      MOVL ACC,@VarA ; ACC = VarA
      RPT #4 ; Repeat next instruction 5 times
      ||ROR ACC ; Rotate ACC right
      MOVL @VarA,ACC ; Store result into VarA

      SFR ACC,#1..16 :

      این دستور محتوای رجیستر ACC را به سمت راست شیفت می دهدنوع شیفت (منطقی یا حسابی ) به وسیله حالت بیت گسترش بیت علامت تعیین می شود (SXM) .

      if(SXM = 1) // sign extension mode enabled
      ACC = S:ACC >> shift value; // arithmetic shift right
      else //sign extension mode disabled
      ACC = 0:ACC >> shift value; // logical shift right

      Arithmetic shift right contents of VarA by 10:
      MOVL ACC,@VarA ; ACC = VarA
      SETC SXM ; Enable sign extension mode
      SFR ACC,#10 ; Arithmetic shift right ACC by 10
      MOVL @VarA,ACC ; Store result into VarA

      SFR ACC,T :

      این دستور نیز مانند دستور قبل می باشد با این تفاوت که مقدار شیفت را 4 بیت پایین رجیستر T تعیین می کنند.

      if(SXM = 1) // sign extension mode enabled
      ACC = S:ACC >> T(3:0); // arithmetic shift right
      else // sign extension mode disabled
      ACC = 0:ACC >> T(3:0); // logical shift right

      ; Arithmetic shift right contents of VarA by VarB:
      MOVL ACC,@VarA ; ACC = VarA
      MOV T,@VarB ; T = VarB (shift value)
      SETC SXM ; Enable sign extension mode
      SFR ACC,T ; Arithmetic shift right ACC by T(3:0)
      MOVL @VarA,ACC ; Store result into VarA

      SAT ACC :
      این دستور مقدار رجیستر ACC را با توجه به محتوای رجیستر OVC اشباع مثبت یا منفی می کند.

      if( OVC > 0 )
      ACC = 0x7FFF FFFF;
      V = 1;
      if( OVC < 0 )
      ACC = 0x8000 0000;
      V = 1;
      if( OVC = 0 )
      ACC = unchanged;
      OVC = 0;


      ; Add VarA, VarB and VarC and saturate result and store in VarD:
      ZAP OVC ; Clear overflow counter
      MOVL ACC,@VarA ; Load ACC with contents of VarA
      ADDL ACC,@VarB ; Add to ACC contents of VarB
      ADDL ACC,@VarC ; Add to ACC contents of VarC
      SAT ACC ; Saturate ACC based on OVC value
      MOVL @VarD,ACC ; Store result into VarD

      SAT64 ACC:P :

      این دستور نیز مانند دستور قبلی ولی 64 بیتی می باشد.

      if(OVC > 0)
      ACC:P = 0x7FFF FFFF FFFF FFFF;
      V=1;
      if(OVC < 0)
      ACC:P = 0x8000 0000 0000 0000;
      V=1;
      if(OVC = 0)
      ACC:P = unchaged;
      OVC = 0;

      ; Add 64-bit VarA, VarB and VarC, sat and store result in VarD:
      ZAP OVC ; Clear overflow counter
      MOVL P,@VarA+0 ; Load P with low 32-bits of VarA
      ADDUL P,@VarB+0 ; Add to P unsigned low 32-bits of VarB
      ADDUL P,@VarC+0 ; Add to P unsigned low 32-bits of VarC
      MOVU @AL,OVC ; Store overlow (repeated carry) in the ACC
      ; and then add higher portion of the 64 bit
      ; variables
      MOVB AH,#0 ; Store overlow (repeated carry) in the ACC
      ; and then add higher portion of the 64 bit
      ; variables
      ZAP OVC ; Clear overflow counter
      ADDL ACC,@VarA+2 ; Add to ACC with carry high 32-bits of VarA
      ADDL ACC,@VarB+2 ; Add to ACC with carry high 32-bits of VarB
      ADDL ACC,@VarC+2 ; Add to ACC with carry high 32-bits of VarC
      SAT64 ACC:P ; Saturate ACC:P based on OVC value
      MOVL @VarD+0,P ; Store low 32-bit result into VarD
      MOVL @VarD+2,ACC ; Store high 32-bit result into VarD

      TBIT loc16,#16bit :
      این دستور بیت مشخص شده در رجیستر اشاره شده را تست می کند.

      TC = [loc16(bit)];

      ; if( VarA.Bit4 = 1 )
      ; VarB.Bit6 = 1;
      ; else
      ; VarB.Bit6 = 0;
      TBIT @VarA,#4 ; Test bit 4 of VarA contents
      SB $10,NTC ; Branch if TC = 0
      TSET @VarB,#6 ; Set bit 6 of VarB contents
      SB $20,UNC ; Branch unconditionally
      $10: ;
      TCLR @VarB,#6 ; Clear bit 6 of VarB contents
      $20: ;

      TBIT loc16,T :

      در این دستور بیت مور ازمایش توسط 4 بیت پایین رجیستر T تعیین می شود.

      bit = 15 − T(3:0);
      TC = [loc16(bit)];

      مقدار 15 در رجیستر برابر با بیت صفر می باشد یک مقدار صفر نیز در رجیستر T برابر مقدار 15 می باشد.
      این دستور رور پرچم TC تاثیر می گذارد.

      ; if( VarA.VarB = 1 )
      ; VarC.Bit6 = 1;
      ; else
      ; VarC.Bit6 = 0;
      MOV T,@VarB ; Load T with bit value in VarB
      ADD @T,#15 ; Reverse order of bit testing
      TBIT @VarA,T ; Test bit of VarA selected by VarB
      SB $10,NTC ; Branch if TC = 0
      TSET @VarB,#6 ; Set bit 6 of VarB contents
      SB $20,UNC ; Branch unconditionally
      $10: ;
      TCLR @VarB,#6 ; Clear bit 6 of VarB contents
      $20:

      TCLR loc16,#BIT :

      این دستور بیت مورد نظر در ادرس اشاره شده را پاک می کند.

      TC = [loc16(bit)];
      [loc16(bit)] = 0;

      ; if( VarA.Bit4 = 1 )
      ; VarB.Bit6 = 1;
      ; else
      ; VarB.Bit6 = 0;
      TBIT @VarA,#4 ; Test bit 4 of VarA contents
      SB $10,NTC ; Branch if TC = 0
      TSET @VarB,#6 ; Set bit 6 of VarB contents
      SB $20,UNC ; Branch unconditionally
      $10: ;
      TCLR @VarB,#6 ; Clear bit 6 of VarB contents
      $20:

      TEST ACC :

      این دستور مقدار ACC را با صفر مقایسه می کند و بیت های پرچم متناظر را تغییر می دهد.

      Modify flags on (ACC − 0x00000000);

      ; Test contents of ACC and branch if zero:
      TEST ACC ; Modify flags on (ACC − 0x00000000)
      SB Zero,EQ ; Branch if zero

      TRAP #VectorNumber :

      این دستور کنترل برنامه را به روال سرویس وقفه متناطر با بردار تعیین شده در دستور انتقال می دهد.این دستور بدون در نظر گرفتن بیتهای متناظر انتخاب شده در رجیستر های IER و IFR عمل می کند.این دستور همچنین تحت تاثیر بیت INTM در رجیستر ST1 نیز قرار نمی گیرد.هنگامیکه این دستور به فاز کد گشایی خط لوله برسد به وقفه های سخت افزاری تا پایان اجرای دستور TRAP سرویس دهی نمی شود.


      0 RESET 16 RTOSINT
      1 INT1 17 Reserved
      2 INT2 18 NMI
      3 INT3 19 ILLEGAL
      4 INT4 20 USER1
      5 INT5 21 USER2
      6 INT6 22 USER3
      7 INT7 23 USER4
      8 INT8 24 USER5
      9 INT9 25 USER6
      10 INT10 26 USER7
      11 INT11 27 USER8
      12 INT12 28 USER9
      13 INT13 29 USER10
      14 INT14 30 USER11
      15 DLOGINT 31 USER12

      این دستور نباید هنگامیکه PIE فعال است از بردار های وقفه 1 تا 12 استفاده کند.

      Flush the pipeline;
      temp = PC + 1;
      Fetch specified vector;
      SP = SP + 1;
      [SP] = T:ST0;
      SP = SP + 2;
      [SP] = AH:AL;
      SP = SP + 2;
      [SP] = PH:PL;
      SP = SP + 2;
      [SP] = AR1:AR0;
      SP = SP + 2;
      [SP] = DP:ST1;
      SP = SP + 2;
      [SP] = DBGSTAT:IER;
      SP = SP + 2;
      [SP] = temp;
      INTM = 0; // disable INT1−INT14, DLOGINT, RTOSINT
      DBGM = 1; // disable debug events
      EALLOW = 0; // disable access to emulation registers
      LOOP = 0; // clear loop flag
      IDLESTAT = 0; // clear idle flag
      PC = fetched vector;


      IN loc16,*(PA) :
      این دستور ادرس اشاره شده را با محتوای مکان I/O اشاره شده به وسیله "*(PA)" پر می کند.

      [loc16] = IOspace[PA];

      فضای I/O به 64K در رنج 0x0000-0xFFFF محدود می باشد.در واسط خارجی (XINTF) سیگنال XIS در طی عملیات مرتب تغییر وضعیت می دهد.ادرس I/O رو 16 خط پایین XINTF ظاهر می شود. و ادرس های بالا صفر می باشند.ئ داده از روی 16 خط داده خوانده می شود.

      ; IORegA address = 0x0300;
      ; IOREgB address = 0x0301;
      ; IOREgC address = 0x0302;
      ; IORegA = 0x0000;
      ; IORegB = 0x0400;
      ; IORegC = VarA;
      ; if( IORegC = 0x2000 )
      ; IORegC = 0x0000;
      IORegA .set 0x0300 ; Define IORegA address
      IORegB .set 0x0301 ; Define IORegB address
      IORegC .set 0x0302 ; Define IORegC address
      MOV @AL,#0 ; AL = 0
      UOUT *(IORegA),@AL ; IOspace[IORegA] = AL
      MOV @AL,#0x0400 ; AL = 0x0400
      UOUT *(IORegB),@AL ; IOspace[IORegB] = AL
      OUT *(IORegC),@VarA ; IOspace[IORegC] = VarA
      IN @AL,*(IORegC) ; AL = IOspace[IORegC]
      CMP @AL,#0x2000 ; Set flags on (AL − 0x2000)
      SB $10,NEQ ; Branch if not equal
      MOV @AL,#0 ; AL = 0
      UOUT *(IORegC),@AL ; IOspace[IORegC] = AL
      $10:

      OUT *(PA),loc16 :

      این دستور مقدار 16 بیتی موجود در ادرس اشاره شده را در فضای I/O که ادرس ان به وسیله "*(PA)" تعیین می شود قرار می دهد.

      IOspace[0x0000PA] = [loc16];

      ; IORegA address = 0x0300;
      ; IOREgB address = 0x0301;
      ; IOREgC address = 0x0302;
      ; IORegA = 0x0000;
      ; IORegB = 0x0400;
      ; IORegC = VarA;
      ; if( IORegC = 0x2000 )
      ; IORegC = 0x0000;
      IORegA .set 0x0300 ; Define IORegA address
      IORegB .set 0x0301 ; Define IORegB address
      IORegC .set 0x0302 ; Define IORegC address
      MOV @AL,#0 ; AL = 0
      UOUT *(IORegA),@AL ; IOspace[IORegA] = AL
      MOV @AL,#0x0400 ; AL = 0x0400
      UOUT *(IORegB),@AL ; IOspace[IORegB] = AL
      OUT *(IORegC),@VarA ; IOspace[IORegC] = VarA
      IN @AL,*(IORegC) ; AL = IOspace[IORegC]
      CMP @AL,#0x2000 ; Set flags on (AL − 0x2000)
      SB $10,NEQ ; Branch if not equal
      MOV @AL,#0 ; AL = 0
      UOUT *(IORegC),@AL ; IOspace[IORegC] = AL
      $10:

      UOUT *(PA),loc16 :

      این دستور مانند دستور قبلی می باشد با این تفاوت که اگر بلافاصله بعد از این دستور از دستور IN استفاده کنید ابتدا دستور IN انجام می شود همچنین این دستور قابل تکرار نیز می باشد.

      ; IORegA address = 0x0300;
      ; IOREgB address = 0x0301;
      ; IOREgC address = 0x0302;
      ; IORegA = 0x0000;
      ; IORegB = 0x0400;
      ; IORegC = VarA;
      ; if( IORegC = 0x2000 )
      ; IORegC = 0x0000;
      IORegA .set 0x0300 ; Define IORegA address
      IORegB .set 0x0301 ; Define IORegB address
      IORegC .set 0x0302 ; Define IORegC address
      MOV @AL,#0 ; AL = 0
      UOUT *(IORegA),@AL ; IOspace[IORegA] = AL
      MOV @AL,#0x0400 ; AL = 0x0400
      UOUT *(IORegB),@AL ; IOspace[IORegB] = AL
      OUT *(IORegC),@
      VarA
      ; IOspace[IORegC] = VarA
      IN @AL,*(IORegC) ; AL = IOspace[IORegC]
      CMP @AL,#0x2000 ; Set flags on (AL − 0x2000)
      SB $10,NEQ ; Branch if not equal
      MOV @AL,#0 ; AL = 0
      UOUT *(IORegC),@AL ; IOspace[IORegC] = AL
      $10:

      PREAD loc16,*XAR7 :

      این دستور مکان ادرس اشاره شده در فضای داده به وسیله loc16 را با محتوای مکان اشاره شده در حافظه برنامه به وسیله XAR7 پر می کند.
      [loc16] = Prog[*XAR7];

      ; Copy the contents of Array1 to Array2:
      ; int16 Array1[N]
      ; // Located in program space
      ; int16 Array [N]
      ; // Located in data space
      ; for(i=0; i N; i++)
      ; Array2[i] = Array1[i];
      MOVL XAR7,#Array1 ; XAR7 = pointer to Array1
      MOVL XAR2,#Array2 ; XAR2 = pointer to Array2
      RPT #(N−1) ; Repeat next instruction N times
      ||PREAD *XAR2++,*XAR7 ; Array2[i] = Array1[i],
      ; i++

      PWRITE *XAR7,loc16 :

      این دستور مکان حافظه برنامه اشاره شده به وسیله XAR7 را با محتوای ادرس اشاره شده به وسیله "loc16" پر می کند.

      Prog[*XAR7] = [loc16];

      ; Copy the contents of Array1 to Array2:
      ; int16 Array1[N]; // Located in data space
      ; int16 Array2[N]; // Located in program space
      ; for(i=0; i < N; i++)
      ; Array2[i] = Array1[i];
      MOVL XAR2,#Array1 ; XAR2 = pointer to Array1
      MOVL XAR7,#Array2 ; XAR7 = pointer to Array2
      RPT #(N−1) ; Repeat next instruction N times
      ||PWRITE *XAR7,*XAR2++ ; Array2[i] = Array1[i],
      ; i++
      http://www.eca.ir/forum2/index.php/topic,10159.0.html
      Engineering is the art of making what you want from things you can get.
      اموزش DSP ...........................
      http://www.eca.ir/forum2/index.php?topic=29824.0
      http://www.eca.ir/forum2/index.php?topic=32324.0

      دیدگاه


        #78
        پاسخ : اموزش DSP

        به قول شاعر که میگه:
        به پایان امد این دفتر حکایت همچنان باقیست...............به صد دفتر نشاید گفت حسب الحال TMS320F2812

        حکایت این دفتر هم تموم شد دیگه هر کمی و کاستی بود به بزرگی خودتون ببخشید سواد من در همین حد بود انشاالله تو دفتر بعدی که کار با CCSV3.3 اموزش می دم جبران کنم.

        وسلام...........
        http://www.eca.ir/forum2/index.php/topic,10159.0.html
        Engineering is the art of making what you want from things you can get.
        اموزش DSP ...........................
        http://www.eca.ir/forum2/index.php?topic=29824.0
        http://www.eca.ir/forum2/index.php?topic=32324.0

        دیدگاه


          #79
          پاسخ : اموزش DSP

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

          پیروز و سربلند باشید.
          آدمی از عالم خاکی نمی آید بدست

          عالمی دیگر بباید ساخت و از نو آدمی
          پردازش تصویر با FPGA از صفر تا انتها
          http://www.eca.ir/forum2/index.php?topic=74299.0

          دیدگاه


            #80
            پاسخ : اموزش DSP

            سلام دوستان........
            بعد از یه مدت کوتاه می خوام بزودی اموزش ccs v3.3 رو شروع کنم امیدوارم دوستان علاقه مندهم کمک بکنند تا این اموزشها نتیجه مطلوب بده و همه بتونن ازش استفاده کنن.

            Will be comeback soooooooon
            http://www.eca.ir/forum2/index.php/topic,10159.0.html
            Engineering is the art of making what you want from things you can get.
            اموزش DSP ...........................
            http://www.eca.ir/forum2/index.php?topic=29824.0
            http://www.eca.ir/forum2/index.php?topic=32324.0

            دیدگاه


              #81
              پاسخ : اموزش DSP

              [quote author=پویا link=topic=29824.msg144491#msg144491 date=1248944074]
              سلام
              چند تا از پایه های مهم تراشه ای که می خواهیم یاد بگیریم رو مختصر توضیح می دم.
              اون بسته بندی که پایه هاش زیر تراشه قرار داره 179 پایه هست ولی اون مدلی که پایه ها از کنارند 176 پایه داره. توی دیتا شیت شماره های هر دو پایه و اسامی شان با هم فرق می کنند. به نظرم مدل 176 پایه عمومیت بیشتری داره که رو همون هم بحث می کنیم.
              چند تا پایه برای منبع تغذیه وجود داره که یکی از دوستان در سایت می گفت "فکر میکنم برای کاهش اثر نویز بر روی کار تراشه هست". منم یه نظری دارم که مطرح می کنم. من توی مداری که از 45 قطعه تشکیل شده بود چند جای مدار منیع تغذیه گذاشتم که مطمئن باشم جایی نقصانی وجود نداره که البته این هم قابل بحثه.

              پایه های منبع تغذیه VDD که مستقیما هسته تراشه رو تغذیه می کنند بدین قرارند (1.8 یا 1.9 ولت ):
              23-37-56-75-100-112-128-143-154

              پایه هایی که هم هسته و هم ورودی و خروجی رو تغذیه می کنند VSS:
              19-32-38-52-58-70-78-86-99-105-113-120-129-142-153

              پایه هایی که فقط ورودی و خروجی دیجیتال رو تغذیه می کنند VDDIO:
              31-64-81-114-145

              پایه ای که هسته Flash داخلی رو تغذیه می کنه VDD3VFL:
              69

              پایه های مهم دیگری هم هست مثلا برای ADC یا PWM که دیدم بهتره زیاد شلوغش نکنم تا سر فرصت بهش برسیم.

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

              پیروز و سربلند باشید.
              [/quote
              با عرض سلام و خسته نباشید خدمت همه دوستان
              من میخواستم بدونم pcb برای DSP ها چطوری زده میشه
              چه نکاتی باید رعایت بشه؟اگه نتونیم براش pcb بزنیم چه فایده؟
              هرچی من دیدم آموزش روی بردهای آموزشی بوده.

              دیدگاه


                #82
                پاسخ : اموزش DSP

                نوشته اصلی توسط ali833
                سلام دوستان........
                بعد از یه مدت کوتاه می خوام بزودی اموزش ccs v3.3 رو شروع کنم امیدوارم دوستان علاقه مندهم کمک بکنند تا این اموزشها نتیجه مطلوب بده و همه بتونن ازش استفاده کنن.

                Will be comeback soooooooon

                کار بسیار خوبی در زمینه ی آموزش برنامه نویسی بزبان اسمبلی برای dsp انجام داده ید
                با تشکر از زحمات شما
                در صورت امکان این قسمت را بصورت یک جزوه ی مجزا در آورید

                http://www.4shared.com/office/wspNnTsI/AMUZESH_JAMEE_MATLAB.html

                دیدگاه


                  #83
                  پاسخ : اموزش DSP


                  با سلام
                  تشکر می کنم از زحمتی که کشیدید؛
                  خواستم بپرسم برای برنامه نویسی به زبان C برای DSP آموزشی چیزی دارید؟ خودتون قصد ندارید آموزش بدید؟

                  با تشکر مجدد

                  دیدگاه


                    #84
                    پاسخ : اموزش DSP

                    یه سرچی در همین انجمن انجام بدی پیدا می کنی یادمه یکی از دوستان تو یه پست کامل گفته بود . ولی اگر که به c وارد باشی و باهاش تا حالا برنامه نوشتی خیلی سادست و خیلی زمان بر نیست .

                    من خودم یه 3 سال هست که جسته گوریخته روی dsp کار می کنم و یه 9 ماهی هم هست که برنامه می نویسم . خوشحال می شم کمکتون کنم .

                    دیدگاه


                      #85
                      پاسخ : اموزش DSP


                      تشکر می کنم کربلایی جون :rolleyes:
                      من با TMS320F28355 کار می کنم. البته جدیدا دو سه روزه تهیه کردیم. توی همین اول کاری یه سوال بپرسم اونم اینکه محیط برنامه نویسی برای این DSPها چه نرم افزاریه؟ منظورم اینه که مثلا توی AVR میای توی بسکام برنامه رو مینویسی و رفع ایراد میکنی بعدش با همون پروگرم میکنی به میکرو. حالا برای DSP این کار چجوریه؟ (البته DSP ما روی برد IDC28335DSKv2 سوار شده و یه امولاتور هم داره برای اتصال USP به کامپیوتر)
                      و اینکه متلب قابلیت پروگرم کردن DSP به صورت مستقیم رو داره یا نه؟ یعنی برنامه رو به زبان متلب یا سیمیولینک بنویسی و مستقیم با DSP ارتباط برقرار کنه و ترجمه شده برنامه خودشو به DSP بریزه.

                      ممنون میشم ولو کلی به سوالات بالا که خیلی گشتم جوابشو پیدا کنم ولی نتونستم، جواب بدی.
                      :nerd:

                      دیدگاه


                        #86
                        پاسخ : اموزش DSP

                        محیط برنامه نویسی dsp نرم افزار code composer studio یا ccs می باشد که ورژن 3.3 و 4 و جدیدا پنجش هم امده که ورژن 4 و 5 رو از سایت ti می تونی دانلود کنی ورژن 3.3 هم داخل سایت هست بگردی پیداش می کنی.
                        برای ارتباط با متلب هم باید از بردهای اورجینال استفاده کنید مثل بردهای ezdsp وامولاتور های سری 510 به بالا.
                        http://www.eca.ir/forum2/index.php/topic,10159.0.html
                        Engineering is the art of making what you want from things you can get.
                        اموزش DSP ...........................
                        http://www.eca.ir/forum2/index.php?topic=29824.0
                        http://www.eca.ir/forum2/index.php?topic=32324.0

                        دیدگاه


                          #87
                          پاسخ : اموزش DSP


                          علی جون ممنون از پاسخت؛
                          توی CCS هم زبان اسمبلی و هم سی میشه نوشت؟ اصلا میکروهای DSP چه زبان هایی را ساپورت می کنن؟ بیسیک رو هم ساپورت میکنن؟

                          دیدگاه


                            #88
                            پاسخ : اموزش DSP

                            توی CCS هم زبان اسمبلی و هم سی میشه نوشت؟
                            بله هر دو زبون رو میشه استفاده کرد.
                            بیسیک رو هم ساپورت میکنن؟
                            خیر زبون بیسیک رو ساپورت نمیکنه
                            http://www.eca.ir/forum2/index.php/topic,10159.0.html
                            Engineering is the art of making what you want from things you can get.
                            اموزش DSP ...........................
                            http://www.eca.ir/forum2/index.php?topic=29824.0
                            http://www.eca.ir/forum2/index.php?topic=32324.0

                            دیدگاه


                              #89
                              پاسخ : اموزش DSP

                              بابت در پاسخ دادنم ببخشید . همن الان رسیدم خونه.

                              استاد بنده و کسی که من از پست هاشون dsp رو شروع کردم به سولات شما جواب دادند ولی یه چندتا موضوع . یکی اینکه بردهای شما اگه اشتاه نکم مال iran dsp center هست . خود این شرکت هم یک سایت داره و هم یک فروم که پیشنهاد می کنم یه سر بزنی و عضو بشی .
                              دوم اینکه جدیدا داخل ساتش دیدم که نحوه استفاده از این برد ها و یا اصلا هر بردی که خودتون طراحی کنید رو با مطلب توضیح داده بود

                              این لینکه برد خودتون http://www.irandspcenter.com/fa/inde...&Itemid=48

                              و این هم لینک توضیح در مورد ارتباط با matlab
                              http://www.irandspcenter.com/fa/inde...&Itemid=51

                              اما توصیه می کنم که خودتون شروع به برنامه نویسی کنید و خیل دنبال انه بخواید از مطلب استفاده کنید نباشید .

                              باز هم اگر سوالی بود در خدمتم . البته من که در مقابل علی اقا هیچیم و انشا الله کمکتون می کنند .

                              راستی علی اقا کجایی یه تکونی دوباره به این قسمت بدی .

                              دیدگاه


                                #90
                                پاسخ : اموزش DSP


                                کربلایی، علی آقا ممنونم از پاسخ سریعتون؛
                                بله ما از ایران دی اس پی خریدیم. انجمن تخصصیشو ندیده بودم. ممنونم از راهنماییت. خدا بگم یه کربلا جمیعا نصیبمون کنه ایشاالله. :nice:
                                بذار کمی جلو برم. مشکلی بود بازم میپرسم.

                                دیدگاه

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