podłączenie pamięci SRAM i za

Witam

Tak czytam dokumentację, czytam i połapać się nie mogę... jakoś to wszystko nieprecyzyjnie napisane... Mam mikrokontroler STM32F103VE lub -ZE (jeden w TQFP100, drugi w TQFP144). Chcę do niego podłączyć pamięć SRAM... Sprawa wydaje się banalna, a jednak nie... Pytania, jakie mi się nasuwają, są następujące:

1) Czy mikrokontrolery te mogą współpracować z pamięcią SRAM o 8-bitowej szynie danych?? Z jednej strony w 'Reference Manual' jest tabelka 107 w dziale 21.5.2 i tam wyszczególnione są obsługiwany typy pamięci... wszystkie 16-bitowe... Z drugiej strony na początku rozdziału 21.5 też są wymienione obsługiwane typy pamięci i tam piszą, że SRAM to 8, 16 i 32 bity... W rejestrze FSMC_BCR można ustawić 8 lub 16 bitów tylko... Więc jak to z tym jest?? Pociągnie pamięć 8-biotwą?? Jak ją podłączyć?? Rozumiem, że pinów "Lower Byte" i "Upper Byte" podłączać nie muszę, reszta standardowo, tak?? A jak podłączyć pamięć 32-bity?? ;>;>;>...

2) Czy do mikrokontrolera 100-pinowego mogę podłączyć pamięć SRAM?? (Dla niewtajemniczonych - 100-pinowy procek nie ma wszystkich sygnałów wyprowadzonych i może pracować w trybie współdzielenia magistrali...)

W 'Application Note 2784' podane są sposoby podłączania pamięci NAND Flash i NOR Flash do mikrokontrolerów 100-pinowych, nie ma słowa o SRAM... Podobnie w 'Reference Manual' w 21.5 wymieniają typy pamięci obsługiwanych przez stosowny kontroler, i słowa "multiplexed or nonmultiplexed" padają tylko w kontekście NOR Flash, przy SRAM o tym nie piszą...

Czy ktoś przerabiał temat?? Rzeczywiście się nie da tego pożenić?? Trochę jest to dla mnie dziwne, czy faktycznie obsługa pamięci SRAM w tym trybie byłaby niemożliwa bądź utrudniona? Czy o co chodzi??

Z góry dziękuję za pomoc bardziej doświadczonych osób, gdyż to moja pierwsza przygoda z tymi mikrokontrolerami i nie chcę czegoś spartaczyć na samym początku pracy... A dodatkowo, muszę ciąć koszty, więc tańsza wersja uC bardziej by mi pasowała, tak samo jak tańszy, 8-bitowy RAM...

Reply to
Konop
Loading thread data ...

W dniu 2011-05-01 22:09, Konop pisze:

Tak.

Pociągnie 8-bit.

Chyba "przejęzyczyłeś się". "Lower Byte" musisz... Reszta standardowo.

Klasyczną pamięć SRAM bezpośrednio - nie.

Podłączenia pamięci SRAM do STM32 w wersji 100-pin nie przerabiałem w praktyce, choć rozważałem taką możliwość. Nie pamiętam szczegółów, czy rozstrzygała prostota rozwiązania (tj. wybrałem 144-pin), czy komplikacje związane z koniecznymi dodatkowymi układami multipleksująco-zatrzaskowymi.

pzdr mk

Reply to
mk

W dniu 2011.05.02 00:21, mk pisze:

Dzięki za informację :)

Hmmm... A do czego go podłączyć?? Jeśli pamięć ma 8 bitów, to raczej nie ma wejść w stylu "Lower Byte" i "Upper byte" :)... . Ma pewnie OE, WE i CE, podłączam je odpowiednio do NOE, NWE i NEx procesora... i wtedy NBL0 i NBL1 zostają niepodłączone... Ale w sumie, skoro pamięć ma 8 bitów i kontroler pamięci o tym "wie", to w ogóle tych pinów chyba nie powinien wykorzystywać... albo ja czegoś nie kumam :D...

Że bezpośrednio, to rozumiem... typowo wykorzystuje się tutaj jakiś 'Latch', jak w starszych prockach... Ale, jak pisałem, dokumentacja wspomina coś na temat podłączania pamięci Flash, natomiast milczy w kwestii podłączania pamięci SRAM. Stąd zastanawiam się, czy jest to możliwe i czemu nie :)...

Reply to
Konop

Użytkownik "Konop" snipped-for-privacy@gazeta.pl napisał w wiadomości news:ipm1f3$jvg$ snipped-for-privacy@inews.gazeta.pl...

Ale szynę danych opisaną w stylu D0-D7, czy Dx0-Dx7 to pewnie ma.

Jeśli masz pamięć 16 bitową to w jednym cyklu przekazywane jest słowo 16 bitowe. Górna połówka jest w Upper Byte, a dolna w Lower Byte. Jeśli masz pamięć 8 bitową, to magistrala danych ma 8 bitów, więc wykorzystujesz tylko Lower Byte.

Latch jest po to aby zaoszczędzić ilość linii potrzebną do obsługi pamięci. Każdy kontroler (mający odpowiednią ilość wolnych portów) obsłuży Ci pamięć SRAM, tylko czasami trzeba to robić programowo, podobnie jak komunikację z pamięciami typu: 24Cxx, czy PCF8563, HD44780 (wbrew pozorom to również są pamięci).

Reply to
Marcin Wasilewski

W dniu 2011.05.03 13:12, Marcin Wasilewski pisze:

No ale szynę danych podłącza się normalnie ;)...

To rozumiem :). Ale to działa tak - jeśli jest zapisywany słowo

16-bitowe, to kontroler podaje oba sygnały... Jeśli zapisywane jest słowo 8-bitowe, to kontroler wystawia jeden z sygnałów UB lub LB i w ten sposób modyfikuje tylko odpowiednią część słowa w pamięci 16-bitowej...

No dokładnie, w pamięci 8-bitowej sygnał UB nie ma sensu, zaś LB powinien być "zawsze aktywny". Chodzi mi o praktyczną realizację - czy sygnał NBL0 procesora do czegoś podłączam, czy nie??

Wiem, do czego służy latch i jak działa. Że można programowo, też wiem... Mi chodzi o wykorzystanie hardwareowego kontrolera pamięci (FSMC), który jest wbudowany w ten mikrokontroler ;)... Po prostu dokumentacja jest trochę nieprecyzyjna i chcę spytać, czy ktoś czegoś takiego kiedyś używał :).

Reply to
Konop

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.