Zamanında Soun yaşadım yine yaşıyorum TI C2000

Başlatan Firzen, 13 Ekim 2015, 23:06:55

Firzen

Zamanında Pre-Sale diye aldığım 2 tane TI C2000 Piccolo Launchpad ile yine karşınıza geliyorum. Neden geliyorum yüksek lisansta hocam "Evet Genç Bu sene bir farklılık yapacağım bende TI DSP'lere geçeceğim bu seneki ana görevin CCStudio ile bir launchpad" programlamak dedi.

Bende gözümü kapatıp yorum yapmadan eve geldim ve CCStudio 5.2 yi kurup hazır örneklerini bile çalıştıramadım. O yüzden foruma yine bu soruyu sorayım dedim.

Yardımlarınız için şimdiden teşekkür ederim.
Kararsız...

batigol

Öncelikle elinizde yoksa controlsuite programının en güncel versiyonunu yükleyin. c2000 serileri için tüm header dosyaları, kütüphaneler, örnekler mevcut.
Hangi launchpad var elinizde hocam? f28027 mi?

Firzen

Alıntı yapılan: batigol - 13 Ekim 2015, 23:33:26
Öncelikle elinizde yoksa controlsuite programının en güncel versiyonunu yükleyin. c2000 serileri için tüm header dosyaları, kütüphaneler, örnekler mevcut.
Hangi launchpad var elinizde hocam? f28027 mi?

Hocam elimde hem F28027 hemde F28377S var.
Hazır kodu çalıştırıyorum hiçbir değişiklik olmuyor. Hata da vermiyor.
Kararsız...

batigol

CCStudio'ya hakim misiniz ilk kez mi kullanıyorsunuz? Adımları doğru yapıyor musunuz acaba? Projeyi bütün olarak import etmeniz lazım. Bunu TI resource Explorer menüsünden kolayca yapabilirsiniz hem tüm örnekler düzenli bir şekilde duruyor. Kodu attıktan sonra CCStudio otomatik debug menüsüne geçmesi lazım. Resume tuşuna bastığınızda kod yürütülür.

Örneklerin çalışmaması garip geliyor kitin tüm pwr ledleri yanıyor mu, jumperlar takılı mı? Ayrıca büyük bir anahtar var onun yukarıda olması lazım. Altındaki üç anahtarında yukarıda olması lazım onlara dikkat ettiniz mi?

Firzen

Alıntı yapılan: batigol - 14 Ekim 2015, 00:19:28
CCStudio'ya hakim misiniz ilk kez mi kullanıyorsunuz? Adımları doğru yapıyor musunuz acaba? Projeyi bütün olarak import etmeniz lazım. Bunu TI resource Explorer menüsünden kolayca yapabilirsiniz hem tüm örnekler düzenli bir şekilde duruyor. Kodu attıktan sonra CCStudio otomatik debug menüsüne geçmesi lazım. Resume tuşuna bastığınızda kod yürütülür.

Örneklerin çalışmaması garip geliyor kitin tüm pwr ledleri yanıyor mu, jumperlar takılı mı? Ayrıca büyük bir anahtar var onun yukarıda olması lazım. Altındaki üç anahtarında yukarıda olması lazım onlara dikkat ettiniz mi?
Evet kodu atıyorum bütün ledler yanık kalıyor garip bir biçimde siz hiç deneme yapma şansınız oldu mu?
Eğer böyle bir durum varsa teamviewerdan bir bağlantı sağlayabilir miyiz?
Kararsız...

batigol

Aktif olarak kullanıyorum f28027 launchpadi benzer bir sorun yaşamadım. Hangi örneği çalıştırıyorsunuz?
Malesef internetim yok hocam telefonun 128kbitlik edge internetini kullanıyorum bu sayfayı zor açıyor.

Firzen

Alıntı yapılan: batigol - 14 Ekim 2015, 00:52:59
Aktif olarak kullanıyorum f28027 launchpadi benzer bir sorun yaşamadım. Hangi örneği çalıştırıyorsunuz?
Malesef internetim yok hocam telefonun 128kbitlik edge internetini kullanıyorum bu sayfayı zor açıyor.
Anladım hocam müsait olunca yani internetiniz olunca bağlantıya geçebilir miyiz acaba? Bene elimdeki launchpadleri kullansam bana yeter sonra FPGA Beaglebone vs devam... :)
Kararsız...

batigol

Evde internetim yok, perşembe veya cuma günleri gündüz okulda oluyorum internetim oluyor. O zaman bağlantıya geçebiliriz. F28377S çok yetenekli bir dsp 400mips hızı var bildiğim kadarıyla. Beaglebonedaki PRU'dan bile o performansı alamazsınız bence  :) Onun üzerinde yoğunlaşmanızı öneririm.

Firzen

Alıntı yapılan: batigol - 14 Ekim 2015, 01:10:16
Evde internetim yok, perşembe veya cuma günleri gündüz okulda oluyorum internetim oluyor. O zaman bağlantıya geçebiliriz. F28377S çok yetenekli bir dsp 400mips hızı var bildiğim kadarıyla. Beaglebonedaki PRU'dan bile o performansı alamazsınız bence  :) Onun üzerinde yoğunlaşmanızı öneririm.

Hocam aslında FPGA ile işlerimi hallediyordum genelde yada Nı-myRIO ile. Hoca böyle istedi bende hayrı diyemedim.
Sizinle özelde zaman ayarlayalım o zaman hocam teşekkür ederim tekrardan.
Kararsız...

muhendisbey

herhangi bir driver problemi yaşıyor musunuz? TI'ın kartları için windows 8 ve yukarısında dijital imzayı devredışı bırakmanız gerekli.
CCS'te programı derledikten sonra debug dedikten sonra yüklüyordu. (Eski bir versiyonunu kullanmıştım) Sonrasında kartı resetlemeniz gerekebiliyordu.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

Firzen

Alıntı yapılan: muhendisbey - 14 Ekim 2015, 09:42:47
herhangi bir driver problemi yaşıyor musunuz? TI'ın kartları için windows 8 ve yukarısında dijital imzayı devredışı bırakmanız gerekli.
CCS'te programı derledikten sonra debug dedikten sonra yüklüyordu. (Eski bir versiyonunu kullanmıştım) Sonrasında kartı resetlemeniz gerekebiliyordu.
Bu dediklerinizi denedim hocam hiçbirşey olmadı ben nasıl bir sorun ile karşılaştım bir video çekip youtuba yükleyip burada paylaşayım en iyisi ne demek istediğim net anlaşılacaktır bence.
Kararsız...

Firzen

Hocam çok şükür bağlantı vs sağladım ilk deneme kodunu da yazdım çalıştı şimdi ise internette azim's garage diye bir öğrencinin yayınladığı notları deniyorum bu seferde delay_us(...) yani gecikmeler çalışmıyor sadece tüm ledler yanık kalıyor.

#include "DSP28x_Project.h"     // DSP28x Headerfile

#include "f2802x_common/include/clk.h"
#include "f2802x_common/include/gpio.h"
#include "f2802x_common/include/pll.h"
#include "f2802x_common/include/wdog.h"


#ifdef _FLASH
    memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);
#endif


void main()
{
 WDOG_Handle myWDog;
 myWDog = WDOG_init((void *)WDOG_BASE_ADDR, sizeof(WDOG_Obj));
 WDOG_disable(myWDog);

 CLK_Handle myClk;
 PLL_Handle myPll;
 myClk = CLK_init((void *)CLK_BASE_ADDR, sizeof(CLK_Obj));
 myPll = PLL_init((void *)PLL_BASE_ADDR, sizeof(PLL_Obj));

  CLK_setOscSrc(myClk, CLK_OscSrc_Internal);  ///selecting Internal Oscillator

  PLL_setup(myPll, PLL_Multiplier_12, PLL_DivideSelect_ClkIn_by_2);  // Selecting 60Mhz InternalClock

  GPIO_Handle myGpio;
  myGpio = GPIO_init((void *)GPIO_BASE_ADDR, sizeof(GPIO_Obj));

  GPIO_setMode(myGpio, GPIO_Number_0, GPIO_0_Mode_GeneralPurpose);
  GPIO_setDirection(myGpio, GPIO_Number_0, GPIO_Direction_Output);
  GPIO_setMode(myGpio, GPIO_Number_1, GPIO_1_Mode_GeneralPurpose);
  GPIO_setDirection(myGpio, GPIO_Number_1, GPIO_Direction_Output);
  GPIO_setMode(myGpio, GPIO_Number_2, GPIO_2_Mode_GeneralPurpose);
  GPIO_setDirection(myGpio, GPIO_Number_2, GPIO_Direction_Output);
  GPIO_setMode(myGpio, GPIO_Number_3, GPIO_3_Mode_GeneralPurpose);
  GPIO_setDirection(myGpio, GPIO_Number_3, GPIO_Direction_Output);

  GPIO_setHigh(myGpio, GPIO_Number_0);
  GPIO_setHigh(myGpio, GPIO_Number_1);
  GPIO_setHigh(myGpio, GPIO_Number_2);
  GPIO_setHigh(myGpio, GPIO_Number_3);

  while(1)
  {
    GPIO_setLow(myGpio, GPIO_Number_0);
    DELAY_US(1000000);
    GPIO_setHigh(myGpio, GPIO_Number_0);
    DELAY_US(1000000);
  }

}


Referans : http://azimsgarage.blogspot.in/p/blog-page.html
Kararsız...

batigol

Alıntı yapılan: Firzen - 15 Ekim 2015, 12:59:52
Hocam çok şükür bağlantı vs sağladım ilk deneme kodunu da yazdım çalıştı şimdi ise internette azim's garage diye bir öğrencinin yayınladığı notları deniyorum bu seferde delay_us(...) yani gecikmeler çalışmıyor sadece tüm ledler yanık kalıyor.

#include "DSP28x_Project.h"     // DSP28x Headerfile

#include "f2802x_common/include/clk.h"
#include "f2802x_common/include/gpio.h"
#include "f2802x_common/include/pll.h"
#include "f2802x_common/include/wdog.h"


#ifdef _FLASH
    memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);
#endif


void main()
{
 WDOG_Handle myWDog;
 myWDog = WDOG_init((void *)WDOG_BASE_ADDR, sizeof(WDOG_Obj));
 WDOG_disable(myWDog);

 CLK_Handle myClk;
 PLL_Handle myPll;
 myClk = CLK_init((void *)CLK_BASE_ADDR, sizeof(CLK_Obj));
 myPll = PLL_init((void *)PLL_BASE_ADDR, sizeof(PLL_Obj));

  CLK_setOscSrc(myClk, CLK_OscSrc_Internal);  ///selecting Internal Oscillator

  PLL_setup(myPll, PLL_Multiplier_12, PLL_DivideSelect_ClkIn_by_2);  // Selecting 60Mhz InternalClock

  GPIO_Handle myGpio;
  myGpio = GPIO_init((void *)GPIO_BASE_ADDR, sizeof(GPIO_Obj));

  GPIO_setMode(myGpio, GPIO_Number_0, GPIO_0_Mode_GeneralPurpose);
  GPIO_setDirection(myGpio, GPIO_Number_0, GPIO_Direction_Output);
  GPIO_setMode(myGpio, GPIO_Number_1, GPIO_1_Mode_GeneralPurpose);
  GPIO_setDirection(myGpio, GPIO_Number_1, GPIO_Direction_Output);
  GPIO_setMode(myGpio, GPIO_Number_2, GPIO_2_Mode_GeneralPurpose);
  GPIO_setDirection(myGpio, GPIO_Number_2, GPIO_Direction_Output);
  GPIO_setMode(myGpio, GPIO_Number_3, GPIO_3_Mode_GeneralPurpose);
  GPIO_setDirection(myGpio, GPIO_Number_3, GPIO_Direction_Output);

  GPIO_setHigh(myGpio, GPIO_Number_0);
  GPIO_setHigh(myGpio, GPIO_Number_1);
  GPIO_setHigh(myGpio, GPIO_Number_2);
  GPIO_setHigh(myGpio, GPIO_Number_3);

  while(1)
  {
    GPIO_setLow(myGpio, GPIO_Number_0);
    DELAY_US(1000000);
    GPIO_setHigh(myGpio, GPIO_Number_0);
    DELAY_US(1000000);
  }

}


Referans : http://azimsgarage.blogspot.in/p/blog-page.html

Bende DELAY_US fonksiyonunu kullanamadım hiç pek ihtiyaç da duymadım şu ana kadar. Kütüphanelerin olduğu klasörleri inceleyin biraz asm olarak yazılmış sanırım o fonksiyon uğraşırsanız çözersiniz bence :)

Firzen

#13
Alıntı yapılan: batigol - 15 Ekim 2015, 13:10:57
Bende DELAY_US fonksiyonunu kullanamadım hiç pek ihtiyaç da duymadım şu ana kadar. Kütüphanelerin olduğu klasörleri inceleyin biraz asm olarak yazılmış sanırım o fonksiyon uğraşırsanız çözersiniz bence :)

Hocam hiç ASM bilmiyorum ki :(
Zaten delay fonksiyonunda sorun olduğunu zannetmiyorum çünkü demo kodda da delay_US kullanmış o yüzden anlamadım zaten.
Kararsız...

batigol

#14
Alıntı yapılan: Firzen - 15 Ekim 2015, 14:00:30
Hocam hiç ASM bilmiyorum ki :(
Zaten delay fonksiyonunda sorun olduğunu zannetmiyorum çünkü demo kodda da delay_US kullanmış o yüzden anlamadım zaten.

Fonksiyon f2802x_examples.h dosyasının içinde onu bir inceleyin belki çözersiniz sorunu.

//###########################################################################
//
// FILE:   DSP2802x_Examples.h
//
// TITLE:  DSP2802x Device Definitions.
//
//###########################################################################
// $TI Release: F2802x Support Library v222 $
// $Release Date: Thu Jan 15 13:56:57 CST 2015 $
// $Copyright: Copyright (C) 2008-2015 Texas Instruments Incorporated -
//             http://www.ti.com/ ALL RIGHTS RESERVED $
//###########################################################################

#ifndef DSP2802x_EXAMPLES_H
#define DSP2802x_EXAMPLES_H

#ifdef __cplusplus
extern "C" {
#endif

/*-----------------------------------------------------------------------------
      Specify the PLL control register (PLLCR) and divide select (DIVSEL) value.
-----------------------------------------------------------------------------*/

//#define DSP28_DIVSEL   0 // Enable /4 for SYSCLKOUT
//#define DSP28_DIVSEL   1 // Disable /4 for SYSCKOUT
#define DSP28_DIVSEL   2 // Enable /2 for SYSCLKOUT
//#define DSP28_DIVSEL   3 // Enable /1 for SYSCLKOUT


#define DSP28_PLLCR   12    // Uncomment for 60 MHz devices [60 MHz = (10MHz * 12)/2]
//#define DSP28_PLLCR   11
//#define DSP28_PLLCR   10      // Uncomment for 50 Mhz devices [50 Mhz = (10MHz * 10)/2]
//#define DSP28_PLLCR    9
//#define DSP28_PLLCR    8      // Uncomment for 40 MHz devices [40 MHz = (10MHz * 8)/2]
//#define DSP28_PLLCR    7
//#define DSP28_PLLCR    6
//#define DSP28_PLLCR    5
//#define DSP28_PLLCR    4
//#define DSP28_PLLCR    3
//#define DSP28_PLLCR    2
//#define DSP28_PLLCR    1
//#define DSP28_PLLCR    0  // PLL is bypassed in this mode
//----------------------------------------------------------------------------

/*-----------------------------------------------------------------------------
      Specify the clock rate of the CPU (SYSCLKOUT) in nS.

      Take into account the input clock frequency and the PLL multiplier
      selected in step 1.

      Use one of the values provided, or define your own.
      The trailing L is required tells the compiler to treat
      the number as a 64-bit value.

      Only one statement should be uncommented.

      Example 1: 40 MHz devices:
                 CLKIN is a 10 MHz crystal or internal 10 MHz oscillator

                 In step 1 the user specified PLLCR = 0x8 for a
                 40 MHz CPU clock (SYSCLKOUT = 40 MHz).

                 In this case, the CPU_RATE will be 25.000L
                 Uncomment the line: #define CPU_RATE 25.000L

      Example 1: 50 MHz devices:
                 CLKIN is a 10 MHz crystal or internal 10 MHz oscillator

                 In step 1 the user specified PLLCR = 0xA for a
                 50 MHz CPU clock (SYSCLKOUT = 50 MHz).

                 In this case, the CPU_RATE will be 20.000L
                 Uncomment the line: #define CPU_RATE 20.000L


      Example 2: 60 MHz devices:
                 CLKIN is a 10 MHz crystal or internal 10 MHz oscillator

                 In step 1 the user specified PLLCR = 0xC for a
                 60 MHz CPU clock (SYSCLKOUT = 60 MHz).

                 In this case, the CPU_RATE will be 16.667L
                 Uncomment the line: #define CPU_RATE 16.667L

-----------------------------------------------------------------------------*/

#define CPU_RATE   16.667L   // for a 60MHz CPU clock speed (SYSCLKOUT)
//#define CPU_RATE   20.000L   // for a 50MHz CPU clock speed  (SYSCLKOUT)
//#define CPU_RATE   25.000L   // for a 40MHz CPU clock speed  (SYSCLKOUT)
//#define CPU_RATE   33.333L   // for a 30MHz CPU clock speed  (SYSCLKOUT)
//#define CPU_RATE   41.667L   // for a 24MHz CPU clock speed  (SYSCLKOUT)
//#define CPU_RATE   50.000L   // for a 20MHz CPU clock speed  (SYSCLKOUT)
//#define CPU_RATE   66.667L   // for a 15MHz CPU clock speed  (SYSCLKOUT)
//#define CPU_RATE  100.000L   // for a 10MHz CPU clock speed  (SYSCLKOUT)

//----------------------------------------------------------------------------


/*-----------------------------------------------------------------------------
      Target device (in DSP2802x_Device.h) determines CPU frequency
      (for examples) - either 60 MHz (for 28026 and 28027), 50 MHz
      (for 28023 and 28023, or 40 MHz (for 28021, 28020, and 280200).
      User does not have to change anything here.
-----------------------------------------------------------------------------*/
#if (DSP28_28026PT||DSP28_28026DA||DSP28_28027PT||DSP28_28027DA)    // 28026||28027 devices only
  #define CPU_FRQ_60MHZ    1     // 60 Mhz CPU Freq (10 MHz input clock)
  #define CPU_FRQ_50MHZ    0
  #define CPU_FRQ_40MHZ    0
#elif (DSP28_28023PT||DSP28_28023DA||DSP28_28022PT||DSP28_28022DA) // 28023||28023 devices
  #define CPU_FRQ_60MHZ    0
  #define CPU_FRQ_50MHZ    1     // 50 MHz CPU Freq (10 MHz input clock)
  #define CPU_FRQ_40MHZ    0
#else                            // 28021||28020||280200 devices
  #define CPU_FRQ_60MHZ    0
  #define CPU_FRQ_50MHZ    0
  #define CPU_FRQ_40MHZ    1     // 40 MHz CPU Freq (10 MHz input clock)
#endif


// The following pointer to a function call calibrates the ADC and internal oscillators
#define Device_cal (void   (*)(void))0x3D7C80

//---------------------------------------------------------------------------
// Include Example Header Files:
//

#include "f2802x_common/include/f2802x_globalprototypes.h"         // Prototypes for global functions within the
                                              // .c files.
#include "f2802x_common/include/f2802x_epwm_defines.h"             // Macros used for PWM examples.
#include "f2802x_common/include/f2802x_i2c_defines.h"              // Macros used for I2C examples.

#define PARTNO_28027PT  0xCF
#define PARTNO_28027DA  0xCE
#define PARTNO_28026PT  0xC7
#define PARTNO_28026DA  0xC6
#define PARTNO_28023PT  0xCD
#define PARTNO_28023DA  0xCC
#define PARTNO_28022PT  0xC5
#define PARTNO_28022DA  0xC4
#define PARTNO_28021PT  0xCB
#define PARTNO_28021DA  0xCA
#define PARTNO_28020PT  0xC3
#define PARTNO_28020DA  0xC2
#define PARTNO_280200PT 0xC1
#define PARTNO_280200DA 0xC0

// Include files not used with DSP/BIOS
#ifndef DSP28_BIOS
#include "f2802x_common/include/f2802x_defaultisr.h"
#endif

// DO NOT MODIFY THIS LINE.
#define DELAY_US(A)  DSP28x_usDelay(((((long double) A * 1000.0L) / (long double)CPU_RATE) - 9.0L) / 5.0L)

#ifdef __cplusplus
}
#endif /* extern "C" */

#endif  // end of DSP2802x_EXAMPLES_H definition

//===========================================================================
// End of file.
//===========================================================================