Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Продукция MICROCHIP

Продукция MICROCHIP Технические вопросы по всей продукции Microchip

Ответ
 
Опции темы Опции просмотра
Старый 27.06.2014, 17:14   #1
Venom
Senior Member
 
Регистрация: 19.05.2009
Сообщений: 319
Вес репутации: 127/39
Venom will become famous soon enoughVenom will become famous soon enough
По умолчанию PIC32MZ

Уарт и ШИМ запустил.
Сейчас пытаюсь уарт с ДМА соединить. Пока ноль внимания, фунт презрения.
Вот код
Код:
    IEC1CLR=0x00010000; // disable DMA channel 0 interrupts
    IFS1CLR=0x00010000; // clear any existing DMA channel 0 interrupt flag

    DMACON=0;
    DMACONbits.ON=1; //Enable the DMA
    DCH0ECON=(_UART1_TX_VECTOR<<8)|0x30;
    

    DCH0DAT='\r';

    DCH0CONbits.CHEDET=1;
    DCH0CONbits.CHAED=1;
    DCH0CONbits.CHCHN=0;

    DCH0SSA=VirtToPhys(UART1Data); // transfer source physical address
    DCH0DSA=VirtToPhys(&U1RXREG); // transfer destination physical address

    DCH0SSIZ=10;
    DCH0DSIZ=1; // dst size is 1 byte
    DCH0CSIZ=1; // one byte per UART transfer request

    DCH0INTCLR=0x00ff00ff;
    DCH0INTbits.CHBCIE=1;
    DCH0INTbits.CHERIE=1;


    _DMA0IE=1;
    _DMA0IF=0;
    _DMA0IP=4;
    _DMA0IS=2;

    DCH0CONbits.CHEN=1;
    DCH0ECONbits.CFORCE=1;
Целевые адреса вроде верны (проверил по дебаггеру), но порт молчит... Если вручную байты отправляю - то всё ок.

Последний раз редактировалось Venom; 27.06.2014 в 17:25.
Venom вне форума   Ответить с цитированием
Старый 30.06.2014, 14:54   #2
Venom
Senior Member
 
Регистрация: 19.05.2009
Сообщений: 319
Вес репутации: 127/39
Venom will become famous soon enoughVenom will become famous soon enough
По умолчанию Re: появились датащиты на PIC32MZ EC

Кто-нибудь, поделитесь, пожалуйста, рабочим кодом для UART и SPI с прерыванием по передаче для Pic32. Мне нужно сравнить хотя бы.
А то не работает прерывание и ДМА вообще никак...

Если что - вот код настройки на прерывание по UART по передаче.
Самое непонятное, что он не сбрасывает флаг прерывания _U1IF. Он всегда в единице.

Код:
void IniUART1(void)
{
    U1MODE=0;
    U1STA=0;
    U1BRG=SysFreq/(4*57600)-1;
    U1MODEbits.BRGH=1;
    
    U1STAbits.URXEN=1;
    U1STAbits.UTXEN=1;
    U1STAbits.UTXISEL=0x01;


    _U1RXIF=0;
    _U1RXIP=2;
    _U1RXIE=0;

    _U1TXIF=0;
    _U1TXIP=5;
    _U1TXIS=2;
    _U1TXIE=1;

    U1MODEbits.ON=1;

}

void SendUD1(BYTE x)//Отправка работает нормально, если слать по одному байту
{   int cx=0xffff;
    while(U1STAbits.UTXBF==1) if (cx--<10) break;
    U1TXREG=x;
}

//описание прерывания по УАРТ. Не заходит и ногу не опрокидывает.
void __attribute__((vector(_UART1_TX_VECTOR), interrupt(IPL7AUTO), nomips16)) _UART1TXInterrupt(void)
{
    _U1TXIF=0;
    LATBbits.LATB11=b;
//SendU1byDMA(&UART1Data[0],128);
}
Venom вне форума   Ответить с цитированием
Старый 30.06.2014, 15:17   #3
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,140
Вес репутации: 4450/123
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: появились датащиты на PIC32MZ EC

Цитата:
Сообщение от Venom Посмотреть сообщение
Кто-нибудь, поделитесь, пожалуйста, рабочим кодом для UART и SPI с прерыванием по передаче для Pic32. Мне нужно сравнить хотя бы.
А то не работает прерывание и ДМА вообще никак...

Если что - вот код настройки на прерывание по UART по передаче.
Самое непонятное, что он не сбрасывает флаг прерывания _U1IF. Он всегда в единице.

Код:
void IniUART1(void)
{
    U1MODE=0;
    U1STA=0;
    U1BRG=SysFreq/(4*57600)-1;
    U1MODEbits.BRGH=1;
    
    U1STAbits.URXEN=1;
    U1STAbits.UTXEN=1;
    U1STAbits.UTXISEL=0x01;


    _U1RXIF=0;
    _U1RXIP=2;
    _U1RXIE=0;

    _U1TXIF=0;
    _U1TXIP=5;
    _U1TXIS=2;
    _U1TXIE=1;

    U1MODEbits.ON=1;

}

void SendUD1(BYTE x)//Отправка работает нормально, если слать по одному байту
{   int cx=0xffff;
    while(U1STAbits.UTXBF==1) if (cx--<10) break;
    U1TXREG=x;
}

//описание прерывания по УАРТ. Не заходит и ногу не опрокидывает.
void __attribute__((vector(_UART1_TX_VECTOR), interrupt(IPL7AUTO), nomips16)) _UART1TXInterrupt(void)
{
    _U1TXIF=0;
    LATBbits.LATB11=b;
//SendU1byDMA(&UART1Data[0],128);
}
таки MZ походу пока только у тебя одного есть... чего ж ты ждешь от нас?
__________________

Vanizma вне форума   Ответить с цитированием
Старый 30.06.2014, 15:18   #4
Venom
Senior Member
 
Регистрация: 19.05.2009
Сообщений: 319
Вес репутации: 127/39
Venom will become famous soon enoughVenom will become famous soon enough
По умолчанию Re: появились датащиты на PIC32MZ EC

Я про 32MX. Пока я предполагаю, что я напортачил с описанием прерываний в XC32.
И мне нужен пример работающего прерывания для MX для сравнения
Venom вне форума   Ответить с цитированием
Старый 30.06.2014, 15:20   #5
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,140
Вес репутации: 4450/123
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: появились датащиты на PIC32MZ EC

Цитата:
Сообщение от Venom Посмотреть сообщение
Я про 32MX. Пока я предполагаю, что я напортачил с описанием прерываний в XC32.
И мне нужен пример работающего прерывания для MX для сравнения
без ДМА есть
с прикрученным freertos
__________________

Vanizma вне форума   Ответить с цитированием
Старый 30.06.2014, 15:22   #6
Venom
Senior Member
 
Регистрация: 19.05.2009
Сообщений: 319
Вес репутации: 127/39
Venom will become famous soon enoughVenom will become famous soon enough
По умолчанию Re: появились датащиты на PIC32MZ EC

Прошу привести код!
Я сейчас как будет двигаться дело - буду сюда скидывать готовые проекты. Таким образом тем, кто будет осваивать это семейство с началом поставок будет куда проще.
P.S. ДМА в режиме перекладывания данных из одного буфера в другой вполне работает.

Последний раз редактировалось Venom; 30.06.2014 в 15:28.
Venom вне форума   Ответить с цитированием
Старый 30.06.2014, 15:28   #7
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,140
Вес репутации: 4450/123
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: появились датащиты на PIC32MZ EC

Цитата:
Сообщение от Venom Посмотреть сообщение
Прошу привести код!
Я сейчас как будет двигаться дело - буду сюда скидывать готовые проекты. Таким образом тем, кто будет осваивать это семейство с началом поставок будет куда проще.
Код:
void vDMA0InterruptHandler(void);
void vUART3InterruptHandler(void);
void __attribute__( (interrupt(ipl2), vector(_DMA_0_VECTOR))) vDMA0InterruptWrapper( void );
void __attribute__( (interrupt(ipl2), vector(_UART_3_VECTOR))) vUART3InterruptWrapper( void );
// *****************************************************************************
// *****************************************************************************
// Section: Функция связи и содулем
// *****************************************************************************
// *****************************************************************************
void vDMA0InterruptHandler(void)
{
	BaseType_t xHigherPriorityTaskWoken;
	tTrmtEventType flag = TRMT_FLAG;
	DmaChnClrEvFlags(DMA_CHANNEL0, DMA_EV_BLOCK_DONE);
	/* We have not woken a task at the start of the ISR. */
    xHigherPriorityTaskWoken = pdFALSE;
	if( xQueueSendToBackFromISR( xTrmtQueue, &flag, &xHigherPriorityTaskWoken  ) == pdTRUE)
	{
		INTClearFlag(INT_DMA0);
		DmaChnDisable(DMA_CHANNEL0); /*Выключаем DMA0 */
		portEND_SWITCHING_ISR( xHigherPriorityTaskWoken );
	}
}

//Прерывание от UART3
void vUART3InterruptHandler(void)
{
    UART_LINE_STATUS status;
	if (INTGetFlag(INT_U3E) && INTGetEnable(INT_U3E))
	{
	    status = UARTGetLineStatus (UART3);
	    if (status & UART_OVERRUN_ERROR)
	        U3STAbits.OERR = 0;
	    if (status & UART_FRAMING_ERROR)
	        U3STAbits.FERR = 0;
	    if (status & UART_PARITY_ERROR)
	        U3STAbits.PERR = 0;
	    INTClearFlag(INT_U3E);
		UARTEnable( UART3, UART_DISABLE);
		UARTEnable( UART3, UART_ENABLE | UART_PERIPHERAL | UART_TX | UART_RX);

	}
	if (INTGetFlag(INT_U3RX) && INTGetEnable(INT_U3RX) || (INTGetFlag(INT_U3E)))//Прерывание от приемника UART3
	{
		uint8_t data;
	    status = UARTGetLineStatus (UART3);
		if (status & (UART_OVERRUN_ERROR | UART_FRAMING_ERROR | UART_PARITY_ERROR))
		{
			while (UARTGetLineStatus (UART3) & UART_DATA_READY)
				data = UARTGetDataByte(UART3);
			U3STAbits.OERR = 0;
	        U3STAbits.FERR = 0;
	        U3STAbits.PERR = 0;
			INTClearFlag(INT_U3E);
			INTClearFlag(INT_U3RX);
			UARTEnable( UART3, UART_DISABLE);
			UARTEnable( UART3, UART_ENABLE | UART_PERIPHERAL | UART_TX | UART_RX);
			return;
		}
		data = UARTGetDataByte(UART3);
		xQueueSendToBackFromISR( xRcvQueue, &data, NULL);
		INTClearFlag(INT_U3RX);			
	}
}

void InitModuleTrmt(uint32_t baudrate)
{
	if(xTrmtQueue == NULL)
		xTrmtQueue = xQueueCreate( 2, sizeof(tTrmtEventType) );
	if(xRcvQueue == NULL)
		xRcvQueue = xQueueCreate( MAX_DATA_SIZE+4, sizeof(uint8_t));
	taskDISABLE_INTERRUPTS();
	UARTConfigure( UART3, UART_ENABLE_PINS_TX_RX_ONLY );
	UARTSetFifoMode ( UART3, UART_INTERRUPT_ON_TX_NOT_FULL | UART_INTERRUPT_ON_RX_NOT_EMPTY );
	UARTSetDataRate ( UART3, GetPeripheralClock(),baudrate);
	UARTSetLineControl ( UART3, UART_DATA_SIZE_8_BITS | UART_PARITY_EVEN | UART_STOP_BITS_1 );
	U3STAbits.OERR = 0;
	UARTEnable( UART3, UART_ENABLE | UART_PERIPHERAL | UART_TX | UART_RX);
	INTSetVectorPriority(INT_UART_3_VECTOR, (INT_PRIORITY)2);
	INTSetVectorSubPriority(INT_UART_3_VECTOR, 0);
	INTEnable(INT_U3TX, INT_DISABLED);
	INTEnable(INT_U3RX, INT_ENABLED);
	DmaEnable(1);
	DmaChnSetEvEnableFlags(DMA_CHANNEL0, DMA_EV_BLOCK_DONE);
	DmaChnConfigure(DMA_CHANNEL0, DMA_CHN_PRI2, DMA_CONFIG_DEFAULT);
	DmaChnSetEventControl(DMA_CHANNEL0, DMA_EV_START_IRQ_EN|DMA_EV_START_IRQ(_UART3_TX_IRQ));
	INTSetVectorPriority(INT_DMA_0_VECTOR, INT_PRIORITY_LEVEL_2);
    INTSetVectorSubPriority(INT_DMA_0_VECTOR, INT_SUB_PRIORITY_LEVEL_0);
	INTClearFlag(INT_DMA0);
	INTEnable(INT_DMA0, INT_ENABLED);
	TXENpin_OFF();
	taskENABLE_INTERRUPTS();
}

Последний раз редактировалось Vanizma; 30.06.2014 в 15:35.
Vanizma вне форума   Ответить с цитированием
Старый 01.07.2014, 17:11   #8
Venom
Senior Member
 
Регистрация: 19.05.2009
Сообщений: 319
Вес репутации: 127/39
Venom will become famous soon enoughVenom will become famous soon enough
По умолчанию Re: PIC32MZ

Цитата:
Сообщение от Vanizma Посмотреть сообщение
я ничего не понял. но вопрос - оптимизация включена? если да, то предсказать работу gcc отладчиком практически не реально, переменные не отследить. даже volatile не помогает. но работает правильно
Оптимизация выключена.

Цитата:
Сообщение от bsogon
Вот как сказать-то..
смотрю я на инициализацию Вашей системы и понимаю, что маловато.
не может быть такого, чтобы pic32mx инициализировался столь коротко.
Там же кеш/префетчер настраивать, dma настраивать и.т.д - это довольно-таки некороткое дело.
почитайте внимательней.
*
я так понял вы plib используете - попробуйте без всего этого - уверен, Вы разберетесь и все будет нормально.
***
IPLxAUTO - зачем? почти всегда можно определить, кому отдать SRS, кому довольствоваться стеком. весьма нечасто, на мой взгляд, имеет смысл использовать auto.
Здесь даже не ДМА, а просто прерывание по передаче через УАРТ.

Не, не либами я всё настраиваю, а вручную загоняю биты в регистры.

Честно говоря, на эти IPLxAUTO я и грешу... Что я банально не разобрался, когда и что использовать. Думал, что по авто компилятор сам разберется, где переменные хранить при работе с прерываниями.

Переменные для ДМА располагаются в области KSAR1 и KSAR3. Я их туда уже задвинул и ДМА по перекладыванию из одного массива в другой вполне работает.
Venom вне форума   Ответить с цитированием
Старый 03.07.2014, 13:58   #9
Vint
Senior Member
 
Аватар для Vint
 
Регистрация: 08.06.2007
Сообщений: 494
Вес репутации: 838/54
Vint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to behold
По умолчанию Re: PIC32MZ

А что будет с BootLoader-ом. Новый надо ждать
для MZ, или от MX адаптировать (APP1388) пытаться.
Vint вне форума   Ответить с цитированием
Старый 03.07.2014, 13:59   #10
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,140
Вес репутации: 4450/123
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: PIC32MZ

Цитата:
Сообщение от Vint Посмотреть сообщение
А что будет с BootLoader-ом. Новый надо ждать
для MZ, или от MX адаптировать (APP1388) пытаться.
ну ты уж совсем ленивый. что его делать-то...
__________________

Vanizma вне форума   Ответить с цитированием
Старый 07.07.2014, 15:53   #11
Venom
Senior Member
 
Регистрация: 19.05.2009
Сообщений: 319
Вес репутации: 127/39
Venom will become famous soon enoughVenom will become famous soon enough
По умолчанию Re: PIC32MZ

С векторами частично разобрался. Надо было включить мультивекторный режим.
INTCONbits.MVEC=1;

Теперь другая проблема с этим прерыванием:
Код:
UTXISEL<1:0>: 
TX Interrupt Mode Selection bits
For 8-level deep FIFO UART modules:
11= Reserved, do not use
10= Interrupt is generated and asserted  while the transmit buffer is empty
01= Interrupt is generated and asserted when all characters have been transmitted
00= Interrupt is generated and asserted while the transmit buffer contains at least one empty space

______________
For UART modules having 8-level-deep FIFO, an interrupt is generated and asserted when the interrupt condition specified by the UTXISEL control 
bits is true. This means, to clear an interrupt for these modules, before clearing the corresponding UxTXIF flag bit, the user application must
ensure that the interrupt condition specified by the UTXISEL control bits is no  longer true.

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

Код:
void __attribute__((vector(_UART1_TX_VECTOR), interrupt(IPL5AUTO), nomips16)) _UART1TXInterrupt(void)
{
    c^=1;
    LATBbits.LATB11=c;
    IFS3CLR=0x00040000; //IFS3bits.U1TXIF=0;
}
Venom вне форума   Ответить с цитированием
Старый 07.07.2014, 16:15   #12
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,140
Вес репутации: 4450/123
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: PIC32MZ

Цитата:
Сообщение от Venom Посмотреть сообщение
С векторами частично разобрался. Надо было включить мультивекторный режим.
INTCONbits.MVEC=1;

Теперь другая проблема с этим прерыванием:
Код:
UTXISEL<1:0>: 
TX Interrupt Mode Selection bits
For 8-level deep FIFO UART modules:
11= Reserved, do not use
10= Interrupt is generated and asserted  while the transmit buffer is empty
01= Interrupt is generated and asserted when all characters have been transmitted
00= Interrupt is generated and asserted while the transmit buffer contains at least one empty space

______________
For UART modules having 8-level-deep FIFO, an interrupt is generated and asserted when the interrupt condition specified by the UTXISEL control 
bits is true. This means, to clear an interrupt for these modules, before clearing the corresponding UxTXIF flag bit, the user application must
ensure that the interrupt condition specified by the UTXISEL control bits is no  longer true.

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

Код:
void __attribute__((vector(_UART1_TX_VECTOR), interrupt(IPL5AUTO), nomips16)) _UART1TXInterrupt(void)
{
    c^=1;
    LATBbits.LATB11=c;
    IFS3CLR=0x00040000; //IFS3bits.U1TXIF=0;
}
ты не сбросишь, пока буфер пуст. это же передача, а не прием. запрещай прерывание. как только разрешил - сразу возникает прерывание, в нем и передавай.
написано же - прежде чем сбросить флаг, нужно проверить что не выполняется условие его установки...
а буфер точно глубиной 8? если 16 - там вроде другая логика была

PS такое ощущение - как будто первый твой пик, и сразу mz
__________________

Vanizma вне форума   Ответить с цитированием
Старый 07.07.2014, 16:21   #13
Venom
Senior Member
 
Регистрация: 19.05.2009
Сообщений: 319
Вес репутации: 127/39
Venom will become famous soon enoughVenom will become famous soon enough
По умолчанию Re: PIC32MZ

Цитата:
Сообщение от Vanizma Посмотреть сообщение
ты не сбросишь, пока буфер пуст. это же передача, а не прием. запрещай прерывание. как только разрешил - сразу возникает прерывание, в нем и передавай.
написано же - прежде чем сбросить флаг, нужно проверить что не выполняется условие его установки...
а буфер точно глубиной 8? если 16 - там вроде другая логика была

PS такое ощущение - как будто первый твой пик, и сразу mz
Только сейчас сообразил, что криво перевел текст!!!! -_-

Буферы на 32-х бывают только 4 и 8 разрядные.

Как раз-таки я очень долго сидел на 24-х, и привычки по работе с ним остаются. Потому на данном камне как будто с нуля... -_-


UPD: С этим победа.
Теперь ДМА + UART.

Последний раз редактировалось Venom; 07.07.2014 в 16:33.
Venom вне форума   Ответить с цитированием
Старый 07.07.2014, 16:30   #14
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,140
Вес репутации: 4450/123
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: PIC32MZ

Цитата:
Сообщение от Venom Посмотреть сообщение
Только сейчас сообразил, что криво перевел текст!!!! -_-

Буферы на 32-х бывают только 4 и 8 разрядные.

Как раз-таки я очень долго сидел на 24-х, и привычки по работе с ним остаются. Потому на данном камне как будто с нуля... -_-
да ладно... почти одно и тоже

да, глубина 8 ... а где ж я это 16 встречал у микрочипа...? или приснилось уже
__________________

Vanizma вне форума   Ответить с цитированием
Старый 07.07.2014, 17:07   #15
Venom
Senior Member
 
Регистрация: 19.05.2009
Сообщений: 319
Вес репутации: 127/39
Venom will become famous soon enoughVenom will become famous soon enough
По умолчанию Re: PIC32MZ

Это "почти" строится на мелочах. А как говорил Шерлок Холмс...

Или с АRM спутать могли. Мне что-то кажется, что я там в описании что-то такое же видел.
У 24-го были 4-х уровневые буферы.
Venom вне форума   Ответить с цитированием
Старый 09.09.2014, 13:55   #16
andreichk
Junior Member
 
Регистрация: 07.08.2012
Сообщений: 16
Вес репутации: 100/24
andreichk will become famous soon enoughandreichk will become famous soon enough
По умолчанию Re: PIC32MZ

Приветствую народ. Есть какие-нить позитивки в освоении данного девайса?
andreichk вне форума   Ответить с цитированием
Старый 09.09.2014, 14:45   #17
Venom
Senior Member
 
Регистрация: 19.05.2009
Сообщений: 319
Вес репутации: 127/39
Venom will become famous soon enoughVenom will become famous soon enough
По умолчанию Re: PIC32MZ

Ну я пока переразвожу ПП. ВСё-таки с АЦП меня капитально обломали. Хоть SPI вроде работает нормально судя по ДШ, но у меня уже закрадываются нехорошие подозрения.
И вообще настораживает, что обещали камень еще в июне, а уже сентябрь и нет никакой инфы. Вроде как ревизия А5 должна была быть.

И вообще вот http://www.analog.com/en/processors-...s/product.html
Venom вне форума   Ответить с цитированием
Старый 09.09.2014, 14:48   #18
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,140
Вес репутации: 4450/123
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: PIC32MZ

Цитата:
Сообщение от Venom Посмотреть сообщение
Ну я пока переразвожу ПП. ВСё-таки с АЦП меня капитально обломали. Хоть SPI вроде работает нормально судя по ДШ, но у меня уже закрадываются нехорошие подозрения.
И вообще настораживает, что обещали камень еще в июне, а уже сентябрь и нет никакой инфы. Вроде как ревизия А5 должна была быть.

И вообще вот http://www.analog.com/en/processors-...s/product.html
какая инфа нужна?
http://www.microchip.com/wwwproducts...32MZ1024ECG064
Pricing & Samples

в фарнелле едут.

Только без исправленных баг, типа неработающего rnd, они нафиг не нужны
__________________

Vanizma вне форума   Ответить с цитированием
Старый 09.09.2014, 14:53   #19
Venom
Senior Member
 
Регистрация: 19.05.2009
Сообщений: 319
Вес репутации: 127/39
Venom will become famous soon enoughVenom will become famous soon enough
По умолчанию Re: PIC32MZ

Я жду инфу, что они хотя бы половину косяков убрали, а не такой неотесанный камушек выкинули на рынок. А тут такое вот дело ... -_-
Venom вне форума   Ответить с цитированием
Старый 09.09.2014, 15:23   #20
andreichk
Junior Member
 
Регистрация: 07.08.2012
Сообщений: 16
Вес репутации: 100/24
andreichk will become famous soon enoughandreichk will become famous soon enough
По умолчанию Re: PIC32MZ

чипы на пп можно тут покупать http://www.ebay.de/itm/ADD-ON-BRD-PI...item5b019cc14e дороговато правда
andreichk вне форума   Ответить с цитированием
Старый 09.09.2014, 15:42   #21
andreichk
Junior Member
 
Регистрация: 07.08.2012
Сообщений: 16
Вес репутации: 100/24
andreichk will become famous soon enoughandreichk will become famous soon enough
По умолчанию Re: PIC32MZ

Народ, подскажите, как это переписать в удобоваримый вид для MZ ?

Код:
ConfigIntUART1(UART_RX_INT_EN | UART_TX_INT_DIS | UART_ERR_INT_DIS
                                            | UART_INT_PR1 | UART_INT_SUB_PR3);
//----------------------------------------------------------------------------OK
//--------------------------- НАСТРОЙКА ТАЙМЕРОВ -------------------------------
//------------------  ИНИЦИАЛИЗАЦИЯ INPUT CAPTURE ------------------------------
//таймер считает кол-во пришедших на измерительный вход импульсов. T1CK pin48
  OpenTimer1(T1_ON | T1_SOURCE_EXT | T1_PS_1_1, 0xFFFF);
  ConfigIntTimer1(T1_INT_ON | T1_INT_PRIOR_1|T1_INT_SUB_PRIOR_0);
//время 100 мсек будет отсчитываться отдельным 32-х битным таймером
  OpenTimer23(T23_ON | T23_SOURCE_INT | T23_PS_1_1 | T23_32BIT_MODE_ON, 0x7A1200);
  ConfigIntTimer23(T23_INT_ON | T23_INT_PRIOR_1 | T23_INT_SUB_PRIOR_1);
// Enable the IC2 module in 32-bit mode, capturing every rise edge.
  OpenCapture2(IC_CAP_32BIT | IC_TIMER2_SRC | IC_INT_1CAPTURE | IC_EVERY_RISE_EDGE | IC_OFF);
  ConfigIntCapture2(IC_INT_ON | IC_INT_PRIOR_1|IC_INT_SUB_PRIOR_2);
  EnableIntIC2;
и соответственно это:

Код:
//======================= Обработчик прерываний ================================
// Обработка прерывания по приему байта сo SPARTAN6
UARTBuffer  UART;
void   __ISR(_UART_1_VECTOR, ipl1) U1InterruptHandler(void){
     do {
       UART.buf[UART.wr++] = U1RXREG;
       if (UART.wr >= BUFSIZEUART) UART.wr = 0;
       U1STAbits.OERR = 0;
    }while (U1STAbits.URXDA);
 mU1ClearAllIntFlags(); //очистка флагов прерывания модуля UART1  //_U1RXIF = 0;
}//-----------OK

//------------------- Обработчик прерывания input capture ---------------------- 
ulong Period=0;
ulong DeltaP=0, DeltaM=0;
ulong T1L=0, T1=0, T1H=0;
uchar NewData=0;
void __longramfunc__ __ISR(_INPUT_CAPTURE_2_VECTOR, ipl1) _ic2(void){
            T1L = TMR1;    // копируем сколько насчиталось периодов
           TMR1 = 0;       // обнуляем таймер
             T1 = T1H;     // копируем сколько раз переполнился таймер 1
            T1H = 0;       // обнуляем
         DeltaP = IC2BUF;  // сохраняем время, когда пришел последний фронт на входе
        NewData = 1;       // выставляем флаг, что готовы данные для расчета
      IC2CONCLR = 0x8000;  // деактивация INPUT CAPTURE2
 IFS0bits.IC2IF = 0;       // Clear flag
}//--OK
//---------------- Обработчик прерывания таймера 23 ----------------------------
void __longramfunc__ __ISR
( _TIMER_23_VECTOR, ipl1) T23InterruptHandler(void){
       IFS0bits.IC2IF = 0;     // Clear flag на всякий случай
            IC2CONSET = 0x8000;// активация INPUT CAPTURE2
      mT23ClearIntFlag();
}//-------------------OK
//---------------- Обработчик прерывания таймера 1 -----------------------------
void __longramfunc__ __ISR
( _TIMER_1_VECTOR, ipl1) T1InterruptHandler(void){
    T1H++;
    mT1ClearIntFlag();
}//---------------------OK
//---------------- вычисление значения периода ---------------------------------
double frequenz(void){
if(NewData){
                T1 = T1<<16;
               T1 += T1L;
            Period = (double)( 0x7A1200 + DeltaP - DeltaM )/T1;//7A1200
            DeltaM = DeltaP;
           NewData = 0;
          }
    return (double)Period;
}//-------------------------------------------------OK
andreichk вне форума   Ответить с цитированием
Старый 09.09.2014, 16:39   #22
cauchy
Junior Member
 
Регистрация: 02.09.2014
Сообщений: 5
Вес репутации: 100/0
cauchy will become famous soon enoughcauchy will become famous soon enough
По умолчанию Re: PIC32MZ

Цитата:
Сообщение от Venom
Теперь ДМА + UART.
По поводу DMA можете посмотреть вот этот документ, конкретно "DMA and Cache Coherency".
Цитата:
Сообщение от andreichk
Народ, подскажите, как это переписать в удобоваримый вид для MZ ?
PLIB больше не поддерживается. Выкачиваем Microchip harmony, открываем help и смотрим как теперь работаем с периферией.
cauchy вне форума   Ответить с цитированием
Старый 09.09.2014, 17:23   #23
andreichk
Junior Member
 
Регистрация: 07.08.2012
Сообщений: 16
Вес репутации: 100/24
andreichk will become famous soon enoughandreichk will become famous soon enough
По умолчанию Re: PIC32MZ

Цитата:
Сообщение от cauchy Посмотреть сообщение
PLIB больше не поддерживается. Выкачиваем Microchip harmony, открываем help и смотрим как теперь работаем с периферией.
при попытке установить эту самую гармонию, мелкочип просто отказывает в доступе... замечательно
andreichk вне форума   Ответить с цитированием
Старый 09.09.2014, 17:53   #24
cauchy
Junior Member
 
Регистрация: 02.09.2014
Сообщений: 5
Вес репутации: 100/0
cauchy will become famous soon enoughcauchy will become famous soon enough
По умолчанию Re: PIC32MZ

Цитата:
Сообщение от andreichk Посмотреть сообщение
при попытке установить эту самую гармонию, мелкочип просто отказывает в доступе... замечательно
Видимо проблема у Вас. У меня замечательно установилось и работает потихонечку...
cauchy вне форума   Ответить с цитированием
Старый 09.09.2014, 17:59   #25
andreichk
Junior Member
 
Регистрация: 07.08.2012
Сообщений: 16
Вес репутации: 100/24
andreichk will become famous soon enoughandreichk will become famous soon enough
По умолчанию Re: PIC32MZ

Цитата:
Сообщение от cauchy Посмотреть сообщение
Видимо проблема у Вас. У меня замечательно установилось и работает потихонечку...
киньте ссылку если не влом
andreichk вне форума   Ответить с цитированием
Ответ

Метки
dma, interrupt, pic32mz, spi, uart


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
появились датащиты на PIC32MZ EC Алексей Продукция MICROCHIP 154 16.03.2015 10:43


Часовой пояс GMT +3, время: 15:52.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot