реклама на сайте
подробности

 
 
> OMAP L138, быстрый старт
torik
сообщение Aug 23 2012, 04:51
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



Всем привет.

Сигнальниками раньше не занимался, больше ПЛИС. Но СИ и еклипс мне знакомы.
Сделал плату, на ней имеется ПЛИС и OMAP L138.
Нужно написать простую программку для проверки работоспособности платы:
- EMIF, подключенный к ПЛИС
- UPP, подключенный к ПЛСИ
- чтение/запись DDR2, подключенной к сигнальнику
- помаргать светодиодиками.

Что-то не могу найти простых толковых примеров, Quick Start или еще чего. Ткните куда-нибудь...

"хело ворлд" в Code Composer Studio v5 получил, т.е. jtag работает, проц запускается.


--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
octobus
сообщение Nov 3 2013, 16:43
Сообщение #2


Частый гость
**

Группа: Guests
Сообщений: 122
Регистрация: 9-10-13
Из: Дубна
Пользователь №: 78 671



Сейчас вопрос стоит не в том, что невозможно разобраться с UPP, а в том, чтобы сэкономить время на тупые эксперименты с последовательностью команд и заполнением регистров. Поэтому нужны исходники, рабочие, в которых гарантированно рабочий код на прием и передачу желательно с эффективным использованием callback'ов. К OMAP подключена ПЛИСина, поэтому вопросов с согласованием нет. ПЛИСина всегда сможет подстроиться под OMAP.
Убедительно прошу не подымать тему недельку попусту. Советы не нужны, пока, во всяком случае. Нужны исходники. Надеюсь на понимание.

Сообщение отредактировал octobus - Nov 3 2013, 16:45
Go to the top of the page
 
+Quote Post
ASN
сообщение Nov 5 2013, 11:27
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 459
Регистрация: 15-07-04
Из: g.Penza
Пользователь №: 326



octobus
Вот исходники для uboot.
Код
#define DAVINCI_GPIO_BINTEN    0x01E26008
#define DAVINCI_GPIO_BANK01    0x01E26010
#define DAVINCI_GPIO_BANK23    0x01E26038
#define DAVINCI_GPIO_BANK45    0x01E26060
#define DAVINCI_GPIO_BANK67    0x01E26088
#define DAVINCI_GPIO_BANK89 0x01E260B0

struct davinci_gpio {
    unsigned int dir;
    unsigned int out_data;
    unsigned int set_data;
    unsigned int clr_data;
    unsigned int in_data;
    unsigned int set_rising;
    unsigned int clr_rising;
    unsigned int set_falling;
    unsigned int clr_falling;
    unsigned int intstat;
};

struct davinci_gpio_bank {
    int num_gpio;
    unsigned int irq_num;
    unsigned int irq_mask;
    unsigned long *in_use;
    unsigned long base;
};

#define davinci_gpio_bank01 ((struct davinci_gpio *)DAVINCI_GPIO_BANK01)
#define davinci_gpio_bank23 ((struct davinci_gpio *)DAVINCI_GPIO_BANK23)
#define davinci_gpio_bank45 ((struct davinci_gpio *)DAVINCI_GPIO_BANK45)
#define davinci_gpio_bank67 ((struct davinci_gpio *)DAVINCI_GPIO_BANK67)
#define davinci_gpio_bank89 ((struct davinci_gpio *)DAVINCI_GPIO_BANK89)

/**************************************************************************\
* Register Overlay Structure
\**************************************************************************/
typedef struct  {
    volatile unsigned UPPID;
    volatile unsigned UPPCR;
    volatile unsigned UPDLB;
    volatile unsigned char RSVD0[4];
    volatile unsigned UPCTL;
    volatile unsigned UPICR;
    volatile unsigned UPIVR;
    volatile unsigned UPTCR;
    volatile unsigned UPISR;
    volatile unsigned UPIER;
    volatile unsigned UPIES;
    volatile unsigned UPIEC;
    volatile unsigned UPEOI;
    volatile unsigned char RSVD1[12];
    volatile unsigned UPID0;
    volatile unsigned UPID1;
    volatile unsigned UPID2;
    volatile unsigned char RSVD2[4];
    volatile unsigned UPIS0;
    volatile unsigned UPIS1;
    volatile unsigned UPIS2;
    volatile unsigned char RSVD3[4];
    volatile unsigned UPQD0;
    volatile unsigned UPQD1;
    volatile unsigned UPQD2;
    volatile unsigned char RSVD4[4];
    volatile unsigned UPQS0;
    volatile unsigned UPQS1;
    volatile unsigned UPQS2;
} CSL_UppRegs;

typedef struct  {
    volatile unsigned REVID;
    volatile unsigned char RSVD0[4];
    volatile unsigned DIEIDR0;
    volatile unsigned DIEIDR1;
    volatile unsigned DIEIDR2;
    volatile unsigned DIEIDR3;
    volatile unsigned DEVIDR0;
    volatile unsigned char RSVD1[4];
    volatile unsigned BOOTCFG;
    volatile unsigned CHIPREVIDR;
    volatile unsigned char RSVD2[16];
    volatile unsigned KICK0R;
    volatile unsigned KICK1R;
    volatile unsigned HOST0CFG;
    volatile unsigned HOST1CFG1;
    volatile unsigned char RSVD3[152];
    volatile unsigned IRAWSTAT;
    volatile unsigned IENSTAT;
    volatile unsigned IENSET;
    volatile unsigned IENCLR;
    volatile unsigned EOI;
    volatile unsigned FLTADDRR;
    volatile unsigned FLTSTAT;
    volatile unsigned char RSVD4[20];
    volatile unsigned MSTPRI0;
    volatile unsigned MSTPRI1;
    volatile unsigned MSTPRI2;
    volatile unsigned char RSVD5[4];
    volatile unsigned PINMUX0;
    volatile unsigned PINMUX1;
    volatile unsigned PINMUX2;
    volatile unsigned PINMUX3;
    volatile unsigned PINMUX4;
    volatile unsigned PINMUX5;
    volatile unsigned PINMUX6;
    volatile unsigned PINMUX7;
    volatile unsigned PINMUX8;
    volatile unsigned PINMUX9;
    volatile unsigned PINMUX10;
    volatile unsigned PINMUX11;
    volatile unsigned PINMUX12;
    volatile unsigned PINMUX13;
    volatile unsigned PINMUX14;
    volatile unsigned PINMUX15;
    volatile unsigned PINMUX16;
    volatile unsigned PINMUX17;
    volatile unsigned PINMUX18;
    volatile unsigned PINMUX19;
    volatile unsigned SUSPSRC;
    volatile unsigned CHIPSIG;
    volatile unsigned CHIPSIG_CLR;
    volatile unsigned CFGCHIP0;
    volatile unsigned CFGCHIP1;
    volatile unsigned CFGCHIP2;
    volatile unsigned CFGCHIP31;
    volatile unsigned CFGCHIP4;
} CSL_SyscfgRegs;

#define CSL_SYSCFG_0_REGS   (0x01C14000u)
#define CSL_UPP_0_REGS         (0x01E16000u)
CSL_UppRegs* uppRegs =     (CSL_UppRegs*)(CSL_UPP_0_REGS);
CSL_SyscfgRegs* sysRegs = (CSL_SyscfgRegs*)(CSL_SYSCFG_0_REGS);

void UPP_WAITB_RESET(void)
{
    davinci_gpio_bank89->clr_data |= (1<<12);   //WAIT_B off
}

void setup_UPP(void)
{
    int x;
    sysRegs->SUSPSRC &= ~(1<<4);
    //2.1.add. Transmit Clock source - from UPP_2xTXCLK pin
    sysRegs->CFGCHIP31 = 0x60;
/*     uPP Transmit Clock Selection (spruh77.pdf p.144)
CFGCHIP3_UPP_TX | CFGCHIP3_ASYNC3_CLKSRC | Transmit Clock Source
----------------------------------------------------------------
  0 (ASYNC3)    |        0 (PLL0)        |     PLL0_SYSCLK2
  0 (ASYNC3)    |        1 (PLL1)        |     PLL1_SYSCLK2
  1 (TXCLK)     |        X               |     UPP_2xTXCLK pin
*/
    //2.2 Enable clocks uPP
    // Setup Peripherals;
    // wait for UPPID to become valid after enabling module in 2
    while ( uppRegs->UPPID != 0x44231100 );

    //3. SWRST
    //wait for dma active/pending bits DB to clear
    uppRegs->UPPCR = 0x1b;

    //4. Wait at least 200 clock cycles
    udelay(100000);
    uppRegs->UPPCR = 0x0b;

    //5. Program UPP Config Reg's
    //UPCTL
    uppRegs->UPCTL = 0x07;

    //UPICR
    /* !NB
       spruh77.pdf page 1519
       33.2.6.1 Step-by-Step Procedure
       NOTE: When initializing the uPP peripheral, the uPP interface configuration
       register (UPICR) must be programmed using a single, 32-bit write. Writing
       UPICR fields one-by-one can lead to unexpected results.
    */

    uppRegs->UPICR = 0x00180020;

    //UPIVR - idle value
    uppRegs->UPIVR = 0xAC;

    //6. UPIES - Interrupt Enable

    uppRegs->UPIEC = 0xffffffff;
    uppRegs->UPIES = 0x1f1f;
    uppRegs->UPIER = 0xffffffff;

    //7. uPP peripheral Enable
    uppRegs->UPPCR = 0x0b;

    davinci_gpio_bank89->dir &= ~(1<<12);    // wait_b out

    UPP_WAITB_RESET();
}

Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- torik   OMAP L138   Aug 23 2012, 04:51
- - Konst_777   Цитата(torik @ Aug 23 2012, 07:51) ...Что...   Aug 23 2012, 07:12
- - torik   Почитал доку на upp - там гора регистров, может пр...   Aug 23 2012, 14:15
|- - aaarrr   Цитата(torik @ Aug 23 2012, 18:15) Почита...   Aug 23 2012, 14:53
- - torik   Дык есть примеры-то? Да даже проще - я не понимаю ...   Aug 23 2012, 15:04
|- - aaarrr   Цитата(torik @ Aug 23 2012, 19:04) Начнем...   Aug 23 2012, 15:41
- - torik   Цитата1. Включить GPIO в PSC 2. Настроить соответс...   Aug 24 2012, 12:34
|- - aaarrr   Цитата(torik @ Aug 24 2012, 16:34) Уже ст...   Aug 24 2012, 13:00
- - torik   Во, что-то более-менее понятное в StraterWare вижу...   Aug 24 2012, 13:21
- - torik   Когда ARM ядро запускаю, все нормально. Прога деба...   Aug 29 2012, 06:25
- - aaarrr   DSP нужно включить со стороны ARM'а - он выклю...   Aug 29 2012, 06:57
|- - jcxz   Цитата(aaarrr @ Aug 29 2012, 12:57) DSP н...   Aug 30 2012, 02:46
- - torik   Охренеть. По примерам из StarterWare: Код PSCMo...   Aug 29 2012, 07:41
|- - aaarrr   Цитата(torik @ Aug 29 2012, 11:41) По при...   Aug 29 2012, 09:03
- - torik   ЦитатаПодозреваю, что SYSCFG залочен (см. регистры...   Aug 29 2012, 09:44
|- - aaarrr   Цитата(torik @ Aug 29 2012, 13:44) Для ту...   Aug 29 2012, 09:56
- - torik   Чтение REVID дает 0x4E840102 а пинмукс читается к...   Aug 29 2012, 10:10
- - aaarrr   Попробуйте теперь прочитать DEVIDR0.   Aug 29 2012, 10:11
- - torik   Кстати, SYSCFG0_KICK0R тоже 0 DEVIDR0 = 0x1B7D102...   Aug 29 2012, 10:16
|- - aaarrr   Странно как-то. В каком режиме процессор (регистр ...   Aug 29 2012, 10:19
- - torik   Такого регистра не наблюдаю в документации вообще   Aug 29 2012, 10:40
- - aaarrr   Это регистр процессора, из серии R0, R1 и т.п.   Aug 29 2012, 10:47
|- - aaarrr   Цитата(aaarrr @ Aug 29 2012, 14:47) Это р...   Aug 29 2012, 11:28
- - torik   В регистре R0 содержится адрес зинмукса вроде 0x01...   Aug 29 2012, 11:28
- - torik   0x200000D0 Есть подозрение, что надо как-то перев...   Aug 29 2012, 11:43
|- - aaarrr   Цитата(torik @ Aug 29 2012, 15:36) 0x2000...   Aug 29 2012, 11:45
- - torik   Exception по Reset-у как раз в режиме супервизора....   Aug 29 2012, 12:11
|- - aaarrr   Цитата(torik @ Aug 29 2012, 16:11) Except...   Aug 29 2012, 12:27
- - torik   Ух ты. Где это сделать?   Aug 29 2012, 12:36
- - maxis   Тоже интересно, не поделится ли кто примером как п...   Aug 29 2012, 12:45
|- - aaarrr   Цитата(maxis @ Aug 29 2012, 16:45) Тоже и...   Aug 29 2012, 12:54
- - torik   Скачали с сайта техаса файл boot.asm, тупо добавил...   Aug 30 2012, 05:50
- - aaarrr   Цитата(jcxz @ Aug 30 2012, 06:46) Хм... А...   Aug 30 2012, 06:21
|- - maxis   Цитата(aaarrr @ Aug 30 2012, 10:21) Поряд...   Aug 30 2012, 09:26
||- - aaarrr   Цитата(maxis @ Aug 30 2012, 13:26) И на с...   Aug 30 2012, 10:27
||- - maxis   Цитата(aaarrr @ Aug 30 2012, 14:27) А что...   Aug 30 2012, 11:24
|- - jcxz   Цитата(aaarrr @ Aug 30 2012, 12:21) Там м...   Aug 31 2012, 20:01
|- - aaarrr   Цитата(jcxz @ Sep 1 2012, 00:01) Значит -...   Aug 31 2012, 21:10
|- - SM   Цитата(jcxz @ Sep 1 2012, 00:01) Значит -...   Sep 1 2012, 18:26
|- - jcxz   Цитата(SM @ Sep 2 2012, 00:26) Это и есть...   Sep 2 2012, 05:54
|- - SM   Цитата(jcxz @ Sep 2 2012, 09:54) Всегда у...   Sep 2 2012, 08:32
- - aaarrr   То есть по статусу он и не начинал включаться. Нуж...   Aug 30 2012, 12:54
- - aaarrr   На самом деле в L138 первым тоже стартует DSP, про...   Sep 2 2012, 09:27
|- - SM   Цитата(aaarrr @ Sep 2 2012, 13:27) На сам...   Sep 2 2012, 13:47
- - aaarrr   Вот цитата из errata, касающаяся ревизий 2.0 и ниж...   Sep 2 2012, 21:14
|- - SM   Цитата(aaarrr @ Sep 3 2012, 01:14) Вот ци...   Sep 3 2012, 05:35
- - remi700   Возникла примерно такая же задача как в начале тем...   Sep 22 2013, 19:36
|- - aaarrr   Цитата(remi700 @ Sep 22 2013, 23:36) Поче...   Sep 22 2013, 19:46
|- - ASN   remi700 Для того, чтобы портестировать UPP можно н...   Sep 23 2013, 05:48
- - octobus   Есть у кого рабочий пример работы с UPP без DSP/BI...   Nov 1 2013, 16:30
- - aaarrr   Если не считать инициализации PINMUX и PSC, для за...   Nov 1 2013, 18:17
|- - lekintr   Цитата(aaarrr @ Nov 1 2013, 21:17) Поэтом...   Nov 1 2013, 18:28
|- - ASN   octobus Как точно заметил уважаемый aaarrr исходни...   Nov 3 2013, 11:32
- - lekintr   2ASN тоже поковыряю Ваши исходники.   Nov 5 2013, 13:26
- - octobus   О, отлично, спасибо огромнейшее за исходник. Попро...   Nov 5 2013, 13:39
- - octobus   В общем все пришлось писать заново, используя друг...   Nov 11 2013, 14:07
|- - ASN   octobus Поздравляю . Смущает только, что при разме...   Nov 11 2013, 16:35
|- - Victor_Tr   Прикрепляю проект для CCS 5.4. Ничего не требуется...   Jul 23 2014, 21:55
- - lekintr   Я посмотрел проект похоже пропадают не пакеты, или...   Nov 11 2013, 16:40
- - octobus   жду не дождусь когда же уберут предупреждение, вто...   Oct 6 2014, 02:24
- - den_steppenwolf   Цитата(octobus @ Oct 6 2014, 08:24) жду н...   Jan 14 2016, 10:12


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 10:27
Рейтинг@Mail.ru


Страница сгенерированна за 0.01377 секунд с 7
ELECTRONIX ©2004-2016