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

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

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

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

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

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


 
Опции темы
Непрочитано 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.RU
 
Регистрация: 15.11.2010
Сообщений: 2,378
Сказал спасибо: 338
Сказали Спасибо 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
Ускорить компьютер 7Fantomas7 Ремонт оргтехники 111 08.08.2018 05:27
Анекдот, анекдот ... (часть 1) DK Отвлекитесь, эмбеддеры! 8148 05.06.2013 23:14
Помогите начинающему по ATmega8515 Vladlen23 Микроконтроллеры, АЦП, память и т.д 510 27.03.2012 06:08


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot