Yuri Panchul (panchul) wrote,
Yuri Panchul
panchul

Певица Руслана знакомится с Silicon Valley

Девушку на фото рядом со мной зовут Руслана. Она приехала в Сан-Франциско из Киева, где работает певицей. Мы познакомились на парти, организованной в честь конференции UTGEM, которая проводится, чтобы знакомить инвесторов и компании Silicon Valley c потенциальными партнерами на Украине:

yuri_panchul_and_ruslana

Я тоже записался на конференцию, по следущей причине. Несмотря на то, что в Украине нет, насколько я знаю, групп разработчиков систем на кристалле (System on Chip - SoC), и посему там нет и рынка для Semiconductor IP, тем не менее в Украине есть серьезные разработчики встроенных систем и программисты микроконтроллеров.

Поэтому я решил заглянуть на конференцию и даже собираюсь принести завтра несколько плат с новым микроконтроллером Microchip PIC32MZ на основе экономичного ядра MIPS microAptiv UP, в разработке которого я принимал небольшое участие в Imagination Technologies в Санта Клара, Калифорния. В частности я разрабатывал модели интефейсов шины AHB-Lite, reference slaves и другие средства интеграции процессорного ядра в систему на кристалле, которую разработал наш лицензиат Microchip Technology в Аризоне.

2014-09-16 22.54.51


2014-09-16 22.59.36

Микроконтроллер PIC32MZ является в текущий момент самым высокопроизводительным устройством в своем микроконтроллерном классе в мире, с большими кэшами, TLB MMU и DSP extension. Это не корпоративная пропаганда. См. независимое сравнение в The Microprocessor Report. Это журнал, подписка на который стоит тысячу долларов в год (около 12 тысяч гривен), и его подписчики платят столько именно потому, что статьи в нем независимы:


http://www.linleygroup.com/newsletters/newsletter_detail.php?num=5117

MIPS MCUs Outrun ARM
February 18, 2014
Author: Tom R. Halfhill

Microchip’s newest 32-bit microcontrollers not only match the features of their Cortex-M4 competitors but also achieve higher EEMBC CoreMark scores. The new PIC32MZ EC family is powered by a MIPS microAptiv CPU core running at 200MHz—a speed demon by MCU standards.

These MCUs have more memory than comparable chips (up to 2MB of flash and 512KB of SRAM) plus Ethernet, Hi-Speed USB2.0, an LCD interface, and a cryptography accelerator. An early sample scored 654 CoreMarks—the highest EEMBC-certified score for any 32-bit MCU executing from internal flash memory.

Microchip’s earlier PIC32MX family uses the smaller MIPS32 M4K core running at a maximum clock speed of 100MHz. The microAptiv CPU in the new family not only runs twice as fast but also supports the microMIPS 32-bit instruction-set architecture. MicroMIPS combines 16- and 32-bit instructions to achieve better code density than previous MIPS32 cores or even Cortex-M cores using 16/32-bit Thumb-2 instructions. Microchip claims the PIC32MZ family has 30% better code density than similar ARM-based MCUs. Also, microAptiv adds 159 new signal-processing instructions.

The PIC32MZ family is designed for high-end controller applications, such as vehicle dashboard systems, building environmental controls, and consumer-appliance control modules. Some PIC32MZ chips will begin volume production in March, and the remainder by mid-year. Prices for 10,000-unit volumes will range from $6.68 to about $10—relatively expensive for MCUs but reasonable for the performance and features.


Теперь для тех, кто хочет попробовать новый микроконтроллер. У PIC32MZ довольно сложный набор тактовых сигналов, поэтому если вы просто скормите ему простую программу "поморгать лампочками" из книжки про PIC32MX через среду разработки MPLAB X, то он работать не будет. Чтобы он заработал, ему нужно поставить конфигурацию с помощью кучи прагм. Вообще у меня в загашнике есть всякие примеры, которые я привез из Аризоны в прошлом году, еще до выхода микроконтроллера в свет, и вы можете в них посмотреть - http://panchul.com/dropbox/2013_12_20/

Я также написал минимальный пример, который работает на плате и выглядит так:

#include <p32xxxx.h>

// *****************************************************************************
// *****************************************************************************
// Section: Device Configuration
// *****************************************************************************
// *****************************************************************************
// DEVCFG3
// USERID = No Setting

#pragma config FMIIEN = OFF             // Ethernet RMII/MII Enable (RMII Enabled)
#pragma config FETHIO = ON              // Ethernet I/O Pin Select (Default Ethernet I/O)
#pragma config PGL1WAY = ON             // Permission Group Lock One Way Configuration (Allow only one reconfiguration)
#pragma config PMDL1WAY = ON            // Peripheral Module Disable Configuration (Allow only one reconfiguration)
#pragma config IOL1WAY = ON             // Peripheral Pin Select Configuration (Allow only one reconfiguration)
#pragma config FUSBIDIO = OFF           // USB USBID Selection (Controlled by Port Function)

// DEVCFG2
#pragma config FPLLIDIV = DIV_3          // System PLL Input Divider (3x Divider)
#pragma config FPLLRNG  = RANGE_8_16_MHZ // System PLL Input Range (8-16 MHz Input)
#pragma config FPLLICLK = PLL_POSC       // System PLL Input Clock Selection (POSC is input to the System PLL)
#pragma config FPLLMULT = MUL_50         // System PLL Multiplier (PLL Multiply by 50)
#pragma config FPLLODIV = DIV_2          // System PLL Output Divider (divided by 2)
#pragma config UPLLFSEL = FREQ_24MHZ     // USB PLL Input Frequency Selection (USB PLL input is 24 MHz)
#pragma config UPLLEN   = OFF            // USB PLL Enable (USB PLL is disabled)

// DEVCFG1
#pragma config FNOSC = SPLL             // Oscillator Selection Bits (SPLL))
#pragma config FSOSCEN = OFF            // Secondary Oscillator Enable (Disable SOSC)
#pragma config POSCMOD = EC             // Primary Oscillator Configuration (External Clock mode)
#pragma config OSCIOFNC = ON            // CLKO Output Signal Active on the OSCO Pin (Enabled)
#pragma config FCKSM = CSECME           // Clock Switching and Monitor Selection (Clock Switch Enabled, FSCM Enabled)
#pragma config IESO = OFF               // Internal/External Switch Over (Disabled)
#pragma config DMTINTV = WIN_127_128    // DMT Count Window Interval (Window/Interval value is 127/128 counter value)
#pragma config WDTPS = PS1048576        // Watchdog Timer Postscaler (1:1048576)
#pragma config WDTSPGM = STOP           // Watchdog Timer Stop During Flash Programming (WDT stops during Flash programming)
#pragma config WINDIS = NORMAL          // Watchdog Timer Window Mode (Watchdog Timer is in non-Window mode)
#pragma config FWDTEN = OFF             // Watchdog Timer Enable (WDT Disabled)
#pragma config FWDTWINSZ = WINSZ_25     // Watchdog Timer Window Size (Window size is 25%)
#pragma config FDMTEN = OFF             // Deadman Timer Enable (Deadman Timer is disabled)

/* DEVCFG0 */
#pragma config EJTAGBEN = NORMAL        // Normal EJTAG Functionality
#pragma config DBGPER = PG_ALL          // Allow CPU access to all permission groups in debug mode
#pragma config FSLEEP = OFF             // Flash is not power-down during device sleep mode
#pragma config FECCCON = OFF_UNLOCKED   // ECC enabled
#pragma config BOOTISA = MIPS32         // MIPS32 ISA selected
#pragma config TRCEN = OFF              // Trace function is OFF
#pragma config ICESEL = ICS_PGx2        // 2-wire debug is doen through PGx2 pins
#pragma config JTAGEN = OFF             // JTAG pins disabled
#pragma config DEBUG = ON               // Debug is ON

// DEVCP0
#pragma config CP = OFF                 // Code Protect (Protection Disabled)

void delay (int n)
{
    n *= 1000;

    while (n --)
        asm volatile ("nop");
}

void main (void)
{
    TRISGbits.TRISG15 = 0;

    for (;;)
    {
        PORTGbits.RG15 = 1;
        delay (10000);
        PORTGbits.RG15 = 0;
        delay (10000);
    }
}


Да, в вот видео Русланы на нашей встрече:




Вам понравилось?

Да!!! Панчул, я завтра буду в Сан-Франциско и жажду взять у тебя плату на исследование на Украине!
2(3.4%)
Да!!! Большие кэши и TLB MMU в микроконтроллере это круто! Плата у меня уже есть, спасибо, Панчул
3(5.1%)
Микроконтроллеры - это прикольно, но мне нужны высокопроизводительные чипы с 64-битным суперскалярным MIPS I6400. ГДЕ ОН?! (Пожалуюсь Руслане)
7(11.9%)
Да! Руслана очень симпатична! Позаботься о ней Панчул завтра
17(28.8%)
Блоггерша Наталья Радулова будет недовольна
30(50.8%)
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 250 comments
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →