Pytanie : Prawy sposób GPIO interfejs

W Ten Sposób my potrzebować dwa mikroprocesor w ten sposób dwa.  Jeden być mistrz, i jeden być niewolnik, i my chcieć z powrotem the stan obecny od the niewolnik the mistrz (e.g., init, przygotowywać, ruchliwie, błąd, etc).  My obliczać the prosty sposób wybory być z właśnie równina I/O (GPIO) linia, niewolniczy mikro set jeden lub więcej linia, mistrzowski mikro wybory.  

So the bardzo, bardzo wchodni sposób ono być bardzo szpilka wskazywać state

Pin (0) aktywny: Init
Pin (1) aktywny: Ready
Pin 2 aktywny Busy
Pin 3 aktywny Error

However my móc GPIO ono z dwa pins

Pin (0) nieaktywny, Przyczepiać (1) nieaktywny: Init
Pin (0) nieaktywny, Przyczepiać (1) aktywny: Ready
Pin (0) aktywny, Przyczepiać (1) nieaktywny: Busy
Pin (0) aktywny, Przyczepiać (1) aktywny: Error

Note szpilka używać dwa szpilka zamiast 4.  , I myśleć w the drugi technika my biegać the ryzyko przemiana.  Na przykład, the niewolnik próba przemiana od INIT BŁĄD twierdzić więc ono zmieniać the pierwszy szpilka od (0) (1), then zmieniać the drugi szpilka od (0) 1.  , Jeżeli the mistrzowski wybory między the dwa zmiana ono czytać 01 lub 10, che być PRZYGOTOWYWAĆ lub RUCHLIWIE, i ono można zły action.

So the odpowiedź być prawdopodobnie trzeci szpilka, che wskazywać the zasadność the inny dwa.  The niewolnik set który wałkowy depresja, wtedy robić the zmiana, then ustawiać ono wysokość znowu, znaczyć the inny dwa kawałek być ważny.

So dostawać wziąć trzy szpilka, che być wciąż oszczędzanie nad the 4 wymagać the pierwszy approach.

Can I dostawać zdrowie psychiczne czek na wszystkie wszystkie?  The drugi podejście być preferowany, prawy, pod warunkiem, że my używać the ekstra wałkowy technika?  To być konieczny dobro?

Thanks dla jakaś thoughts.

Odpowiedź : Prawy sposób GPIO interfejs

Ty prawie dostawać ono dokładnie prawy, ale ono nieznacznie inaczej dla ty:

1) Twój pierwszy proponować metoda pozwalać ty ślad cztery dyskretny "zmienna", dyskretny jeden sprawnie na jeden dwa różny wartość (wysokość lub depresja). Linia używać cztery szpilka, i tam  być 16 ewentualny stan twój autobusowy linia.

2) Twój drugi proponować metoda pozwalać ty ślad jeden pojedynczy "zmienna" che móc na jeden cztery różny wartość (00, 01, 10, lub 11). Tam  być 4 ewentualny stan twój autobusowy linia.

Od co ty opisywać, metoda #2 kostium twój purposes lepiej. Jeżeli ty robić ono the #1 sposób, ty mieć autobusowy linia che mieć 16 ewentualny wartość, ale tylko 4 the ewentualny 16 wartość mieć jakaś znaczenie ty (0001, 0010, 0100 i 1000). Everything inny być nieważny. Tak, że być odpady zasoby. Sposób być dlaczego ty save para kawałek ono the metoda #2 sposób.

Teraz the ważna rzecz być że żadny sprawa che metoda ty używać, #1 LUB #2, ty zawsze mieć the "niestały stan" zagadnienie. Tam  być zawsze ten ten ilość czasu gdy the mistrz zmieniać the wartość na the autobusowy linia, i jeżeli the niewolnik czytać przy ten dokładny moment ono dostawać błędny czytanie.

Ty proponować "synchronizacyjny zegarowy kawałek" che ćwiczyć i slave część. Ty dzwonić dzwonić the zasadność kawałek. The zegarowy kawałek ustawiać the mistrz, i read the niewolnik. The mistrz zapewniać być na the powstający krawędź the zegar the wartość na the dane kawałek być niewywrotny. The niewolnik znać the dane kawałek tylko gdy the zegar iść wysoko. Wysoko móc robić bezpośrednio w narzędzia przy the sygnałowy poziom (e.g verilog lub VHDL obwód programować na FPGA), lub ty móc ono przy wyższego szczebla (e.g mikroprocesor jak Altera deska che mieć narzędzia interrupt rzucać gdy ten sync kawałek iść wysoko).

W Ten Sposób podstawowy I myśleć ty być całkowicie poprawny, właśnie uświadamiać sobie ty wciąż ratować 2 gpio szpilka, właśnie (1), ponieważ nawet jeśli ty zrobić ono the pierwszy sposób ty wciąż potrzebować the synchronizacja zegar kawałek.
Inne rozwiązania  
 
programming4us programming4us