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

[ADuC 842]Połączenie dwóch AduC porty I/O

MichalEm8 21 Sie 2008 13:53 2456 4
  • #1 21 Sie 2008 13:53
    MichalEm8
    Poziom 8  

    ¬¬Witam mam problem. Chcę przesłać dane z jednego uC na drugi przy użyciu jednego pinu portu. od strony programowej mam już wszystko zrobione natomiast mam problem z samym połączeniem.
    Do odbioru wykorzystam pin portu 1 (Aduc 842 ; i tutaj raczej nie mam pytań, to jest standardowy port 1 dla uC 8051, czyli wpisze np. CLR P1.2 )
    Port 1
    Port 1 is also an 8-bit port directly controlled via the P1 SFR.
    Port 1 digital output capability is not supported on this device.
    Port 1 pins can be configured as digital inputs or analog inputs.
    By (power-on) default, these pins are configured as analog
    inputs, i.e., 1 written in the corresponding Port 1 register bit. To
    configure any of these pins as digital inputs, the user should
    write a 0 to these port bits to configure the corresponding pin as
    a high impedance digital input


    Zastanawiam się jakiego portu najlepiej użyć jako portu nadawczego w drugim uC ( AduC 824 ) - myślę o P3 :
    Port 3
    Port 3 is a bidirectional port with internal pull-ups directly
    controlled via the P3 SFR. Port 3 pins that have 1s written to
    them are pulled high by the internal pull-ups and, in that state,
    can be used as inputs. As inputs, Port 3 pins being pulled
    externally low source current because of the internal pull-ups.
    Port 3 pins with 0s written to them will drive a logic low output
    voltage (VOL) and are capable of sinking 4 mA. Port 3 pins also
    have various secondary functions as described in Table 26. The
    alternate functions of Port 3 pins can be activated only if the
    corresponding bit latch in the P3 SFR contains a 1. Otherwise,
    the port pin is stuck at 0.


    Jak mam to rozumieć ? Jak ustawiam zero na np. P3.2 to wtedy jest to wyjscie - stan niski. A jak chcę puścić dane typu 10101011 to rozumiem, że mogę to uzyskać ustawiając lub kasując bit P3.2 ? ( dla 1 - setb , dla 0 - clr ). A może powinienem zrobić clr p3.2 i potem mov p3.2,c ( w c jest bit do przeslania ) ?

    Z góry dziękuję za pomoc . Pozdrawiam :D
    [ADuC 842]Połączenie dwóch AduC porty I/O
    [ADuC 842]Połączenie dwóch AduC porty I/O]Link[/url]

    zrobiłem pseudo- protokół . Bez kontroli błędów . Jeśli wykryje na danym pinie stan pinu zero - to sczytuje 16 bitow za pomocą przerwania od T0 o częstotliwości próbkowania 800 Hz.

    P.S. to są dwa oddzielne uC na dwóch różnych płytkach ( takie układy do ćwiczeń laboratoryjnych ) - dwa oddzielne zegary
    ADuC 824
    32 kHz crystal with an on-chip PLL
    generating a high-frequency clock of 12.58 MHz - TO JEST PIERWSZY

    ADuC842
    uses a 32 kHz crystal with an on-chip PLL generating a
    programmable core clock up to 16.78 MHz. - TO DRUGI

    Aktualizacja: Jeszcze takie pytanie dlaczego jak mierzę DVDD i DGND na jednym z uC to wychodzi mi idealnie 5 V , a jak wezmę DVDD od jednego uC a od drugiego uC - DGND to miernik pokazuje mi 0V ? Przecież nawet jeśli potencjały są różne to nie powinno pokazywać 0 V . Sprawdziłem to w obie strony ( DGND - uC 1 ; DVDD - uC -2 )

    0 4
  • #2 22 Sie 2008 09:31
    markosik20
    Poziom 33  

    MichalEm8 napisał:
    Chcę przesłać dane z jednego uC na drugi przy użyciu jednego pinu portu


    A dlaczego nie chcesz wykorzystać wbudowanego UARTA?

    0
  • #3 22 Sie 2008 11:30
    MichalEm8
    Poziom 8  

    Ponieważ UART wykorzystuje kilka linii a ja chcę wykorzystać tylko jeden pin portu.

    Pozdrawiam

    Michał

    0
  • #4 22 Sie 2008 19:59
    markosik20
    Poziom 33  

    MichalEm8 napisał:
    Ponieważ UART wykorzystuje kilka linii a ja chcę wykorzystać tylko jeden pin portu.


    W przypadku UARTA wystarczą dwie linie RxD, TxD + GND aby skomunikować moduły obustronnie. Rozumiem że jednym pinem chcesz wysyłać dane raz w jedną raz w drugą stronę?

    0
  • #5 22 Sie 2008 20:26
    MichalEm8
    Poziom 8  

    Witam
    Wiem jak działa UART i nie chce go na razie wykorzystywać. Dobrą wiadomością jest to że już zczytuje mi z portu na port. Zrobiłem głupi błąd - każdy z uC miał inną masę - różnice potencjałów mogły powodować problemy w odbiorze sygnału. Ale nadal to nie chodzi tak jak powinno. Wydaje mi się, że teraz to tylko wina czasów sczytywania - muszę jeszcze nad tym popracować żeby dograć jeden do drugiego. Dzięki za zainteresowanie tematem.

    Pozdrawiam
    Michał

    0
  Szukaj w 5mln produktów