Миландр

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

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




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: 1886ВЕ3У
СообщениеДобавлено: 2009-май-21 16:01 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 2009-янв-20 10:05
Сообщения: 778
8-ми разрядный микроконтроллер 1886ВЕ3У


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 2011-фев-09 21:24 
Не в сети

Зарегистрирован: 2010-дек-23 23:33
Сообщения: 9
Доброго времени суток. Дали на освоение плату EVAL9 с ВЕ3 (стала необходима связь по USB).
Постараюсь кратко описать возникшие вопросы:
1. Так и не нашёл способа заблокировать FIFO оконечной точки (хотя соответствующий статусный флаг есть).
Вопрос: возможно ли как-то отправить ГАРАНТИРОВАННО В ОДНОЙ ТРАНЗАКЦИИ несколько байт, т.е. предотвратить ситуацию, когда я забиваю буфер, а в это время приходит IN-запрос, и всё, что уже в буфере, отправялется к хосту?
2. На что влияет значение в регистре EP#_CFG1(регистр максимального размера пакета оконечной точки)?(Ведь на фактический размер пакета влияет значение, указываемое в дескрипторе оконечной точки...)
3. Дескрипторы описываются в строгом соответствии с таблицей из спецификации (нельзя, например, добавить новый дескриптор, заменив имеющиеся в таблице)?
4. Как следствие вопроса №3: Возможно ли на ВЕ3 создать HID-устройство?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 2011-фев-10 13:04 
Не в сети

Зарегистрирован: 2010-июл-08 08:50
Сообщения: 733
Откуда: АО "ПКК Миландр"
FIFO 1-й оконечной точки можно заблокировать с помощью бита BLOCK_EP1 в регистре EP1_CFG2, FIFO 2-й оконечной точки - BLOCK_EP2 в регистре EP2_CFG2.
Вы можете установить бит BLOCK_EP#, записать необходимое количество байт в буфер и сбросить этот бит, как только вы сбросите этот бит, данные из соответствующего буфера уйдут при приеме IN-запроса, пока бит BLOCK_EP# установлен, контроллер не будет передавать данные из буфера. Таким образом, запишите необходимое кол-во байт в буфер, подождите пока они уйдут, а потом уже заполняйте буфер дальше.

В спецификации приведен пример заполнения дескриптора. В дескрипторе есть поля с обязательным значением и рекомендуемым. Поля с обязательным значением необходимо повторить в вашем проекте, поля с рекомендуемыми значениями можно менять, но работа контроллера с такими значениями дескриптора не гарантируются. Новый дескриптор добавить нельзя, возможно менять только значение полей дескриптора.

На ВЕ3 создать HID-устройство нельзя.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 2011-фев-10 13:45 
Не в сети

Зарегистрирован: 2010-июл-08 08:50
Сообщения: 733
Откуда: АО "ПКК Миландр"
Значение регистра EP#_CFG1 и соответствующее поле в дескрипторе должны совпадать. В дескрипторе вы сообщаете размер пакета хост-контроллеру, а в регистре EP#_CFG1 вы сообщаете размер пакета собственно ВЕ3.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 2011-фев-10 18:16 
Не в сети

Зарегистрирован: 2010-дек-23 23:33
Сообщения: 9
Petr, спасибо.
С помощью бита BLOCK_EP1 пробовал блокировать, но на стороне компа у нашего программиста выскакивали тогда какие-то ошибки (работает он под МСВС). Я и подумал, что так каким-то образом совсем блокируется работа точки:oops: Будем экспериментировать :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 2011-авг-30 07:29 
Не в сети

Зарегистрирован: 2011-авг-30 07:06
Сообщения: 1
Здравствуйте. Возникла сложность с использованием NAND Flash интерфейса в микроконтроллере 1886ВЕ3У. Пытаемся произвести запись во внешнюю память, контроллер выполняет запись 31 слова и перестает выполнять какие-либо действия.
Код упростили уже до такого вида (прерывания запрещены):

MOVLB Bank6;
CLRF NAND_MODE,1;
BSF EN_NAND;

