eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaJakiś pomysł na komunikację po 1 drucie bez obciązania cpu?Re: Jaki? pomys? na komunikacj? po 1 drucie bez obci?zania cpu?
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!pwr.wroc.pl!new
    s.wcss.wroc.pl!not-for-mail
    From: a...@m...uni.wroc.pl
    Newsgroups: pl.misc.elektronika
    Subject: Re: Jaki? pomys? na komunikacj? po 1 drucie bez obci?zania cpu?
    Date: Sun, 29 May 2016 23:41:27 +0000 (UTC)
    Organization: Politechnika Wroclawska
    Lines: 49
    Message-ID: <nifun7$jgg$1@z-news.wcss.wroc.pl>
    References: <nifl22$9um$1@node2.news.atman.pl>
    NNTP-Posting-Host: hera.math.uni.wroc.pl
    X-Trace: z-news.wcss.wroc.pl 1464565287 19984 156.17.86.1 (29 May 2016 23:41:27 GMT)
    X-Complaints-To: a...@n...pwr.wroc.pl
    NNTP-Posting-Date: Sun, 29 May 2016 23:41:27 +0000 (UTC)
    Cancel-Lock: sha1:STZc3/g7QHbVJ4sEYpiz21wA3QE=
    User-Agent: tin/2.2.1-20140504 ("Tober an Righ") (UNIX) (Linux/4.1.3 (x86_64))
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:700588
    [ ukryj nagłówki ]

    Sebastian Bia?y <h...@p...onet.pl> wrote:
    > Cze??.
    >
    > Problem: w pewnym cpu zosta? mi 1 pin. Chce podpi?c wy?wietlacz i
    > klawiatur?, odleg?o?? na?cie cm, pr?dko?? znikoma.
    >
    > Wstawiam wi?c drugi cpu.
    >
    > Cpu1 to avr, cpu2 mo?e by? byleczym.
    >
    > Teraz: cpu1 jest *bardzo* zaj?ty. Gdzie? ko?o 90% mocy w przerwaniach,
    > dwa timery wolne. W g?ownej p?tli programu mam chwil? (nier?wnomierne)
    > na obs?ug? czego?, co jakie? 1000-3000 cykli 20MHz. Cpu2 od wy?wietlacza
    > (2x16) i klawiatury nie ma nic do roboty.
    >
    > No i teraz si? zastanawiam, czy jest jaki? pomys? na komunikacj? po 1
    > drucie w *dwie* strony:
    >
    > a) nie obci?za cpu sztucznymi p?tlami op??niaj?cymi
    > b) nie wymaga szybkiego poolingu na liniach
    > c) mo?e korzysta? z hardware cpu, prawie wszystko wolne (pwm, timery,
    > uart itd)
    > d) da rad? wys?a? jakie? 100 bajt?w / sek i odebra? 10 bajt?w sek
    > (jako?? obs?ugi).
    >
    > Oczywi?cie od razu nasuwa sie 1-wire, ale powtarzam: nie mam cpu dla
    > siebie.

    Oczywistym rozwiazaniem jest UART w half-duplex. 1-wire to nie jest
    dobry pomysl, bo przy ustalonej szybkosci transmisji wymaga duzo
    lepszej rozdzielczosci czasowej niz UART. Niekture procesory
    (np. STM32) maja UART sprzetowo wspierajacy half-duplex,
    w AVR nie zauwazylem takiej mozliwosci... Programowo UART
    mozna zrobic z timera kosztem jednego przerwania na bit.
    Tzn. uzywasz timer do pomiaru czasu miedzy zboczami
    przy odbiorze, przy nadawianiu machasz GPIO z przerwania
    timera. 1200 bitow na sekunde powinno Ci wystarczyc, wiec
    jak zniesiesz dodatkowe 1200 przerwan to bedzie OK.

    Mozesz uzyc tez kombinowane rozwiazanie: sprzetowy UART
    do odbioru, softwarowy (na tej samej linii) do nadawania.

    Jeszcze jeden pomysl: sporo CPU ma UART-y ktore moga
    odbierac np. 5MHz. Wiec z AVR mozesz nadawac z duza
    szybkoscia, tak ze bajt zajmie powiedzmy 2us. Na tyle
    pewnie mozesz zablokowac przerwania.

    --
    Waldek Hebisch

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: