Миландр

Ключевым подразделением нашей компании
является Центр Проектирования интегральных микросхем
Текущее время: 2020-сен-20 00:46

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 240 сообщений ]  На страницу « 15 6 7 8 916 »
Автор Сообщение
 Заголовок сообщения: Re: 1986ВЕ92У, MDR32F9Q2I
СообщениеДобавлено: 2014-окт-08 12:06 
Не в сети

Зарегистрирован: 2014-июн-19 16:39
Сообщения: 17
Попробовал на контролере 1986ВЕ93У, заработало с первого раза. на 1986ВЕ92У не включаются подтяжки только на ножках где используется JTAG_A, на всех остальных есть включение, на ВЕ93У кстати включается сразу же.


Вернуться к началу
 Заголовок сообщения: Re: 1986ВЕ92У, MDR32F9Q2I
СообщениеДобавлено: 2014-окт-24 22:17 
Не в сети

Зарегистрирован: 2014-авг-11 19:26
Сообщения: 124
Доброго времени суток!
Появился вопрос, возможно кто либо сталкивался и знает (в даташите, страница 493 не помогла - 2 абзадца "воды", а ответа так и не нашел) ответ на такие простые вопросы:
-Прерывания по уровню EXT_INT1, EXT_INT2 и т.п. срабатывают на любое изменение \ по спаду \ по нарастанию сигнала ? Или же можно это настраивать ?

_________________
https://adelectronics.ru
Заходи, не стесняйся! ;)


Вернуться к началу
 Заголовок сообщения: Re: 1986ВЕ92У, MDR32F9Q2I
СообщениеДобавлено: 2016-янв-29 18:21 
Не в сети

Зарегистрирован: 2016-янв-29 17:53
Сообщения: 55
Организация: частное лицо
Здравствуйте! Помогите разобраться с проблемой.
Есть код:
#include "MDR32F9Qx_port.h"
#include "MDR32F9Qx_rst_clk.h"
void PORT_B_Init(void);
PORT_InitTypeDef PORT_InitStructure;
volatile uint32_t timer;
int main(void)
{
	RST_CLK_PCLKcmd(RST_CLK_PCLK_RST_CLK, ENABLE);
	PORT_B_Init();
	// Pin 6, pin 7*****************
	PORT_InitStructure.PORT_Pin		= (PORT_Pin_6 | PORT_Pin_7);
	PORT_InitStructure.PORT_OE		= PORT_OE_OUT;
	PORT_InitStructure.PORT_FUNC	= PORT_FUNC_PORT;
	PORT_InitStructure.PORT_MODE	= PORT_MODE_DIGITAL;
	PORT_InitStructure.PORT_SPEED	= PORT_SPEED_MAXFAST;
	
	PORT_Init(MDR_PORTB, &PORT_InitStructure);
	// Pin 8***********************	
	PORT_InitStructure.PORT_Pin		= (PORT_Pin_8);
	PORT_InitStructure.PORT_OE		= PORT_OE_IN;
	PORT_InitStructure.PORT_FUNC	= PORT_FUNC_PORT;
	PORT_InitStructure.PORT_MODE	= PORT_MODE_DIGITAL;
	PORT_InitStructure.PORT_SPEED	= PORT_OUTPUT_OFF;
	PORT_Init(MDR_PORTB, &PORT_InitStructure);
	
	PORT_SetBits(MDR_PORTB, PORT_Pin_6);
	while(1)
	{
		timer = 1000;
			PORT_SetBits(MDR_PORTB, PORT_Pin_7);
		for(timer;timer==0; timer--) {};
			timer = 1000;
			
			PORT_ResetBits(MDR_PORTB, PORT_Pin_7);
		for(timer;timer==0; timer--) {};	

	}	
}

void PORT_B_Init(void)
{
	RST_CLK_PCLKcmd(RST_CLK_PCLK_PORTB, ENABLE);
	
	PORT_StructInit(&PORT_InitStructure);
	PORT_Init(MDR_PORTB, &PORT_InitStructure);
}
Стоит задача использование пинов порта В микроконтроллера 1986ВЕ92. При этом на порте В разведен j-tag A. На отладочной плате Миландра "Evalution Board for MCU 1986VE91T" данный код работает: позволяет управлять пинами 6, 7 порта B и не портит j-tag A. При прошивке этого кода в наше устройство с микроконтроллером 1986ВЕ92 j-tag A ломается. Подтяжки линий j-tag A у нас 47 кОм.

При первичной прошивке выводит ошибку:
Full Chip Erase Done.
Programming Done.
Verify OK.
Application running ...
***JLink Error: Bad JTAG communication: Write to IR: Expected 0x1, got 0xF (TAP Command : 10) @ Off 0x5.
Flash Load finished at 18:03:04
Может кто-нибудь подскажет что делать?


Вернуться к началу
 Заголовок сообщения: Re: 1986ВЕ92У, MDR32F9Q2I
СообщениеДобавлено: 2016-фев-03 13:38 
Не в сети

Зарегистрирован: 2010-авг-30 19:12
Сообщения: 500
Возможно наш случай (глупый и поучительный)
Две однотипные платы зашивали с разных ПК "одним и тем же кодом". Платы были в разных комнатах и основные файлы перебрасывали по сети.
В одной комнате плата работала, в другой сыпался JTAG.
После 3-4 часов разбирательства оказалось что на одном ПК JTAG в макросах определен как JTAG_A а в на другом ПК соответственно JTAG_B.
При этом все исходники совпадали до пробела. Поскольку сам макрос определен в системных заголовках, то на эти файлы подумали в последнюю очередь.

_________________
О сколько нам открытий чудных
Готовит просвященья дух,
И опыт - сын ошибок трудных ... (Пушкин)

Пергаменты не утоляют жажду ("Фауст",Гете)


Вернуться к началу
 Заголовок сообщения: Re: 1986ВЕ92У, MDR32F9Q2I
СообщениеДобавлено: 2016-мар-31 09:14 
Не в сети

Зарегистрирован: 2016-мар-17 13:22
Сообщения: 7
Организация: АТС-Т
Krant, спасибо за детальный "разбор полетов" с отладкой. Помогла ваша фраза
Цитата:
где-то вычитал здесь на форуме что 1986BE9x поддерживает только отладку в режиме SWD. Кстати, JTAG даёт ровно такой же результат.
Так и есть, у меня ULINK2 корректно грузит код и выходит на начальный адрес 800 0000 после загрузки только в режиме SWD :!: . Замечательно, что распиновка под JTAG совместима с SWD. Возможно, у меня какого-то сигнала не хватает для работы в режиме JTAG :?: . Загрузку программы проводил в режиме MOD[2:0]=000 - JTAGB (стр.36 описания(Datasheet)), режим MOD[2:0]=010 не годится. А остальные режимы не позволяет проверить аппаратная часть имеющейся платы. У меня 1986ВЕ92 в пластмассовом корпусе.
P.S. Все выводы микроконтроллера, используемые для подключения отладчика, должны быть настроены, как ВХОДЫ! В противном случае будет загрузка с начальным(cтартовым) адресом 0000 00A6 в режиме MOD[2:0]=000 или адресом 2000 0000 (MOD[2:0]=010)


Последний раз редактировалось ESN 2016-апр-14 13:37, всего редактировалось 1 раз.

Вернуться к началу
 Заголовок сообщения: Re: 1986ВЕ92У, MDR32F9Q2I
СообщениеДобавлено: 2016-апр-01 22:13 
Не в сети

Зарегистрирован: 2012-дек-11 21:35
Сообщения: 170
Организация: ...
Откуда: Казань
Здравствуйте. У меня вопрос о возможности смены режимов загрузки при программном сбросе.

В спецификации на МК написано:
MDR_BKP->REG_0E:
MODE[2..0]
При смене режима работы в данном регистре, изменение вступит в
силу после сброса процессора через RESET, при сбросе по просадке
питания режим будет определяться выводами MODE[2:0].

Под RESET понимается внешний пин? Нельзя ли сменить режим в этом регистре и выполнить программный сброс для смены режима через NVIC_SystemReset?

ПС: Пока нет возможности попробовать на железе


Вернуться к началу
 Заголовок сообщения: Re: 1986ВЕ92У, MDR32F9Q2I
