eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaJakiś pomysł na komunikację po 1 drucie bez obciązania cpu?
Ilość wypowiedzi w tym wątku: 9

  • 1. Data: 2016-05-29 22:56:33
    Temat: Jakiś pomysł na komunikację po 1 drucie bez obciązania cpu?
    Od: Sebastian Biały <h...@p...onet.pl>

    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. Przyszedł mi do głowy pomysł aby sterować szerokością impulsu
    1-wire za pomocą wolnego PWM. Gorzej z czytaniem, choć może dałbym radę
    trafiać jako tako z czytaniem pomiędzy przerwaniami. Oczywiscie to może
    być "moje" 1-wire i np. mogę je znacząco spowolnić. Moge też popędzić
    cpu1 większym zegarem ale to ostateczność.

    Zanim zaczne kombinować z 1wire - czy zna ktoś inny protokół 1-drutowy?
    Od biedy mogę podpiąć wspólny XTAL do obu jesli coś to da.

    Nie, nie zmienię avr-a cpu1 na coś innego. Nie ma nic innego w tym
    zastosowaniu (szybki cykl zegarowy, 5V) co miało by ekonomiczny sens.


  • 2. Data: 2016-05-29 23:10:10
    Temat: Re: Jakiś pomysł na komunikację po 1 drucie bez obciązania cpu?
    Od: Jakub Rakus <s...@o...pl>

    W dniu 29.05.2016 o 22:56, Sebastian Biały pisze:

    > c) może korzystać z hardware cpu, prawie wszystko wolne (pwm, timery,
    > uart itd)

    No to może jednak UART? Pod warunkiem, że możesz tak go poustawiać żeby
    jeden pin był na przemian nadajnikiem i odbiornikiem.

    --
    Pozdrawiam
    Jakub Rakus


  • 3. Data: 2016-05-30 01:41:27
    Temat: Re: Jaki? pomys? na komunikacj? po 1 drucie bez obci?zania cpu?
    Od: a...@m...uni.wroc.pl

    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


  • 4. Data: 2016-05-30 08:19:33
    Temat: Re: Jakiś pomysł na komunikację po 1 drucie bez obciązania cpu?
    Od: jacek pozniak <j...@f...pl>

    Sebastian Biały 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).
    Zaemuluj UARTA programowo w głównej pętli (oczywiście nieblokująco).
    Synchronizację (zegar) wyznaczaj przez wolny timer.
    W najgorszym przypadku główna pętla jest wołana co 1,5ms więc odebrać 10
    znaków/s powinno się dać bez problemu, nie wiem tylko czy wyślesz tak
    100bajtów/sec (chociaż jeśli cpu2 będzie dość mądre to może da radę
    odebrać).

    jp


  • 5. Data: 2016-05-30 10:09:20
    Temat: Re: Jakiś pomysł na komunikację po 1 drucie bez obciązania cpu?
    Od: Piotr Gałka <p...@c...pl>


    Użytkownik "Sebastian Biały" <h...@p...onet.pl> napisał w wiadomości
    news:nifl22$9um$1@node2.news.atman.pl...
    > 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. Przyszedł mi do głowy pomysł aby sterować szerokością impulsu
    > 1-wire za pomocą wolnego PWM. Gorzej z czytaniem, choć może dałbym radę
    > trafiać jako tako z czytaniem pomiędzy przerwaniami. Oczywiscie to może
    > być "moje" 1-wire i np. mogę je znacząco spowolnić. Moge też popędzić cpu1
    > większym zegarem ale to ostateczność.
    >
    > Zanim zaczne kombinować z 1wire - czy zna ktoś inny protokół 1-drutowy? Od
    > biedy mogę podpiąć wspólny XTAL do obu jesli coś to da.
    >
    > Nie, nie zmienię avr-a cpu1 na coś innego. Nie ma nic innego w tym
    > zastosowaniu (szybki cykl zegarowy, 5V) co miało by ekonomiczny sens.

    Podwieszone OC - każdy może wymusić 0.
    Jeden cały czas taktuje linię - impulsy 0 krótsze od odstępów.
    Czasy dobrane tak, aby obserwujący linię nie przegapił impulsu.
    Jak chce coś nadać to zaczyna od dłuższego impulsu = bit startu itd.
    Jak drugi chce nadać to robi to przedłużając obserwowany impuls = bit
    startu.
    P.G.


  • 6. Data: 2016-05-30 12:12:10
    Temat: Re: Jakiś pomysł na komunikację po 1 drucie bez obciązania cpu?
    Od: Czarek Grądys <c...@w...onet.pl>

    W dniu 29.05.2016 o 22:56, Sebastian Biały pisze:
    > Cześć.
    >
    > Problem: w pewnym cpu został mi 1 pin. Chce podpiąc wyświetlacz i
    > klawiaturę, odległość naście cm, prędkość znikoma.
    >


    Może się przyda, wprawdzie potrzebujesz w 2 strony, ale może
    uda się ten pomysł rozwinąć.


    https://developer.mbed.org/cookbook/1-wire-shifting-
    2x16-LCD



    --
    Cezary Grądys
    c...@w...onet.pl


  • 7. Data: 2016-05-30 15:07:02
    Temat: Re: Jakiś pomysł na komunikację po 1 drucie bez obciązania cpu?
    Od: AlexY <a...@i...pl>

    Czarek Grądys pisze:
    > W dniu 29.05.2016 o 22:56, Sebastian Biały pisze:
    >> Cześć.
    >>
    >> Problem: w pewnym cpu został mi 1 pin. Chce podpiąc wyświetlacz i
    >> klawiaturę, odległość naście cm, prędkość znikoma.
    >>
    >
    >
    > Może się przyda, wprawdzie potrzebujesz w 2 strony, ale może
    > uda się ten pomysł rozwinąć.
    >
    >
    > https://developer.mbed.org/cookbook/1-wire-shifting-
    2x16-LCD

    Genialne w swojej prostocie, dodane do przydasiów, dzięki.


    --
    AlexY
    http://faq.enter.net.pl/simple-polish.html
    http://www.pg.gda.pl/~agatek/netq.html


  • 8. Data: 2016-05-30 15:18:28
    Temat: Re: Jakiś pomysł na komunikację po 1 drucie bez obciązania cpu?
    Od: Marek <f...@f...com>

    On Sun, 29 May 2016 22:56:33 +0200, Sebastian
    Biały<h...@p...onet.pl> wrote:
    > No i teraz się zastanawiam, czy jest jakiś pomysł na komunikację po
    1
    > drucie w *dwie* strony:

    A PJON rozważałeś? Taka alternatywa do 1W:

    http://hackaday.com/2016/03/31/pjon-fancy-one-wire-a
    rduino-communications-protocol-for-home-automation/

    --
    Marek


  • 9. Data: 2016-05-30 18:31:12
    Temat: Re: Jakiś pomysł na komunikację po 1 drucie bez obciązania cpu?
    Od: Jakub Rakus <s...@o...pl>

    W dniu 29.05.2016 o 22:56, Sebastian Biały pisze:
    > Cześć.
    >
    > Problem: w pewnym cpu został mi 1 pin. Chce podpiąc wyświetlacz i
    > klawiaturę, odległość naście cm, prędkość znikoma.

    Takie coś znalazłem:
    http://nerdralph.blogspot.com/2014/01/avr-half-duple
    x-software-uart.html

    --
    Pozdrawiam
    Jakub Rakus

strony : [ 1 ]


Szukaj w grupach

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: