Миландр

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

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




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

Зарегистрирован: 2009-янв-20 10:05
Сообщения: 777
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
Сообщения: 734
Откуда: АО "ПКК Миландр"
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
Сообщения: 734
Откуда: АО "ПКК Миландр"
Значение регистра 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+03:00


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

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


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

Перейти: 

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