NAND:
BTFSC BUSY_NAND;
goto NAND;
BCF MODE2_NAND;
BSF MODE0_NAND;
MOVFP AD0, NAND_DATA;
MOVFP AD1, NAND_DATA;
MOVFP AD2, NAND_DATA;
MOVFP AD3, NAND_DATA;

wait:
BTFSC BUSY_NAND;
goto wait;
BCF MODE0_NAND;
BSF MODE2_NAND;
MOVFP INDF0, NAND_DATA;
MOVFP INDF0, NAND_DATA;
MOVFP INDF0, NAND_DATA;
MOVFP INDF0, NAND_DATA;
INCF AD_3;
goto NAND

Будем признательны за подсказку.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 2011-авг-30 16:55 
Не в сети

Зарегистрирован: 2009-май-25 15:07
Сообщения: 158
Откуда: АО "ПКК Миландр"
Misile_Corp писал(а):
Здравствуйте. Возникла сложность с использованием NAND Flash интерфейса в микроконтроллере 1886ВЕ3У. Пытаемся произвести запись во внешнюю память, контроллер выполняет запись 31 слова и перестает выполнять какие-либо действия.
Код упростили уже до такого вида (прерывания запрещены):
Код:
MOVLB Bank6;
CLRF NAND_MODE,1;
BSF EN_NAND;

NAND:
BTFSC BUSY_NAND;
           goto NAND;
BCF MODE2_NAND;
BSF MODE0_NAND;
MOVFP AD0, NAND_DATA;
MOVFP AD1, NAND_DATA;
MOVFP AD2, NAND_DATA;
MOVFP AD3, NAND_DATA;

wait:
BTFSC BUSY_NAND;
            goto wait;
BCF MODE0_NAND;
BSF MODE2_NAND;
MOVFP INDF0, NAND_DATA;
MOVFP INDF0, NAND_DATA;
MOVFP INDF0, NAND_DATA;
MOVFP INDF0, NAND_DATA;
INCF AD_3;
goto NAND

Будем признательны за подсказку.

Из Вашего вопроса непонятно, где инкрементируется адрес, что такое AD_3, в каком состоянии PD2 и PD7 (если схема соответствует той, что в спецификации).
Приведите или в приложении к вопросу или в вопросе реальную программу.
Пожалуйста, выделяйте программу тегами: [codе] [/codе].


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 1886ВЕ3У
СообщениеДобавлено: 2015-окт-15 13:35 
Не в сети

Зарегистрирован: 2015-окт-15 13:25
Сообщения: 2
Здравствуйте, при попытке стереть память контроллера, Progr2010 сообщила следующую новость
Перегрузка шины Vpp! Параметры команды неверны!.
Для работы используется отладочная плата Eval9_Ver2. Подключение и отключение программатора проводилось строго, как указано в документации. За 2 недели вышло из строя 2 микроконтроллера . Как реанимировать контроллеры 1886ВЕ31У?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 1886ВЕ3У
СообщениеДобавлено: 2015-окт-15 16:39 
Не в сети

Зарегистрирован: 2009-май-25 16:41
Сообщения: 206
Откуда: АО "ПКК Миландр"
sashok9306 писал(а):
Здравствуйте, при попытке стереть память контроллера, Progr2010 сообщила следующую новость
Перегрузка шины Vpp! Параметры команды неверны!.
Для работы используется отладочная плата Eval9_Ver2. Подключение и отключение программатора проводилось строго, как указано в документации. За 2 недели вышло из строя 2 микроконтроллера . Как реанимировать контроллеры 1886ВЕ31У?

Если выдается сообщение о перегрузки шины, то значит на этой шине программатор не видит выставленного напряжения. Причина либо дефект платы/программатора/неправильное подключение вызвавшее перегрузку, либо выход из строя вывода микроконтроллера Upp/MCLR (он начинает коротить на землю). Если второе, то это происходит в случае подачи напряжения Upp (12 вольт) при выполнении какой-либо операции программатора, при отсутствующем напряжении питания Ucc.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 1886ВЕ3У
СообщениеДобавлено: 2015-окт-22 15:10 
Не в сети

Зарегистрирован: 2015-окт-15 13:25
Сообщения: 2
Здравствуйте, не получается заставить работать блок шифрования данных.
Не ставится флаг готовности
Код:
#include "C:\Program Files (x86)\bknd\CC7A\int17xxx.h"
#include "D:\Programms\IDE1886 s pdc\Headers\1886VE3d.h"
#include "C:\Program Files (x86)\bknd\CC7A\math16.h"
/*
// таблица констант замены 64 байта пишется в обратном порядке
page1 const unsigned char Table[]={
   0xA4,0x85,0xC6,0xBD,0x29,0xD1,0x17,0x14,0x8D,0x3A,0xF5,0xF3,0xE0,0x24,0x8D,0x95,
   0xB6,0xFE,0xA4,0xA0,0xC1,0x7C,0xE9,0x7E,0xF7,0x06,0x30,0x86,0x35,0xB9,0x2B,0xC2,
   0xBE,0xD7,0xB4,0xF1,0xC4,0x1A,0x0A,0x0D,0xD6,0x80,0x27,0x75,0xAF,0xF9,0xD1,0x4A,
   0x32,0x4E,0x63,0x29,0x18,0xC6,0x58,0xE3,0x70,0x2B,0xC9,0xB6,0x95,0x35,0xEF,0xC8};

   // ключ 32 байта      | 733D2C20 65686573 74746769 79676120
// пишется в обратном   | 626E7373 20657369 326C6568 33206D54
// порядке
page1 const unsigned char Key[]={
   0x54,0x69,0x20,0x73,0x6D,0x73,0x61,0x65,0x20,0x65,0x67,0x68,0x33,0x20,0x79,0x65,
   0x68,0x73,0x69,0x20,0x65,0x73,0x67,0x2C,0x6C,0x6E,0x74,0x3D,0x32,0x62,0x74,0x73};
const unsigned char Text[]={'C','r','y','p','t','o','!',' ',};   
//#pragma rambank 2
unsigned char DataTransport;
unsigned char CryptoData[8];*/
unsigned char iterator;
#pragma origin 0x8
interrupt iServer(void)
{
    multi_interrupt_entry_and_save

PERIPHERAL_service:
TMR0_service:
    // save on demand: PRODL,PRODH,TBLPTRH,TBLPTRL,FSR0,FSR1
    /* process Timer 0 interrupt */
    // T0IF is automatically cleared when the CPU vectors to 0x10
    // restore on demand: PRODL,PRODH,TBLPTRH,TBLPTRL,FSR0,FSR1
T0CKI_service:
INT_service:
    interrupt_exit_and_restore
}
/******************/
void InitCrypto(void)
{
    // простой замены
   // сброс
   //DebugBreakPoint;
    CRPT_CWR=0b01000000;
   //DebugBreakPoint;
   // заполняем констами замены и ключами служебные регистры
   //DebugBreakPoint;
   for(iterator=0;iterator<32;iterator++)
   {
      //DataTransport=Key[iterator];
      CRPT_KR=0x31;
   }
   //DebugBreakPoint;
   for(iterator=0;iterator<64;iterator++)
   {
      //DataTransport=Table[iterator];
      CRPT_CR=0x32;
   }
   //CRPT_CWR=0;
   //DebugBreakPoint;
    CRPT_CWR=0b00000000;
   for(iterator=0;iterator<8;iterator++)
   {
      CRPT_DATA='C';
   }
   /*CRPT_DATA='C';
   CRPT_DATA='r';
   CRPT_DATA='y';
   CRPT_DATA='p';
   CRPT_DATA='t';
   CRPT_DATA='o';
   CRPT_DATA='!';
   CRPT_DATA=' ';*/
    CRPT_CWR=0b00001000;
   //DebugBreakPoint;
}

void main(void)
{
   //DebugBreakPoint;
   InitCrypto();
   //DebugBreakPoint;
   DDRE=0;
   PORTE=0x50;
   // ждём конца преобразования
   while(1)
   {
      if(CRPT_SR&1)
      {
         PORTE=0xF0;
         // успех
         //DebugBreakPoint;
         break;
      }
      if(CRPT_SR&2)
      {
         PORTE=0x00;
         // ошибка
         //DebugBreakPoint;
         break;
      }
      //DebugBreakPoint;
   }   
   while (1);
}

//#include "D:\usb\Debug.c"


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

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


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

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


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

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