реклама на сайте
подробности

 
 
> External SRAM + ATmega***, Использование External SRAM
pitter_3
сообщение Feb 18 2010, 15:32
Сообщение #1





Группа: Участник
Сообщений: 10
Регистрация: 18-02-10
Пользователь №: 55 554



Всем здрасте!!!

К ATmega128 надо подключить SRAM, раньше такого не делал, хочу избежать подводных камней, подскажите.


Использую ATmega128 на 16MHz
Буду использовать 64K-bit SRAM: 6264 (К537РУ17) в магазине сказали так, но на микрухе написано чё попало – белибирда.
Скорее всего: fast access time 85/100ns (max) возможно 70ns, но не уверен, т.к производителя не знаю.

(64K-bit хотя целиком столько мне не надо)
Использовать буду Normal Mode, т.е. 4096Internal SRAM, никаких заморочек с ATmega103 Compatibility mode мне не надо.



В силу того, что ATmega128 работает на 16MHz, а SRAM 85/100ns (70ns?) возникает вопрос, получится ли адекватная работа SRAM, даже если использовать wait-state.

Подскажите, какой wait-state использовать?


На какую защелку лучше обратить внимание? Какую серию смотреть?


НА ЧТО ЕЩЁ ОБРАТИТЬ ВНИМАНИЕ????

Заранее СПС.



Table 4. Wait States(1)

SRWn1 SRWn0 Wait States

0 0 No wait-states
0 1 Wait one cycle during read/write strobe
1 0 Wait two cycles during read/write strobe
1 1 Wait two cycles during read/write and wait one cycle before driving out new address
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
lisstret
сообщение Jan 22 2013, 04:51
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 10-06-10
Из: Владивосток
Пользователь №: 57 835



Хороший пример в этом случае это модуль WIZ200 WEB. Там как раз ATMEGA128+HY62256 и WIZ5300) Схемы есть, есть программный код от производителя. Так что глазами пробежаться можно подглядеть.

http://www.efo.ru/doc/Wiznet/Wiznet.pl?2935

У меня больше другой вопрос. Как сделать так, чтоб во внешний СРАМ загружались данные программы. То есть, допустим есть проект, в котором память данных занимает 8 КБ. Соответственно 4 КБ во внутреннем ОЗУ и остальные 4 КБ получается помещаются только во внешний ОЗУ. Но перед запуском прошивки нужно же настроить интерфейс внешнего СРАМА, указав в каких-то регистрах 128МЕГИ, что мы используем внешний срам с такий wait-state и т.д. После этого должна начать запускаться основная программа которая и выгрузит из FLASH'a данные во внешний СРАМ. Так вот, тут над бутлоэдер писать или что-то наподобе него, чтоб он настроил доступ 128МЕГИ к внешнему СРАМУ? Надеюсь понятно сказал, а то я особо объяснять не умею)

Сообщение отредактировал lisstret - Jan 22 2013, 04:53
Go to the top of the page
 
+Quote Post
ReAl
сообщение Jan 22 2013, 17:59
Сообщение #3


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(lisstret @ Jan 22 2013, 06:51) *
Как сделать так, чтоб во внешний СРАМ загружались данные программы.
Никаких бутлоадеров не нужно, просто надо как можно раньше включить интерфейс внешней памяти.
Для avr-gcc (WinAVR, AVR-STUDIO 6 с еёйным toolchain и т.д.) нужно поместить короткий код в секцию памяти кода .init3, которая выполнится до копирования инициализированных данных из флеша в ОЗУ и до очистки bss (в .init1 тоже можно, но осторожнее).
У меня это макросами
Код
#define INIT_CODE(_number_,_name_)\
    static void init_##_number_##_##_name_ (void) __attribute__ ((section(".init" #_number_), naked, used));\
    static void init_##_number_##_##_name_ (void)

#define INIT_CODE_(n,l) INIT_CODE(n,l)
#define INIT(_number_) INIT_CODE_(_number_,__LINE__)
и где-то в программе такое:
Код
INIT(3)
{
    MCUCR = (1 << SRE);
    XMCRA = (4 << SRL0) | (0 << SRW00);
    XMCRB = (1 << XMBK);
}


В других компиляторах надо смотреть в сторону __low_level_init() и подобного, такая функция, по идее, должна вызываться до инициализации памяти. Но она уже будет вызываться, так что стек должен быть во внутренней памяти (что и так желательно для большей скорости работы). В случае с init-секциями код выполняется линейно, без вызовов и стек не нужен.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- pitter_3   External SRAM + ATmega***   Feb 18 2010, 15:32
- - pitter_3   А кто-нибудь подскажет по поводу wait-state? В це...   Feb 20 2010, 05:29
|- - SysRq   Цитата(pitter_3 @ Feb 20 2010, 08:29) Кто...   Feb 20 2010, 19:41
|- - defunct   Цитата(pitter_3 @ Feb 20 2010, 07:29) А к...   Feb 24 2010, 21:26
- - prottoss   Вот так делал я. См приложенные файлы. Правда там ...   Feb 20 2010, 23:12
|- - wellcom   Цитата(prottoss @ Feb 21 2010, 03:12) Вот...   Dec 27 2012, 10:04
- - pitter_3   Всем спасибо. Цитата(prottoss @ Feb 21 2010, ...   Feb 21 2010, 14:47
|- - prottoss   Цитата(pitter_3 @ Feb 21 2010, 21:47) Кст...   Feb 21 2010, 15:03
- - SysRq   Цитата(pitter_3 @ Feb 21 2010, 17:47) Кст...   Feb 21 2010, 17:15
|- - prottoss   Цитата(SysRq @ Feb 22 2010, 00:15) Ааа, д...   Feb 21 2010, 17:23
- - ae_   Цитата(pitter_3 @ Feb 21 2010, 22:47) Все...   Feb 23 2010, 02:26
- - Александр Куличок   защелку лучше использовать из быстродействующих се...   Feb 24 2010, 04:17
- - SysRq   Посмотрел м\с памяти у нас: U62H256A. Надо бу...   Feb 26 2010, 20:47
- - lisstret   Спасибо! Видимо, зря я не особо заглядывал в д...   Feb 7 2013, 02:57


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 23:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.01733 секунд с 7
ELECTRONIX ©2004-2016