Умовно всю пам'ять SRAM поділяють на три ділянки: перша сторінка, сторінки з другої по сьому і восьма сторінка.
Вибірка коду може здійснюватися тільки з першої сторінки, і тому весь код повинен розташовуватися саме тут. Сторінки з другої по сьому можуть бути використані тільки для зберігання даних. Восьма сторінка особлива тим, що в перших 8 байтах розташовані регістри мікросхеми MAX 8064.
У молодших адресах восьмий сторінки адресного простору (080000h - 080007h) розташовується 8 осередків регістрів ПЛІС МАХ8064 (МАХ8128). Ця область призначена для взаємодії з периферійними пристроями стенду.
Таблиця 4. Моделі та селектори пам'яті
Селек-торОбласть памятіdata128 байт у вбудованій RAM - безпосередня адресаціяbdata16 байт у вбудованому RAM - безпосередня битовая / байтовая адресаціяidata256 байт у вбудованому RAM - непряма адресаціяpdata256 байт в сторінкової зовнішньої RAMxdata64 Kбайт розширеної RAMcode64 Kбайт пам'яті программfar16 Мбайт пам'яті data/const, розмір об'єкта 64 Kбайтnear64 Kбайт безпосередньо адресується пам'яті для 251huge16 Мбайт побічно адресується пам'яті, об'єкт довільного размераedata96 байт розширеної побитно адресується пам'яті для 251
Розрахуємо обсяг пам'яті буферного ОЗУ, яке необхідно для зберігання даних, які будуть отримані за 1 секунду роботи АЦП.
Згідно технічним параметрам стенду SDK1.1, швидкодія вбудованого АЦП, т.е час, що потрібно АЦП на перетворення однієї вибірки дорівнює 20 тактам (періодами) частоти АЦП. Діапазон частот АЦП 400кГц - 3 МГц. Частота тактового генератора стенду FBQ=11,059. Тактова частота АЦП вибирається програмістом за допомогою регістра ADCCon1. Програмний дільник частоти, задаються битами 4 і 5 цього регістра слід значення - 1,2,4,8
Fтактовое АЦП=
де k - приймає значення 1,2,4,8
fтакт АЦП == 1,382375 МГц
Tпреобр АЦП=20 * Такт=20
За теоремою Котельникова випливає, що частота дискретизації повинна бути мінімум удвічі вище верхньої частоти спектру (за завданням 20КГц), отже, частота дискретизації буде дорівнює 40кГц.
Період дискретизації=
Це означає, що часовий інтервал між вибірками становить 25 мікросекунд. Ми отримуємо 40 тисяч вибірок за одну секунду. Розмір кожної вибірки дорівнює двом байтам, відповідно, нам необхідний обсяг пам'яті рівний 80 тисячам байт або 80 кілобайтам для одного каналу і 640 кілобайтам для восьми каналів, відповідно. Отже, ми отримаємо дуже великий об'єм даних. Так як 8Кб внутрішньої пам'яті програм нам недоступно, а 640 Байт внутрішньої пам'яті даних нам явно недостатньо, ми змушені будемо використовувати для зберігання даних зовнішнє ОЗУ, а точніше його 456 кілобайт (перші 64 Кб з 512Кб використовуються для зберігання програм). Детальніше структурна організація зовнішнього ОЗУ описана вище. Розподіл адрес зовнішньої пам'яті наведено в таблиці 3.
Нам необхідно вирішити ситуацію з розміщенням даних у пам'яті без їх втрати. Рішень проблеми дещо - зниження частоти ГТВ або зменшення частоти дискретизації. Можна також використовувати стенд в режимі прямого доступу до пам'яті для додатків, в яких ЦП не може підтримувати високу швидкість оцифровки.
Так як в даному стенді використовується мікроконтролер ADuC812, ми не можемо змінити частоту тактового генератора (вона жорстко фіксована)...