СообщениеДобавлено: 2016-апр-02 12:25 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1511
Откуда: Тула
Дата документа: 29/04/15 1986BE9x and MDR32F9Qx Series Errata Notice
Номер Документа: Страница 30 из 56
0006 Невозможность программного сброса процессора через
регистр AIRCR
Статус
Исследование
Описание
Для программного сброса микроконтроллера необходимо в регистр AIRCR записать значение
0x05fa0004. После записи происходит сброс всей периферии, но само ядро остается в
состоянии сброса и перестает работать. Выход из этого состояния возможен только по
внешнему сбросу, сбросу сторожевых таймеров, либо снятия и подачи питания Ucc
микросхемы.
Условия
Всегда
Последствия
Невозможность программного сброса микроконтроллера через регистр AIRCR
Рекомендации и способы обхода
Для выполнения программного сброса рекомендуется использовать сторожевой таймер
WWDG . При несвоевременном обновлении счетчика Т (вне окна разрешения) происходит
сброс микроконтроллера. Таким образом, выполнив следующую последовательность записи
в регистры WWDG можно выполнить программный сброс:
WWDG->CFR = 0x00;
WWDG->CR = 0xFF;
WWDG->CR = 0xFF;

_________________
сочувствующий…


Вернуться к началу
 Заголовок сообщения: Re: 1986ВЕ92У, MDR32F9Q2I
СообщениеДобавлено: 2016-апр-02 12:31 
Не в сети

Зарегистрирован: 2012-дек-11 21:35
Сообщения: 170
Организация: ...
Откуда: Казань
prostoRoman писал(а):
Дата документа: 29/04/15 1986BE9x and MDR32F9Qx Series Errata Notice
Номер Документа: Страница 30 из 56
0006 Невозможность программного сброса процессора через
регистр AIRCR
Статус
Исследование
Описание
Для программного сброса микроконтроллера необходимо в регистр AIRCR записать значение
0x05fa0004. После записи происходит сброс всей периферии, но само ядро остается в
состоянии сброса и перестает работать. Выход из этого состояния возможен только по
внешнему сбросу, сбросу сторожевых таймеров, либо снятия и подачи питания Ucc
микросхемы.
Условия
Всегда
Последствия
Невозможность программного сброса микроконтроллера через регистр AIRCR
Рекомендации и способы обхода
Для выполнения программного сброса рекомендуется использовать сторожевой таймер
WWDG . При несвоевременном обновлении счетчика Т (вне окна разрешения) происходит
сброс микроконтроллера. Таким образом, выполнив следующую последовательность записи
в регистры WWDG можно выполнить программный сброс:
WWDG->CFR = 0x00;
WWDG->CR = 0xFF;
WWDG->CR = 0xFF;
Спасибо за информацию. Но меня больше интересует смена режима при сбросе программном (даже хоть с использованием метода из ерраты).


Вернуться к началу
 Заголовок сообщения: Re: 1986ВЕ92У, MDR32F9Q2I
СообщениеДобавлено: 2016-апр-02 13:29 
Не в сети

Зарегистрирован: 2010-сен-21 12:57
Сообщения: 742
Откуда: г. Санкт-Петербург
8daemon писал(а):
...Спасибо за информацию. Но меня больше интересует смена режима при сбросе программном (даже хоть с использованием метода из ерраты).
прописываете MDR_BKP->REG_0E нужным Вам режимом и делаете программный сброс через WWDG (не забыть включить тактирование BKP и WWDG).


Вернуться к началу
 Заголовок сообщения: Re: 1986ВЕ92У, MDR32F9Q2I
СообщениеДобавлено: 2016-апр-02 14:41 
Не в сети

Зарегистрирован: 2012-дек-11 21:35
Сообщения: 170
Организация: ...
Откуда: Казань
vasili писал(а):
8daemon писал(а):
...Спасибо за информацию. Но меня больше интересует смена режима при сбросе программном (даже хоть с использованием метода из ерраты).
прописываете MDR_BKP->REG_0E нужным Вам режимом и делаете программный сброс через WWDG (не забыть включить тактирование BKP и WWDG).
Это не отражено в спецификации, отсюда и вопрос про смену режима при программном сбросе.
Если это возможно, то это должно быть написано в Спецификации. По текущему описанию только пин RESET или при просадке питания


Вернуться к началу
 Заголовок сообщения: Re: 1986ВЕ92У, MDR32F9Q2I
СообщениеДобавлено: 2016-апр-02 17:41 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1511
Откуда: Тула
8daemon писал(а):
В спецификации на МК написано:
MDR_BKP->REG_0E:
MODE[2..0]
При смене режима работы в данном регистре, изменение вступит в
силу после сброса процессора через RESET, при сбросе по просадке
питания режим будет определяться выводами MODE[2:0].

Под RESET понимается внешний пин? Нельзя ли сменить режим в этом регистре и выполнить программный сброс для смены режима через NVIC_SystemReset?
Как формируется сигнал RESET написано и нарисовано в спецификации.
Начальному загрузчику нет дела до того, как сформировался RESET.
Загрузчик анализирует специальный бит FPOR и так определяет стоит ли обновлять MODE с выводов МК али нет.
В этом месте СП понимать так, как написано.

_________________
сочувствующий…


Вернуться к началу
 Заголовок сообщения: Re: 1986ВЕ92У, MDR32F9Q2I
СообщениеДобавлено: 2016-апр-02 17:52 
Не в сети

Зарегистрирован: 2012-дек-11 21:35
Сообщения: 170
Организация: ...
Откуда: Казань
prostoRoman писал(а):
8daemon писал(а):
В спецификации на МК написано:
MDR_BKP->REG_0E:
MODE[2..0]
При смене режима работы в данном регистре, изменение вступит в
силу после сброса процессора через RESET, при сбросе по просадке
питания режим будет определяться выводами MODE[2:0].

Под RESET понимается внешний пин? Нельзя ли сменить режим в этом регистре и выполнить программный сброс для смены режима через NVIC_SystemReset?
Как формируется сигнал RESET написано и нарисовано в спецификации.
Начальному загрузчику нет дела до того, как сформировался RESET.
Загрузчик анализирует специальный бит FPOR и так определяет стоит ли обновлять MODE с выводов МК али нет.
В этом месте СП понимать так, как написано.
"Микроконтроллер также может быть установлен в начальное состояние внешним
сигналом сброса RESET..."
Написано что сигнал "RESET" - внешний (я так понимаю пин). В спецификации написано как формируется сигнал "Сброс". Сигналы "RESET" и "Сброс" немного отличаются (видно по Рисунок 8. Структурная блок-схема сброса). А в комментарии к регистру MDR_BKP->REG_0E написано конкретно: "изменение вступит в силу после сброса процессора через RESET, при сбросе по просадке питания режим будет определяться выводами MODE[2:0]". А как поняли "RESET" - внешний сигнал, отсюда и вопрос, может в комментарии к регистру должен быть сигнал "Сброс", если это так или все-таки внешний "RESET"


Вернуться к началу
 Заголовок сообщения: Re: 1986ВЕ92У, MDR32F9Q2I
СообщениеДобавлено: 2016-апр-02 18:10 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1511
Откуда: Тула
8daemon писал(а):
"Микроконтроллер также может быть установлен в начальное состояние внешним
сигналом сброса RESET..."
Написано что сигнал "RESET" - внешний (я так понимаю пин). В спецификации написано как формируется сигнал "Сброс". Сигналы "RESET" и "Сброс" немного отличаются (видно по Рисунок 8. Структурная блок-схема сброса). А в комментарии к регистру MDR_BKP->REG_0E написано конкретно: "изменение вступит в силу после сброса процессора через RESET, при сбросе по просадке питания режим будет определяться выводами MODE[2:0]". А как поняли "RESET" - внешний сигнал, отсюда и вопрос, может в комментарии к регистру должен быть сигнал "Сброс", если это так или все-таки внешний "RESET"
Мда, терминология... Я как-то сигнал RESET отождествил сигналу "Сброс". Видимо как и тот, кто в одном месте написал, что МК "устанавливается в исходное состояние", а в другом, что это не всегда так...

Вам то главное чтобы фича работала? Так она работает. Я постарался объяснить как.

_________________
сочувствующий…


Вернуться к началу
 Заголовок сообщения: Re: 1986ВЕ92У, MDR32F9Q2I
СообщениеДобавлено: 2016-апр-02 18:13 
Не в сети

Зарегистрирован: 2012-дек-11 21:35
Сообщения: 170
Организация: ...
Откуда: Казань
prostoRoman писал(а):
8daemon писал(а):
"Микроконтроллер также может быть установлен в начальное состояние внешним
сигналом сброса RESET..."
Написано что сигнал "RESET" - внешний (я так понимаю пин). В спецификации написано как формируется сигнал "Сброс". Сигналы "RESET" и "Сброс" немного отличаются (видно по Рисунок 8. Структурная блок-схема сброса). А в комментарии к регистру MDR_BKP->REG_0E написано конкретно: "изменение вступит в силу после сброса процессора через RESET, при сбросе по просадке питания режим будет определяться выводами MODE[2:0]". А как поняли "RESET" - внешний сигнал, отсюда и вопрос, может в комментарии к регистру должен быть сигнал "Сброс", если это так или все-таки внешний "RESET"
Мда, терминология... Я как-то сигнал RESET отождествил сигналу "Сброс". Видимо как и тот, кто в одном месте написал, что МК "устанавливается в исходное состояние", а в другом, что это не всегда так...

Вам то главное чтобы фича работала? Так она работает. Я постарался объяснить как.
Спасибо. Это основная цель была конечно, но и в документации поправить надо.


Вернуться к началу
 Заголовок сообщения: Re: 1986ВЕ92У, MDR32F9Q2I
СообщениеДобавлено: 2016-апр-11 11:09 
Не в сети

Зарегистрирован: 2016-мар-26 12:46
Сообщения: 29
Организация: ОАО ФИРМА "ГПА"
Всем доброго дня.
Пытаюсь поднять на данном кристале SSP1. Мастером у меня настроена плата STM32F4DISCOVERY. Передаю по нажатию пользовательской кнопки пакет из 8-ми байт:

static uint8_t cmd_tst[8] = {0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55};

скорость передачи 328125.
1986ВЕ92У настроен как ведомый и принимает (должен принимать) в режиме DMA. В отладчике наблюдаю, что принимает за раз 1 - 5 байт, при этом данные либо коверкает, либо принимает 0xFF. После следующих посылок отрабатывает прерывание DMA по приему 8 байт и так далее. Помогите пожалуйста настроить SSP!?

void SSP_init (){
MDR_RST_CLK->PER_CLOCK|= RST_CLK_PCLK_PORTF |
RST_CLK_PCLK_PORTD |
RST_CLK_PCLK_SSP1 |
RST_CLK_PCLK_SSP2;

NVIC_ClearPendingIRQ(DMA_IRQn);

MDR_SSP1->DMACR = 0;
MDR_SSP2->DMACR = 0;
MDR_RST_CLK->PER_CLOCK&= ~RST_CLK_PCLK_SSP2;

MDR_PORTF->FUNC |= ((PORT_FUNC_ALTER << 2*2) |
(PORT_FUNC_ALTER << 1*2) |
(PORT_FUNC_ALTER << 3*2) |
(PORT_FUNC_ALTER << 0*2));
MDR_PORTF->ANALOG |= ((PORT_MODE_DIGITAL << 2) |
(PORT_MODE_DIGITAL << 1) |
(PORT_MODE_DIGITAL << 3) |
(PORT_MODE_DIGITAL << 0));
MDR_PORTF->PWR |= ((PORT_SPEED_MAXFAST << 2*2) |
(PORT_SPEED_MAXFAST << 1*2) |
(PORT_SPEED_MAXFAST << 3*2) |
(PORT_SPEED_MAXFAST << 0*2));
MDR_SSP1->CPSR = 4;
MDR_SSP1->CR0= (SSP_SPO_Low | SSP_SPH_1Edge | (2 << 8)
| SSP_FRF_SPI_Motorola | SSP_WordLength8b);
MDR_SSP1->CR1= (SSP_HardwareFlowControl_SOD |
SSP_ModeSlave |
SSP_HardwareFlowControl_SSE);
DMA_init();
SPI_init_DMA();
}


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 240 сообщений ]  На страницу « 15 6 7 8 916 »

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти: 

Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB