Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Nowe mikrokontrolery PIC z peryferiami niezależnymi od rdzenia

ghost666 21 Mar 2017 22:15 2643 6
  • Nowe mikrokontrolery PIC z peryferiami niezależnymi od rdzenia
    Microchip reklamuje mikrokontrolery z rodziny PIC18F*K42* jako elastyczne platformy, mogące dopasować się do dowolnej aplikacji. Rodzina tych 8 bitowych układów składa się z 10 członków o szerokim zakresie parametrów: pamięcią flash od 16 do 128 KB czy obudowami od 28 do 48 pinów. Jednakże to nie elastyczność tej rodziny jest jej największą zaletą. Są nią peryferia tych układów, które działają niezależnie od rdzenia mikrokontrolera.

    Rodzina K42 pochwalić może się szerokim portfolio peryferiów CIP, tj. mogących funkcjonować samodzielnie, bez konieczności wykorzystywania czasu CPU układu. Są to sprzętowe systemy realizujące funkcje, które dotychczasowo zaimplementowane i obsługiwane były przez CPU mikrokontrolerów, redukując moc obliczeniową układów.

    Wykorzystanie peryferiów CIP pozwala na redukcję ilości potrzebnego kodu programu, mocy obliczeniowej rdzenia czy mocy energii pobieranej przez układ. Wiele z elementów tego typu to moduły mające zapewnić wysokie bezpieczeństwo realizowanych operacji. Spośród wszystkich peryferiów niezależnych od rdzenia wymienić można systemy cyklicznego sprawdzania redundancji (CRC), watchdoga, timery do pomiary sygnałów, limitery czy komplementarne jednostki operacji logicznych, umożliwiające sprzętowe wspierania wielu operacji w celu np. przyspieszenia obliczeń.

    Oprócz systemów CIP układy te wyposażono w szereg klasycznych peryferiów, takich jak przetwornik analogowo cyfrowy o rozdzielczości 12 bit, bezpośredni dostęp do pamięci (DMA), kontroler wektora przerwań itp. Dzięki bogatej ofercie wbudowanych systemów mikrokontrolery z tej rodziny znaleźć mogą szereg aplikacji w wielu sektorach, od systemów przemysłowych i motoryzacyjnych począwszy, a na układach sterowania aparaturą medyczną czy sprzętem AGD skończywszy.

    Inteligentna sekcja analogowa

    Oferowane mikrokontrolery mogą być wyposażone w inteligentne systemy analogowe, takie jak wyjście stałoprądowe z detekcją przejścia przez zero, wbudowany komparator oraz 12 bitowy liczący przetwornik AD wykorzystujących automatycznie technikę pojemnościowego dzielnika napięcia, która wykorzystywana jest m.in. w pojemnościowych ekranach dotykowych.

    Szybsze peryferia

    Sprzętowy kontroler DMA oznacza, że procesor układu nie musi być angażowany w transmisje danych pomiędzy układami pamięci a peryferiami, co oznacza że spada ilość przerwań w systemie, a zwiększa się wydajność transmisji.

    Szybsza odpowiedź na przerwanie

    Dzięki wyposażeniu w sprzętowe wsparcie wektora przerwań odpowiedź na nie charakteryzuje się mniejszym opóźnieniem niż w konkurencyjnych układach.

    Dodatkowe funkcje układu

    Partycja dostępu do pamięci to funkcja wspierająca w ochronie pamięci systemu np. w aplikacjach z bootloaderem. Obszar informacji o układzie, to dedykowany obszar w pamięci mikrokontrolera, gdzie zapisać można unikalny ID układu jak i np. wartości kalibracyjne dla peryferiów systemu.

    Ponadto wszystkie układy z nowej rodziny wyposażone są w zaawansowany interfejs UART, który obsługuje transmisję asynchroniczną a także protokoły DMX, DALI czy LIN. Dodatkowo układ wyposażony jest także w inne interfejsy szeregowe, takie jak SPI czy I?C.

    Proste programowanie układów

    Układy z nowej rodziny K42 mikrokontrolerów PIC18F wspierane są przez środowisko MPLAB Code Configurator, dzięki czemu programować można je w łatwym graficznym środowisku programistycznym, wykorzystującym tak MPLAB X IDE jak i dostarczane w chmurze MPLAB Xpress IDE.

    Podstawowe cechy układów:

    * Wewnętrzny zegar o częstotliwości 64 MHz
    * Do 129 KB pamięci programu flash.
    * Do 1 KB pamięci danych EEPROM
    * Do 8 KB pamięci RAM
    * Możliwość zwektoryzowanej obsługi przerwań
    * Wbudowany sprzętowy kontroler DMA.
    * 12 bitowy przetwornik ADC obsługujący od 43 kanałów
    * Partycja dostępu do pamięci i obszar informacji o urządzeniu w pamięci ukłądu
    * Okienkowy watchdog timer
    * Do trzech komplementarnych generatorów funkcyjnych
    * Cztery konfigurowalne komórki logiczne
    * Pin selekcji peryferiów
    * Dwa komparatory
    * Układ detekcji przejścia przez zero
    * Wewnętrzny wbudowany termometr
    * Modulator sygnału danych
    * Przetwornik cyfrowo-analogowy (DAC) o rozdzielczości 5 bit
    * Pojemnościowy dzielnik napięcia
    * Do czterech 10 bitowych PWMów
    * Interfejsy UART, SPI i I?C.
    * Dostępne w obudowach z 28, 40 i 48 pinami.

    Źródło: http://www.microchip.com/promo/pic18f-k42?utm_source=Various-EU-Print-Magazines&utm_medium=Print-and-Online&utm_term=FY17Q4&utm_content=MCU8&utm_campaign=Print-ads,-display-ads-and-gif-banners

    Fajne! Ranking DIY
    O autorze
    ghost666
    Tłumacz Redaktor
    Offline 
    Fizyk z wykształcenia. Po zrobieniu doktoratu i dwóch latach pracy na uczelni, przeszedł do sektora prywatnego, gdzie zajmuje się projektowaniem urządzeń elektronicznych i programowaniem. Od 2003 roku na forum Elektroda.pl, od 2008 roku członek zespołu redakcyjnego.
    ghost666 napisał 9649 postów o ocenie 7741, pomógł 157 razy. Mieszka w mieście Warszawa. Jest z nami od 2003 roku.
  • #2
    krisRaba
    Poziom 29  
    Hmm, po mojej przygodzie z jednym PICem z rodziny 18F nie jestem jakimś szczególnym ich fanem ;), ale może coś się zmienia w dobrą stronę?

    Czy ktoś jest w stanie wyjaśnić zagadkowe pojęcia typu
    ghost666 napisał:
    Możliwość zwektoryzowanej obsługi przerwań
    Czy oznacza to, że w końcu po wystąpieniu przerwania nie trzeba "if-ować" po wszystkich możliwych flagach, żeby dowiedzieć się co było źródłem przerwania? ;) Czyli de facto programowo tworzyć tablicę wektorów przerwań... Może to pozytywny skutek przejęcia Atmela, gdzie w AVR-ach jest to od lat? ;)

    ghost666 napisał:
    Do 1 KB pamięci danych EEPROM

    W "moim" PICu byłem zaskoczony, że w dzisiejszych czasach jakiś mikrokontroler może nie mieć wbudowanego EEPROMu :lol: Oj bolało.. dobrze, że chociaż zapis do flash był możliwy ;)

    ghost666 napisał:
    Przetwornik cyfrowo-analogowy (DAC) o rozdzielczości 5 bit
    5 bit?! :-|

    ghost666 napisał:
    Rodzina K42 pochwalić może się szerokim portfolio peryferiów CIP, tj. mogących funkcjonować samodzielnie, bez konieczności wykorzystywania czasu CPU układu.

    Chodzi o coś w rodzaju EventSystem znany z AVR XMEGA? Bo dalszy opis o watchdogu, timerach, CRC itp. nie bardzo sugeruje czym różni się to od peryferiów tego typu stosowanych w innych mikrokontrolerach.

    Wydaje mi się, że ten ogólny opis nie oddaje zbyt dobrze ewentualnych zalet, bo brzmi trochę enigmatycznie lub czasem wręcz śmiesznie. Natomiast popatrzyłem na źródło i rozwijane opisy bloków, to np.
    źródło napisał:
    The Zero Cross Detect (ZCD) module can monitor AC line voltage, and indicate zero crossing activity. This information is made directly available to on-board Waveform Generation peripherals for use in TRIAC control applications, greatly reducing both CPU demand and BOM cost.
    wygląda bardzo ciekawie dla aplikacji wymagających synchronizacji z siecią.

    źródło napisał:
    The Analog to Digital Converter with Computation (ADC2) helps accelerate common math tasks normally done in software by offering modes like averaging, low-pass filter, oversampling and threshold comparison.
    ADC z możliwością uśredniania, filtrowania dolnoprzepustowego, nadpróbkowania czy porównywania z zadanym progiem - WOW, to jest czad! :)

    źródło napisał:
    Data Signal Modulator (DSM) offers smooth signal switching. When paired with 16-bit PWM, LED dimming engine functionality is created.
    Też ciekawe :)

    źródło napisał:
    The Configurable Logic Cell (CLC) offers hardware-based combinational and sequential logic functions to simplify and accelerate many common tasks. The CLC can also be used as “glue” logic between peripherals, eliminating the need for CPU intervention during steady-state activity in complex control loops.
    Ciekawe, można zaoszczędzić na sprawdzaniu warunków logicznych między sygnałami wejściowymi :)

    źródło napisał:
    Peripheral Pin Select (PPS) provides ultimate flexibility when routing digital signals to device pins. With PPS, any digital peripheral can be connected to any I/O pin on-the-fly for a customized layout. This allows users to maintain layout compatibility with older PIC® MCUs, even as new features are implemented.
    Nie wczytywałem się w ewentualne ograniczenia, ale przypisywanie cyfrowych interfejsów do dowolnych pinów, to MEGA-fajny dodatek. Potwierdzą to chyba wszyscy, którzy przez dziwny rozkład pinów w mikrokontrolerze musieli potem robić wygibasy na PCB ;)

    źródło napisał:
    IDLE and DOZE low-power modes allow applications to optimize device performance and power consumption. The Peripheral Module Disable (PMD) allows unused peripherals to be turned off individually, further reducing power consumption. PIC18F "K42" devices feature the industry leading eXtreme Lower Power (XLP) technology.
    Znane już w sumie z XMEG (bodajże rejestr PRR), ale bardzo przydatne.

    Dzięki za artykuł. Z ogólnego opisu w sumie nic ciekawego, a po wczytaniu się... hmm.. może jeszcze z PICem się polubimy? ;) :D
  • #3
    szymonjg
    Poziom 15  
    krisRaba napisał:
    źródło napisał:
    IDLE and DOZE low-power modes allow applications to optimize device performance and power consumption. The Peripheral Module Disable (PMD) allows unused peripherals to be turned off individually, further reducing power consumption. PIC18F "K42" devices feature the industry leading eXtreme Lower Power (XLP) technology.
    Znane już w sumie z XMEG (bodajże rejestr PRR), ale bardzo przydatne.


    W PIC18xxK80 są rejestry PMD0, PMD1, PMD2, które pozwalają na automatyczne wyłączanie niektórych peryferiów w trybie idle, a na *K80 już uczyłem się programować jak o XMegach pisano podobne, prezentujące je artykuły. Więc PMD w PICach18 jest znane jeszcze wcześniej niż w XMegach. ;)
  • #4
    krisRaba
    Poziom 29  
    O widzisz :-) Mnie jakoś szał PICów ominął bokiem w procesie edukacji, a pierwsza próba z własnej inicjatywy była dość dużym szokiem i to niestety nie na plus :-/ Ale może to splot wielu zdarzeń, przyzwyczajeń i oczekiwań... Mniejsza z tym. Trzeba dokładniej czytać DSa ;-)

    Z tym automatycznym wyłączaniem w IDLE fajna sprawa :-)
  • #5
    szymonjg
    Poziom 15  
    Ja znowu o AT(X)Megach nie za wiele się wypowiem.
    A w tym Pic18xxk80 to też tak ostatnio dopiero wyczytałem o tym PMD jak sprawdzałem jakie rejestry biorą udział w konfigurowaniu Timera.
    Nie chciałbym tylko aby ktoś z jeszcze mniej doświadczonych ode mnie elektroników po przeczytaniu, bądź co bądź bardzo obiektywnego i sprawiającego wrażenie profesjonalizmu posta, mimo wszystko pomyślał, że wszystkie rozwiązania w nowych uC Microchipa są zerznięte z byłych rozwiązań Atmela.

    Co do samego PMD to jest według mnie sztuka dla sztuki, bowiem ręczne wyłączenie niechcianych peryferii nie jest zbyt skomplikowane, a najlepiej i tak nie włączać tych peryferii więcej niż potrzeba zwłaszcza gdy się walczy o miliwaty. Choć oczywiście jak jest to się przyda.

    Co do przerwań to bardziej niż ich wektorowanie, ciekawi mnie ta opcja sprzętowego zapisywania kontekstu, bo sprawdzenie ifem flagi zajmuje raptem 2 lub 3 takty, ale jak zauważyłem ile instrukcji kompilator mi generuje na początku funkcji obsługującej przerwanie właśnie do zapisania kontekstu to aż zacząłem się zastanawiać dlaczego 3 lata temu nie zacząłem się uczyć ATMeg zamiast PICów. :)
  • #6
    krzysiek_krm
    Poziom 37  
    szymonjg napisał:
    że wszystkie rozwiązania w nowych uC Microchipa są zerznięte z byłych rozwiązań Atmela.

    W rzeczywistości jest akurat odwrotnie, Microchip wymyślił i zastosował w swoich układach mnóstwo bardzo cwanych rozwiązań, które później kopiowali inni producenci. Zresztą wymyśla i stosuje nadal.

    Z jakichś powodów (pewnie marketingowych) te procesory niemal nieznane są hobbystom, którym wydaje się, że mikroelektronika zaczyna się i kończy na Atmelu.

    Plus oczywiście maniakalni i ortodoksyjni wyznawcy arm'ów (army, army ponad wszystko).
  • #7
    krisRaba
    Poziom 29  
    krzysiek_krm napisał:
    Z jakichś powodów (pewnie marketingowych) te procesory niemal nieznane są hobbystom, którym wydaje się, że mikroelektronika zaczyna się i kończy na Atmelu.

    Coś właśnie chyba poszło w pewnym momencie nie tak, albo to celowa zmiana grupy docelowej. Mam paru kolegów, którzy pochodzą właśnie z "ery PIC", a o produktach Atmela wiedzą, ale nigdy nie stosowali. Potem wydarzył się jakiś fikołek i znam z kolei grono osób, u których jest dokładnie odwrotnie, czyli wychowanych na AVR ;)
    Zależnie kto co stosował i z czym jest obeznany, to wydaje mu się, że druga strona kopiuje ;)
    Insynuacje o przejęciu pewnych rozwiązań mogą być o tyle uzasadnione "logicznie", że to Microchip przejął Atmela, a zwykle wtedy przejmujący zgarnia interesującego go rozwiązania, a nie odwrotnie. Natomiast fakt, że wiele rzeczy mogło być już wcześniej stosowanych i nie mają nic wspólnego z powyższym :D

    Ja akurat ze "swoim" PICem byłem w szoku, że np. MCU może mieć tylko grupowy pull-up na portach (i to nie wszystkich ;)), mega ubogie timery (tylko OVF, bez przerwań od Compare), brak przerwań typu pin-change itp. I teraz nie wiem, czy trafiłem na bardzo ubogi pod tym względem model, czy po prostu PICe tak mają ;) Ale myślałem, że rodzina 18F to już bardziej zaawansowane jednostki... U Atmela nawet najprostsze Tiny ma bardziej rozbudowaną funkcjonalność w tym względzie.
    Co do XMEGA, to ogólna koncepcja super, bardzo rozbudowane peryferia, tylko z kolei mnóstwo błędów, które potrafią utrudnić życie. Nowe rewizje z USB już trochę wyczyścili, ale też idealnie nie było.. stąd może trochę strach używać w bardziej zaawansowanych projektach. Podobno przy zmianach temperatury dodatkowe kwiatki wychodzą - ale to głównie ze słyszenia, nie własnych doświadczeń...

    szymonjg napisał:
    Co do samego PMD to jest według mnie sztuka dla sztuki, bowiem ręczne wyłączenie niechcianych peryferii nie jest zbyt skomplikowane, a najlepiej i tak nie włączać tych peryferii więcej niż potrzeba zwłaszcza gdy się walczy o miliwaty. Choć oczywiście jak jest to się przyda.

    Jeśli cała konfiguracja jest zachowana (a zakładam, że tak jest), to mimo wszystko jest to przydatna opcja. Mam projekt, w którym funkcje przejścia do trybu low power i powrotu z niego są dość rozbudowane właśnie ze względu na wycieczki po rejestrach i przestawianie kolejnych bitów ENABLE. Da się to oczywiście robić "ręcznie", ale z automatu też byłoby miło ;)