Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

STM32F407Z FSMC SRAM 16 бит побайтная запись

Непрочитано 27.01.2020, 16:21  
AlexBel
Частый гость
 
Аватар для AlexBel
 
Регистрация: 17.08.2006
Сообщений: 17
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
AlexBel на пути к лучшему
По умолчанию STM32F407Z FSMC SRAM 16 бит побайтная запись

Всем привет. К контроллеру STM32F407ZE через FSMC подключена статическая память 256к х 16бит, сигналы UB и LB подключены, в настройках CubeMX FSMC опция "Byte enable" включена. Чтение-запись по 16 бит работает нормально.

Сейчас, если записать несколько значений ( 45, 67, 89, AB ) последовательно по адресам 0000, 0001, 0002, 0003, при чтении всё нормально:

0x0000: 45
0x0001: 67
0x0002: 89
0x0003: AB

Но если после записи по адресу 0003 сделать запись другого значения, например, 0x34, то портится содержимое по адресу 0002:

0x0000: 45
0x0001: 34
0x0002: 00
0x0003: AB

Можно ли делать побайтную (8 бит) запись и чтение? Если функцию побайтного чтения можно организовать, анализируя нулевой бит адреса и используя сдвиг, то для функции записи я, пока что, вижу только вариант "чтение-модификация-запись". Можно использовать, конечно, но при этом будут совершаться лишние действия и при записи будет падать производительность.

Есть ли более правильные методы организации побайтного обмена с внешней памятью?

Проблема решена - нужно было использовать 8-битный указатель. Возможно, информация кому-нибудь пригодится.

Функции чтения и записи байтов:

#define EXT_SRAM_BASE_ADDRESS 0x68000000

void ext_sram_write_byte(uint32_t address, uint8_t data)
{
*(uint8_t *) (EXT_SRAM_BASE_ADDRESS + (address) ) = data;
}

uint8_t ext_sram_read_byte(uint32_t address)
{
return *(uint8_t *)(EXT_SRAM_BASE_ADDRESS + address);
}
Реклама:

Последний раз редактировалось AlexBel; 28.01.2020 в 18:30.
AlexBel вне форума  
Непрочитано 27.01.2020, 17:32  
parovoZZ
Почётный гражданин KAZUS.RUN
 
Регистрация: 15.11.2010
Сообщений: 2,376
Сказал спасибо: 337
Сказали Спасибо 328 раз(а) в 253 сообщении(ях)
parovoZZ на пути к лучшему
По умолчанию Re: STM32F407Z FSMC SRAM 16 бит побайтная запись

Оно же, поди, сразу 16 бит стирает. Как это называется - страница?
parovoZZ вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто-нибудь работал с RF модулями nRF2401A? Easyrider83 Автоматика и аппаратура связи 1481 04.09.2021 23:24
FSMC шина 8 бит nml ARM 8 23.10.2019 21:33
Анекдот, анекдот ... (часть# 1 - 8 (ничего кроме анекдотов)) DK Отвлекитесь, эмбеддеры! 24300 23.10.2019 19:28
Ускорить компьютер 7Fantomas7 Ремонт оргтехники 111 08.08.2018 05:27
Помогите начинающему по ATmega8515 Vladlen23 Микроконтроллеры, АЦП, память и т.д 510 27.03.2012 06:08


Часовой пояс GMT +4, время: 17:38.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.