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

Oprogramowanie ebedded a zakłócenia EMC

12 Gru 2016 20:31 708 12
  • Moderator Projektowanie
    Witam,

    Poszukuję książek lub artykułów związanych z zakłóceniami EMC generowanymi przez źle napisane oprogramowanie embedded i jak zabezpieczać mikrokontrolery przed zakłóceniami.

    Chce od razu powiedzieć, że nie chodzi mi o ingerencję w hardware wokół urządzenia, więc porady tyczące layoutu w tym wypadku mnie nie interesują.

    Przykładowo takie klasyki jak ustawianie częstotliwości GPIO na najniższą możliwą częstotliwość czy używanie wewnętrznego lub zewnętrznego watchdog'a. Potrzebuję informacji w tym stylu.

    Pozdrawiam
  • PCBway
  • Użytkownik usunął konto  
  • PCBway
  • Moderator Projektowanie
    Jakimś cudem znalazłem, niestety tylko abstrakt:
    http://yadda.icm.edu.pl/baztech/element/bwmeta1.element.baztech-article-BPOK-0039-0058

    A tutaj o coś na temat ochrony przed EMC systemu wbudowanego.
    https://en.wikipedia.org/wiki/Immunity-aware_programming

    Proszę więcej nie pisać, jeśli Twoim celem jest tylko dalsza próba udowodnienia, że się mylę. Nie mam czasu ani chęci na takie dywagacje.
  • Moderator Mikrokontrolery Projektowanie
    @_lazor_ Mylisz przyczynę ze skutkiem. Tak jak kol. @albertb ci napisał, nie da się abstrahować od kwestii sprzętowych. Nawet w podanych przez ciebie linkach widać, że nie chodzi o to aby napisać program, tak aby nie generował zakłóceń, ale żeby był odporny na zakłócenia z zewnątrz - wszystkie przykłady w cytowanym artykule z wiki pokazują jak napisać program odporniejszy na zakłócenia, a nie jak go napisać tak, aby ich nie generował. Z programistycznego punktu widzenia, jedyne co możesz zrobić to ograniczyć stromość zboczy, używać (o ile procek ma taką możliwość) zegarów z rozproszonym widmem oraz machać minimalną liczbą pinów na raz i to chyba tyle jeśli chodzi o ogólne techniki. Przy czym jak widzisz głównie zależą one od projektu procesora i w efekcie tego co on oferuje. Np. bus keeper i tym podobne pomysły. Inne rzeczy, typu phace-correct PWM, są zależne od konkretnego zastosowania.
  • Użytkownik usunął konto  
  • Moderator Projektowanie
    Temat jest śliski to prawda. Hardware mówi, że soft może wykrzaczyć testy EMC a software krzyczy, że EMC to ich sprawa. A że testy EMC kosztują cóż, próbuje zebrać jakieś informacje, bo temat jak widzisz istnieje, ale nie jest jednoznaczny tak naprawdę.

    Jak coś znajdę więcej to wrzucę, ale potrwa mi to trochę, bo informacje są skąpe.
  • Użytkownik usunął konto  
  • Moderator Projektowanie
    Może, właśnie dlatego że można ustawić za duże du/dt dla GPIO. Jeśli HW nie był stworzony dla pewnych częstotliwości komunikacji a komuś po 2 latach się odwidzi (bo standardy idą w górę a zmiana HW droga) i zwiększy częstotliwość komunikacji to kiszka trochę.

    Ochrona przed zakłóceniami tez zależy od SW w pewnym zakresie. W końcu można ustawić wszystkie niewykorzystane GPIO jako pull down, czy zrobić timer do weryfikacji wejścia czy przypadkiem odebrany sygnał nie był zakłóceniem (ST daje w swoich prockach wsparcie sprzętowe do takiej weryfikacji, tylko trzeba je skonfigurować poprzez software).
  • Moderator Mikrokontrolery Projektowanie
    Program jak najbardziej można optymalizować pod kątem generowania zakłóceń, ale z reguły jest to związane także ze zmianą projektu elektroniki. Dlatego poza zmianami częstotliwości pracy mikrokontrolera i jego usypianiem, w gotowym projekcie trudno zmienić cokolwiek za pomocą programu i zmniejszać przez to generowane zakłócenia.

    Spotkałem natomiast kiedyś jakiś dokument któregoś z producentów, w którym sugerował on minimalizowanie zakłóceń dla sytuacji nietypowych. Chodziło o wykrzaczenie się programu i do momentu, w którym zabezpieczenia (np. watchdog) nie zadziałają minimalizacja generowanych zakłóceń miała być realizowana przez wypełnienie nieużywanych obszarów pamięci instrukcją NOP.

    Podobnie w przypadku nieużywanych przerwań - tam sugerowano np. skok do jakiejś przygotowanej w tym celu funkcji generującej jak najmniejsze zakłócenia np. usypiającej mikrokontroler.

    Jednakże jak już wspomniałem poza zmniejszeniem częstotliwości pracy mikrokontrolera i ewentualnym usypianiem jego kiedy się da i na czas newralgicznych czynności np. pomiarów ADC program ma niewielki wpływ na generowanie zakłóceń, poza może jakimiś specyficznymi przypadkami. Reszta to projekt od podstaw, bo wtedy nie ma takich sytuacji:

    _lazor_ napisał:
    Hardware mówi, że soft może wykrzaczyć testy EMC a software krzyczy, że EMC to ich sprawa.

    Jeśli programiści pracują w oderwaniu od hardwerowców, to oznacza złą organizację pracy nad projektem.
  • Moderator Projektowanie
    Ostatecznie trochę pogrzebałem i znalazłem między innymi taki dokument (w sumie najbardziej skondensowany, jeśli chodzi o wiedzę):

    http://www.st.com/content/ccc/resource/techni...df/jcr:content/translations/en.CD00004037.pdf

    Nie za wiele tego, ale zawsze coś
  • Poziom 38  
    To jest dość ciekawe zagadnienie. Tylko warto odróżnić kierunek w którym te za zakłócenia działają.
    Przytoczę osobiste dwa przypadki.
    1. Zawieszanie się mikrokontrolera przez zakłócenia z instalacji zapłonowej - niestety jedynym wyjściem było zmiana mikrokontrolera na taki który posiadał Watchdog. Mimo tego problem wpływu zakłóceń na pracę mikrokontrolera pozostał - jedynie zawias programu wywoływał restart i program działał dalej (jedna prosta funkcja).
    2. Emisja zakłóceń przez mikrokontroler, widoczne harmoniczne na obrazie telewizji analogowej. Dokopałem się do informacji w datasheet AT89C51 że można programowo wyłączyć pin ALE - jego wyłączenie zredukowało ilość zakłóceń. Mimo tego kwarc trochę emitował zakłóceń, lecz ich usunięcie nie jest już takie proste do zrealizowania.
    W tym drugim przypadku też bym się skłonił do stwierdzenia że poprawki obsługi portów, szczególnie wyjściowych ma znaczenie. Im mniej zmian stanu (0/1) na liniach wyjściowych to tym mniej zakłóceń. Częstotliwość na pewno będzie miała znaczenie na szerokość pasma zakłóceń.
  • Moderator Mikrokontrolery Projektowanie
    BANANvanDYK napisał:
    1. Zawieszanie się mikrokontrolera przez zakłócenia z instalacji zapłonowej - niestety jedynym wyjściem było zmiana mikrokontrolera na taki który posiadał Watchdog. Mimo tego problem wpływu zakłóceń na pracę mikrokontrolera pozostał - jedynie zawias programu wywoływał restart i program działał dalej (jedna prosta funkcja).

    Aby mity nie powstawały, a początkujący ich nie rozpowszechniali, choć temat jest oczywiście trudny, niestety Twój przypadek niczego nie dowodzi, bez pokazania schematu, pcb i programu.
  • Poziom 38  
    Dokumentacja przepadła. Z resztą jakie to ma znaczenie. Po latach znalazłem przyczynę problemu - chińską fajkę świecy która nie posiadała rezystora przeciwzakłóceniowego. Wykrzaczało się wszystko co było w jej pobliżu. Wyłączał się telefon komórkowy doprowadzając w końcu do trwałego uszkodzenia karty SIM. Częściowo uszkodziła mi się także jedna karta pamięci.