Миландр

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

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 82 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения: Re: Проблемы с отладкой 1986BE8T
СообщениеДобавлено: 2016-авг-19 11:41 
Не в сети

Зарегистрирован: 2013-май-15 11:26
Сообщения: 81
Откуда: г.Новосибирск
Решил попробовать режим 0х66, для чего переставил перемычки и подтянул на землю выводы А[18:11], А[2:0], теперь программирование флеша не происходит, пишет что ошибки верификации....

В настройках проекта поменял диапазоны с 0x9000 на 0x60000 и изменил алгоритм программирования, контакты все прозвонил, где может бть подводный камень?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы с отладкой 1986BE8T
СообщениеДобавлено: 2016-авг-22 09:56 
Не в сети

Зарегистрирован: 2010-июл-08 08:50
Сообщения: 733
Откуда: АО "ПКК Миландр"
smashrod писал(а):
Спасибо и за этот ответ, но тут по ходу отладки новые выясняются непонятки... остановился на решиме D4, и при попытке добавить в код printf у меня опять отладка вылетает неизвестно куда... вообще не пойму что может трогать стандартная библиотека, кроме памяти....

По map файлу у меня 10кб код

Если используете Keil, то попробуйте выбрать Use MicroLIB на закладке Target в опциях проекта.
Функция printf передает данные через UART?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы с отладкой 1986BE8T
СообщениеДобавлено: 2016-авг-22 10:10 
Не в сети

Зарегистрирован: 2010-июл-08 08:50
Сообщения: 733
Откуда: АО "ПКК Миландр"
smashrod писал(а):
Решил попробовать режим 0х66, для чего переставил перемычки и подтянул на землю выводы А[18:11], А[2:0], теперь программирование флеша не происходит, пишет что ошибки верификации....

В настройках проекта поменял диапазоны с 0x9000 на 0x60000 и изменил алгоритм программирования, контакты все прозвонил, где может бть подводный камень?

Вот здесь есть проекты для Keil с использованием режимов 0xA5, 0x66, 0xC3, 0xD4. Попробуйте запустить их.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы с отладкой 1986BE8T
СообщениеДобавлено: 2016-авг-22 11:02 
Не в сети

Зарегистрирован: 2013-май-15 11:26
Сообщения: 81
Откуда: г.Новосибирск
Их и пытался, у меня выпадает ошибка верификации. Просто в документации написано и тут тоде писали, что ножки надо подтянуть к земле А[18:11] и A[2:0], получается при старке МК читает область верно, а потом перенастраивает диапазон на A[20:0]... Получается алгоритм программирования зашивает в ОЗУ и когда проверяет видит что-то не то... Может надо как то хтро припаивать или каки либо хитрые опции в настроках?

У меня нормально работет D4 режим, но мало памяти...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы с отладкой 1986BE8T
СообщениеДобавлено: 2016-авг-22 11:41 
Не в сети

Зарегистрирован: 2016-апр-29 14:29
Сообщения: 16
smashrod писал(а):
Спасибо за помощь!!!

Поскажите, есть где либо Programming Algorithm исходные коды? Чтобы сделать можно было свой на базе имеющихся, а еще в инструкциях были алгоритмы для прошивки в ОЗУ и OTP, в публичном доступе они будут?


Вот эти исходные коды можно использовать как примеры для создания своих FLM.


Вложения:
src_flm_1986VE8T.zip [49.24 КБ]
Скачиваний: 83

_________________
Отдел технической поддержки support@milandr.ru
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы с отладкой 1986BE8T
СообщениеДобавлено: 2016-авг-22 11:55 
Не в сети

Зарегистрирован: 2013-май-15 11:26
Сообщения: 81
Откуда: г.Новосибирск
Спасибо за исходники, получается по коду там ноги настраиваются как по документации, почему же тогда может не проходить верификация прошивки?

Может у кого работает выложит фото как надо доработтать и какие дествия дополнительно надо сделать в отличе от режима D4


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы с отладкой 1986BE8T
СообщениеДобавлено: 2016-авг-23 18:53 
Не в сети

Зарегистрирован: 2016-апр-27 12:14
Сообщения: 21
Раз уж здесь обсуждают внешнюю RAM, то спрошу.
Есть проблема с записью во внешнюю память. Пишется почему-то только младший байт 32-битного слова. Сама программа работает из RAM контроллера (ROM с 0x20006000; RAM с 0x20000000).
Запускаю пример ext_bus_RAM. При этом в REGION[0].CNTRL записывается 0x30330301 (т.е. 26-й бит = 0)
В то же время в спецификации 6.7.1.2 REGION[n].CNTRL: .... 26 READ32 разрешение считывания 32-х разрядных слов при 16-ти и 8-ми битной шине MODE = 01 или 10 и в режиме работы без ECC. Должен ли быть установлен этот бит при работе с 1645РУ5У без ECC? Я попробовал и так и так - эффект один.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы с отладкой 1986BE8T
СообщениеДобавлено: 2016-авг-24 09:42 
Не в сети

Зарегистрирован: 2009-май-22 09:01
Сообщения: 1271
Откуда: АО "ПКК Миландр"
_oleg_ писал(а):
Раз уж здесь обсуждают внешнюю RAM, то спрошу.
Есть проблема с записью во внешнюю память. Пишется почему-то только младший байт 32-битного слова. Сама программа работает из RAM контроллера (ROM с 0x20006000; RAM с 0x20000000).
Запускаю пример ext_bus_RAM. При этом в REGION[0].CNTRL записывается 0x30330301 (т.е. 26-й бит = 0)
В то же время в спецификации 6.7.1.2 REGION[n].CNTRL: .... 26 READ32 разрешение считывания 32-х разрядных слов при 16-ти и 8-ми битной шине MODE = 01 или 10 и в режиме работы без ECC. Должен ли быть установлен этот бит при работе с 1645РУ5У без ECC? Я попробовал и так и так - эффект один.


А какой код исполняется ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы с отладкой 1986BE8T
СообщениеДобавлено: 2016-авг-24 09:48 
Не в сети

Зарегистрирован: 2013-май-15 11:26
Сообщения: 81
Откуда: г.Новосибирск
Неужели никто не отлаживается на режиме 0x66? Просто плата пришла с выставленными перемычками именно 0х66...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы с отладкой 1986BE8T
СообщениеДобавлено: 2016-авг-24 12:55 
Не в сети

Зарегистрирован: 2016-апр-27 12:14
Сообщения: 21
-=Sergei=- писал(а):
_oleg_ писал(а):
Раз уж здесь обсуждают внешнюю RAM, то спрошу.
Есть проблема с записью во внешнюю память. Пишется почему-то только младший байт 32-битного слова. Сама программа работает из RAM контроллера (ROM с 0x20006000; RAM с 0x20000000).
Запускаю пример ext_bus_RAM. При этом в REGION[0].CNTRL записывается 0x30330301 (т.е. 26-й бит = 0)
В то же время в спецификации 6.7.1.2 REGION[n].CNTRL: .... 26 READ32 разрешение считывания 32-х разрядных слов при 16-ти и 8-ми битной шине MODE = 01 или 10 и в режиме работы без ECC. Должен ли быть установлен этот бит при работе с 1645РУ5У без ECC? Я попробовал и так и так - эффект один.


А какой код исполняется ?

Код из примера ext_bus_RAM
Открыть
Код:
/**
  ******************************************************************************
  * @file    main.c
  * @author  Milandr Application Team
  * @version V1.0.0
  * @date    02/09/2015
  * @brief   This example shows how to configure External Bus and test it writing some data to external RAM, reading and verifying it
  ******************************************************************************
  * <br><br>
  *
  * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
  * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
  * TIME. AS A RESULT, MILANDR SHALL NOT BE HELD LIABLE FOR ANY
  * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
  * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
  * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
  *
  * <h2><center>&copy; COPYRIGHT 2015 Milandr</center></h2>
  */

/* Includes ------------------------------------------------------------------*/
#include "MDR1986VE8T.h"
#include "spec.h"

#include "mdr32f8_config.h"
#include "mdr32f8_port.h"
#include "mdr32f8_clkctrl.h"
#include "mdr32f8_ebc.h"

/** @addtogroup __MDR32F8_StdPeriph_Examples
  * @{
  */

/** @addtogroup __MDR32F8_Board_For_MCU
  * @{
  */

/** @addtogroup led_button_exti
  * @{
  */

/* Private typedef -----------------------------------------------------------*/
PORT_InitTypeDef PORT_InitStructure;
EBC_RGN_InitTypeDef EBC_RGNx_IS;
/* Private define ------------------------------------------------------------*/
//1645RU5U has 512 Kb
#define   NUM_BYTES   0x80000

#define NUM_WORDS   (NUM_BYTES >> 2)
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
uint32_t res;

uint32_t* addr;
uint32_t tmpRam, tmp1Ram, hasErrorRam;
uint32_t hr;

/* Private function prototypes -----------------------------------------------*/
void ExtBus_PortsConfig(void);
void TestRam_EbcConfig(void);
/* Private functions ---------------------------------------------------------*/

/**
  * @brief  Main program.
  * @param  None
  * @retval None
  */
int main(void)
{
   uint32_t tmp;
   
   /* Disable Power-on-Reset control. Hold the RESET button down until operation complete */
   POR_disable();
   /* Allow write to PORT regs */
   KEY_reg_accs();
   
   /* Set CLKCTRL to default */
   CLKCTRL_DeInit();
   
   /* Enable HSE0 clock */
   CLKCTRL_HSEconfig(CLKCTRL_HSE0_CLK_ON);
   
   /* Check HSE success, enable PLL0, check PLL0 success, select MAX_CLK src */
   while(CLKCTRL_HSEstatus(CLKCTRL_HSEn_STAT_HSE0_RDY) != SUCCESS){}
   
   CLKCTRL_MAX_CLKSelection(CLKCTRL_MAX_CLK_HSE0div1);   

   ExtBus_PortsConfig();
   TestRam_EbcConfig();

   addr = (uint32_t*)0x10000000;
   tmpRam = 0;      
         
   while(tmpRam < NUM_WORDS)
   {
      *addr++ = tmpRam++;
   }      
   
   addr = (uint32_t*)0x10000000;
   tmpRam = 0;
   tmp1Ram = 0;
   hasErrorRam = 0;
   
   while(tmpRam < NUM_WORDS)
   {
      tmp1Ram = *addr++;
      if(tmp1Ram != tmpRam) hasErrorRam++;
      tmpRam++;
   }   
   
   while(1);
   
}

void ExtBus_PortsConfig(void)
{
   CLKCTRL_PER0_CLKcmd(CLKCTRL_PER0_CLK_MDR_PORTC_EN, ENABLE);
   CLKCTRL_PER0_CLKcmd(CLKCTRL_PER0_CLK_MDR_PORTD_EN, ENABLE);
   CLKCTRL_PER0_CLKcmd(CLKCTRL_PER0_CLK_MDR_PORTE_EN, ENABLE);
   
   /*---------- Config DATA Bus of EBC ----------*/
   /*---------- PortD[31:30] - DATA[1:0]; PortE[5:0] - DATA[7:2] ----------*/   
   PORT_InitStructure.PORT_Pin   = (PORT_Pin_30|PORT_Pin_31);
   PORT_InitStructure.PORT_SFUNC  = PORT_SFUNC_2;
  PORT_InitStructure.PORT_SANALOG  = PORT_SANALOG_DIGITAL;
   PORT_InitStructure.PORT_SPWR = PORT_SPWR_10;
  PORT_Init(PORTD, &PORT_InitStructure);
      
   PORT_InitStructure.PORT_Pin   = (PORT_Pin_0|PORT_Pin_1|PORT_Pin_2|PORT_Pin_3|PORT_Pin_4|PORT_Pin_5);
   PORT_InitStructure.PORT_SFUNC  = PORT_SFUNC_2;
  PORT_InitStructure.PORT_SANALOG  = PORT_SANALOG_DIGITAL;
   PORT_InitStructure.PORT_SPWR = PORT_SPWR_10;
  PORT_Init(PORTE, &PORT_InitStructure);

   /*---------- Config ADDRESS Bus of EBC ----------*/
   /*---------- PortC[31:30] - Address[1:0], PortD[16:0] - Address[18:2] ----------*/
   PORT_InitStructure.PORT_Pin   = (PORT_Pin_30|PORT_Pin_31);
   PORT_InitStructure.PORT_SFUNC  = PORT_SFUNC_2;
  PORT_InitStructure.PORT_SANALOG  = PORT_SANALOG_DIGITAL;
   PORT_InitStructure.PORT_SPWR = PORT_SPWR_10;
  PORT_Init(PORTC, &PORT_InitStructure);

   PORT_InitStructure.PORT_Pin   = ( PORT_Pin_0|PORT_Pin_1|PORT_Pin_2|PORT_Pin_3|
                                                      PORT_Pin_4|PORT_Pin_5|PORT_Pin_6|PORT_Pin_7|
                                                      PORT_Pin_8|PORT_Pin_9|PORT_Pin_10|PORT_Pin_11|
                                                      PORT_Pin_12|PORT_Pin_13|PORT_Pin_14|PORT_Pin_15|PORT_Pin_16 );
   PORT_InitStructure.PORT_SFUNC  = PORT_SFUNC_2;
  PORT_InitStructure.PORT_SANALOG  = PORT_SANALOG_DIGITAL;
   PORT_InitStructure.PORT_SPWR = PORT_SPWR_10;
  PORT_Init(PORTD, &PORT_InitStructure);
   
   /*---------- Config nOE, nWE, nCS signals of EBC ----------*/
   /*---------- PortD[23] - nOE, PortD[24] - nWE, PortD[19] - nCS0 ----------*/   
   PORT_InitStructure.PORT_Pin   = (PORT_Pin_19|PORT_Pin_23|PORT_Pin_24);
   PORT_InitStructure.PORT_SFUNC  = PORT_SFUNC_2;
  PORT_InitStructure.PORT_SANALOG  = PORT_SANALOG_DIGITAL;
   PORT_InitStructure.PORT_SPWR = PORT_SPWR_10;
  PORT_Init(PORTD, &PORT_InitStructure);
}

void TestRam_EbcConfig(void)
{
   CLKCTRL_PER0_CLKcmd(CLKCTRL_PER0_CLK_MDR_EBC_EN, ENABLE);   
   EXT_BUS_CNTR->KEY = _KEY_;
   
   EBC_RGNx_IS.RGN_DIVOCLK = 3;
   EBC_RGNx_IS.RGN_WS_HOLD = 3;
   EBC_RGNx_IS.RGN_WS_SETUP  = 3;
   EBC_RGNx_IS.RGN_WS_ACTIVE = 3;
   EBC_RGNx_IS.RGN_MODE = EBC_MODE_8X;
   EBC_RGNx_IS.RGN_ECCEN = DISABLE;
   
   EBC_RGNx_Init(RGN0, &EBC_RGNx_IS);
   EBC_RGNx_Cmd(RGN0, ENABLE);
   
}
Закрыть


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы с отладкой 1986BE8T
СообщениеДобавлено: 2016-авг-24 13:44 
Не в сети

Зарегистрирован: 2015-июн-26 10:23
Сообщения: 50
_oleg_ писал(а):
Раз уж здесь обсуждают внешнюю RAM, то спрошу.
Есть проблема с записью во внешнюю память. Пишется почему-то только младший байт 32-битного слова. Сама программа работает из RAM контроллера (ROM с 0x20006000; RAM с 0x20000000).
Запускаю пример ext_bus_RAM. При этом в REGION[0].CNTRL записывается 0x30330301 (т.е. 26-й бит = 0)
В то же время в спецификации 6.7.1.2 REGION[n].CNTRL: .... 26 READ32 разрешение считывания 32-х разрядных слов при 16-ти и 8-ми битной шине MODE = 01 или 10 и в режиме работы без ECC. Должен ли быть установлен этот бит при работе с 1645РУ5У без ECC? Я попробовал и так и так - эффект один.


Битик, отвечающий за режим шины здесь не инициализируется - исправим, спасибо.

Произвести необходимую настройку можно строчкой: EXT_BUS_CNTR->RGN0_CNTRL |= (2<<4);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы с отладкой 1986BE8T
СообщениеДобавлено: 2016-авг-26 18:13 
Не в сети

Зарегистрирован: 2016-апр-27 12:14
Сообщения: 21
Dimulk писал(а):
_oleg_ писал(а):
Раз уж здесь обсуждают внешнюю RAM, то спрошу.
Есть проблема с записью во внешнюю память. Пишется почему-то только младший байт 32-битного слова. Сама программа работает из RAM контроллера (ROM с 0x20006000; RAM с 0x20000000).
Запускаю пример ext_bus_RAM. При этом в REGION[0].CNTRL записывается 0x30330301 (т.е. 26-й бит = 0)
В то же время в спецификации 6.7.1.2 REGION[n].CNTRL: .... 26 READ32 разрешение считывания 32-х разрядных слов при 16-ти и 8-ми битной шине MODE = 01 или 10 и в режиме работы без ECC. Должен ли быть установлен этот бит при работе с 1645РУ5У без ECC? Я попробовал и так и так - эффект один.


Битик, отвечающий за режим шины здесь не инициализируется - исправим, спасибо.

Произвести необходимую настройку можно строчкой: EXT_BUS_CNTR->RGN0_CNTRL |= (2<<4);

Cпасибо, так работает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы с отладкой 1986BE8T
СообщениеДобавлено: 2016-авг-29 09:15 
Не в сети

Зарегистрирован: 2013-май-15 11:26
Сообщения: 81
Откуда: г.Новосибирск
вопрос с отладкой еще открыт... Неужели никто не отлаживает в этом режиме?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы с отладкой 1986BE8T
СообщениеДобавлено: 2016-авг-29 16:57 
Не в сети

Зарегистрирован: 2010-июл-08 08:50
Сообщения: 733
Откуда: АО "ПКК Миландр"
smashrod писал(а):
вопрос с отладкой еще открыт... Неужели никто не отлаживает в этом режиме?
Как вариант, попробуйте посмотреть целостность шины адреса. Если режим 0xD4 работает, значит, шина адреса (A[15:0]) функционирует нормально. Остается проверить старшие линии шины адреса A[18:15]. Напишите маленькую программку, которая формирует импульсы на этих линиях и убедитесь с помощью осциллографа, что импульсы формируются.
Номинал резисторов подтяжки у вас какой? Я установил резисторы номиналом 10 кОм.
Какой размер программы? Попробуйте программу без применения ECC.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы с отладкой 1986BE8T
СообщениеДобавлено: 2016-авг-30 09:40 
Не в сети

Зарегистрирован: 2013-май-15 11:26
Сообщения: 81
Откуда: г.Новосибирск
На адресные входы обязательны резисторы на каждый пин? Смотрел другие схемы с памятью и данные через сопротивление потдягивались, тут напрямую на землю их посадили.

Если оставить только 8 бит адреса как писали выше, а остальные пины каждый через 10кОм сопротивления посадить на землю то должно работать?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 82 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

Часовой пояс: UTC + 3 часа


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

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


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

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB