układów (pytania odnośnie

Planuję złożyć bramkę, która będzie pośredniczyła w komunikacji pomiędzy lokalną siecią komputerową i kilkoma magistralami (na pewno CAN i radiową, być może dodam jeszcze RS485).

Urządzenie będzie więc posiadało następujące interfejsy komunikacyjne:

1) Ethernet w oparciu o ENC28J60. 2) CAN w oparciu o MCP2115 i ISO1050DUB. 3) Radiowy w oparciu o RFM69HW. 4) Być może jakiś izolowany transceiver RS485.

Trzy pierwsze układy pracują na magistrali SPI i wymagają taktowania, przy czym moduł radiowy posiada własny kwarc, więc można go pominąć w dalszych rozważaniach. Łącznie z MCU mamy trzy układy, które wymagają sygnału taktującego. W przypadku ENC28J60 i MCP2515 jest to 25MHz, ATmega będzie potrzebowała maksymalnie 16MHz. W sytuacji, gdy MCU miał współpracować z ENCJ, zwykle "karmiłem" go

12,5MHz z CLKOUT tego układu.

Tutaj jednak sytuacja jest bardziej skomplikowana i zastanawiam się jak ją rozwiązać. Jest kilka opcji:

1) Najprostsze: ENC28J60 i MCP2515 mają własne kwarce, jeden z tych układów taktuje również ATMegę sygnałem 12,5MHz z CLKOUT. 2) Tylko jeden z układów ma swój kwarc, udostępniając drugiemu 25MHz na CLKOUT. Ten z kolei taktuje ATmegę sygnałem podzielonym przez dwa. Zastanawiam się tylko jak zachowają się układy zaraz po włączeniu zasilania, do domyślnych preskalerach, zanim odpowiednie wartości zostaną ustawione. Sygnał będzie dzielony dwukrotnie, bardziej niż potrzeba. Ktoś może wie dlaczego nota MCP2115 (str. 53) zawiera schemat, na którym układ jest taktowany z zewnętrznego źródła przez bufor odwracający? W nocie ENC28J60 nie ma niczego takiego. ATmegę też zawsze taktowałem bezpośrednio (oczywiście biorąc pod uwagę zasilanie tym samym napięciem).

Kolejna sprawa to magistrala. Co powinienem raczej zrobić? a) Podłączyć wszystkie urządzenia do jednej, sprzętowej magistrali? b) Sprzętowe SPI przeznaczyć tylko dla ENC28J60, a potem skorzystać z wolnych pinów i pozostałym układom zorganizować programowe SPI?

Reply to
Atlantis
Loading thread data ...

W dniu 2014-06-07 16:41, Atlantis pisze:

Może weź inny uC? STM32F0 może być taktowany do 32MHz z zewnętrznego generatora albo kwarcem. Możesz dać jeden generator kwarcowy 25MHz i taktować wszystkie układy, albo wykorzystać wewnętrzny generator i dobudować bufory albo może by wyjście MCO dało radę wysterować pozostałymi układami. Co więcej - on domyślnie startuje z wewnętrznym RC i dopiero programowo przełącza się na wybrane źródło zegarowe. Przy okazji jest kilka SPI. A trzymając się AVRów może ATXmega? Co do rozdzielenia magistral to musisz sam wybrać. Znasz wady i zalety obu rozwiązań.

Reply to
Michał Lankosz

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.