|
OMAP L138, быстрый старт |
|
|
|
 |
Ответов
|
Nov 3 2013, 16:43
|
Частый гость
 
Группа: Guests
Сообщений: 122
Регистрация: 9-10-13
Из: Дубна
Пользователь №: 78 671

|
Сейчас вопрос стоит не в том, что невозможно разобраться с UPP, а в том, чтобы сэкономить время на тупые эксперименты с последовательностью команд и заполнением регистров. Поэтому нужны исходники, рабочие, в которых гарантированно рабочий код на прием и передачу желательно с эффективным использованием callback'ов. К OMAP подключена ПЛИСина, поэтому вопросов с согласованием нет. ПЛИСина всегда сможет подстроиться под OMAP. Убедительно прошу не подымать тему недельку попусту. Советы не нужны, пока, во всяком случае. Нужны исходники. Надеюсь на понимание.
Сообщение отредактировал octobus - Nov 3 2013, 16:45
|
|
|
|
|
Nov 5 2013, 11:27
|
Местный
  
Группа: Свой
Сообщений: 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(); }
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|