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

 
 
> Чтение\запись по SPI
d7d1cd
сообщение Jul 26 2012, 14:36
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199



Привет всем! У меня в устройстве микроконтроллер MSP430F149, к которому подключены 3 микросхемы памяти (для четвертой есть место, но она сама отсутствует). Схему подключения привожу ниже.

Моя задача написать функцию чтения\записи одного байта информации из любой микросхемы по любому адресу. Основная проблема в том, что функцию надо написать на ассемблере. Думаю, что подобную функцию, написанную на С, перевести на ассемблер проблем не составит.

Подскажите, пожалуйста, с чего мне начать?


Сообщение отредактировал d7d1cd - Jul 26 2012, 14:40
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
d7d1cd
сообщение Mar 13 2013, 16:16
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199



Какой развернутый ответ... Готовность микросхемы я проверяю. Более того, я делаю запись регистра статуса (все биты 0) для разрешения записи во всю МС. На WP при этом у меня 1.

Цитата
...при записи блока нужно выравнивать размер записи на границу размера буфера. Иначе происходит переполнение счетчика и запись в буфер происходит по кольцу. Для вычисления адреса начала буфера достаточно адрес начала записи поделить, а затем умножить на размер буфера (или наложить маску той же размерности, что и размер буфера). Соответственно для вычисления адреса конца буфера нужно прибавить к адресу начала буфера его размер.


Вот это немного сложно пока. Даже примеры пока не спасают. Давайте представим, что я хочу записать 10 байт в микросхему M95512 по адресу FFF0. Адрес начала буфера - FFF0 \ 80 = 1FF * 80 = FF80. Адрес конца буфера - FF80 + 7F = FFFF. То есть, буфер от FF80 до FFFF.

Получается, что отправив в МС адрес FFF0 реально произойдет запись начиная с адреса FF80 что ли?

Сообщение отредактировал d7d1cd - Mar 13 2013, 16:51
Go to the top of the page
 
+Quote Post
rezident
сообщение Mar 13 2013, 18:02
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(d7d1cd @ Mar 13 2013, 21:16) *
Получается, что отправив в МС адрес FFF0 реально произойдет запись начиная с адреса FF80 что ли?
Нет конечно! Посмотрите Figure 4. Block diagram в datasheet M95512. Видите там прямоугольник с надписью Address register and counter? Вот в этот регистр записывается начальный адрес, который вы передаете в команде записи. Младшие 7 бит этого адреса автоматически инкрементируются при последовательной записи данных в буфер (размером 128 байт), начиная от начального адреса. Если побитно рассматривать, то адрес выглядит как XXXX XXXX XCCC CCCC, где биты X, транслированные в м/с EEPROM после кода команды, не меняются, а биты C инкрементируются при записи каждого последующего байта данных. Если вы запишете в буфер больше, чем позволяет разрядность его счетчика, то этот счетчик переполнится и адрес вернется вновь к началу буфера. При побайтной записи (один байт на каждую команду записи) можно писать по какому угодно адресу. Но при блочной записи необходимо выравнивать данные так, чтобы счетчик адреса не переполнился.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- d7d1cd   Чтение\запись по SPI   Jul 26 2012, 14:36
- - ut1wpr   Цитата(d7d1cd @ Jul 26 2012, 17:36) Приве...   Jul 26 2012, 15:47
- - d7d1cd   Я конечно понимаю, что вы ошиблись, но 3 пункт зде...   Jul 26 2012, 16:20
|- - _Артём_   Цитата(d7d1cd @ Jul 26 2012, 19:20) перев...   Jul 26 2012, 16:34
- - d7d1cd   Чтобы труд не был напрасным, буду сразу писать на ...   Jul 26 2012, 16:48
|- - _Артём_   Цитата(d7d1cd @ Jul 26 2012, 19:48) Чтобы...   Jul 26 2012, 17:05
|- - rezident   Цитата(d7d1cd @ Jul 26 2012, 21:48) Микро...   Jul 26 2012, 21:02
- - d7d1cd   К сожалению, схему подключения переделать нельзя. ...   Jul 27 2012, 02:56
- - d7d1cd   Поизучал ДШ. Возник вопрос по режимам SPI. Сказано...   Jul 27 2012, 16:20
|- - _Артём_   Цитата(d7d1cd @ Jul 27 2012, 19:20) Возни...   Jul 27 2012, 17:25
- - d7d1cd   Ссылку я и ранее читал. Сейчас более подробно изуч...   Jul 28 2012, 04:44
|- - _Артём_   Цитата(d7d1cd @ Jul 28 2012, 07:44) Скажи...   Jul 28 2012, 12:21
|- - d7d1cd   Цитата(_Артём_ @ Jul 28 2012, 16:21) То е...   Jul 28 2012, 12:57
|- - _Артём_   Цитата(d7d1cd @ Jul 28 2012, 15:57) А есл...   Jul 28 2012, 13:04
- - d7d1cd   Спасибо за помощь. Еще такой момент: после отправк...   Jul 28 2012, 13:26
|- - _Артём_   Цитата(d7d1cd @ Jul 28 2012, 16:26) Еще т...   Jul 28 2012, 13:44
- - d7d1cd   Хочу изложить то, что я выяснил и понял как сделат...   Jul 29 2012, 12:42
|- - _Артём_   Цитата(d7d1cd @ Jul 29 2012, 15:42) Ведь ...   Jul 29 2012, 16:01
|- - d7d1cd   Цитата(_Артём_ @ Jul 29 2012, 20:01) NOP ...   Jul 29 2012, 16:42
- - d7d1cd   Подошел к необходимости работать с микросхемой пам...   Sep 29 2012, 14:54
|- - _Артём_   Цитата(d7d1cd @ Sep 29 2012, 17:54) Подош...   Sep 29 2012, 15:33
- - d7d1cd   Работать планируется с микросхемой M95256. Изучив ...   Sep 29 2012, 17:19
|- - _Артём_   Цитата(d7d1cd @ Sep 29 2012, 20:19) Получ...   Sep 29 2012, 17:28
- - d7d1cd   Ну вообще не проверять я думаю не правильно. Вдруг...   Sep 29 2012, 17:42
|- - _Артём_   Цитата(d7d1cd @ Sep 29 2012, 20:42) И еще...   Sep 29 2012, 17:53
|- - d7d1cd   Цитата(_Артём_ @ Sep 29 2012, 21:53) Разг...   Sep 30 2012, 05:46
|- - _Артём_   Цитата(d7d1cd @ Sep 30 2012, 08:46) Думаю...   Sep 30 2012, 13:30
|- - d7d1cd   Цитата(_Артём_ @ Sep 30 2012, 17:30) Не л...   Sep 30 2012, 15:06
|- - _Артём_   Цитата(d7d1cd @ Sep 30 2012, 18:06) Как п...   Sep 30 2012, 15:33
- - d7d1cd   С самом начале моего поста есть схема. На ней выво...   Oct 7 2012, 13:15
|- - _Артём_   Цитата(d7d1cd @ Oct 7 2012, 16:15) Если м...   Oct 7 2012, 15:13
|- - d7d1cd   Цитата(_Артём_ @ Oct 7 2012, 19:13) C дву...   Oct 7 2012, 16:14
|- - hash20   Цитата(d7d1cd @ Oct 7 2012, 19:14) Что зн...   Oct 8 2012, 10:19
- - d7d1cd   Понятно. То есть, в моем случае, я и читаю и запис...   Oct 8 2012, 16:35
|- - _Артём_   Цитата(d7d1cd @ Oct 8 2012, 19:35) То ест...   Oct 8 2012, 20:02
|- - rezident   Цитата(d7d1cd @ Oct 8 2012, 21:35) Понятн...   Oct 9 2012, 19:02
|- - d7d1cd   Цитата(rezident @ Oct 9 2012, 23:02) Я не...   Oct 10 2012, 16:08
|- - rezident   Цитата(d7d1cd @ Oct 10 2012, 21:08) Спаси...   Oct 10 2012, 16:21
|- - _Артём_   Цитата(d7d1cd @ Oct 10 2012, 19:08) Вопро...   Oct 10 2012, 16:26
- - d7d1cd   Еще есть вопрос. Перед тем как начать процедуру за...   Oct 9 2012, 15:47
- - d7d1cd   Понятно. Еще вопрос возник относительно того, что ...   Oct 10 2012, 17:16
|- - rezident   Цитата(d7d1cd @ Oct 10 2012, 22:16) Подск...   Oct 10 2012, 17:51
- - d7d1cd   Как я понял, после выбора м\с (Chip Select = ...   Oct 11 2012, 02:55
|- - rezident   Цитата(d7d1cd @ Oct 11 2012, 07:55) Хоть ...   Oct 11 2012, 09:15
- - d7d1cd   Нк, слава транзистору! Спасибо за помощь. По...   Oct 12 2012, 02:50
- - d7d1cd   Снова вопрос. Я применяю микросхемы памяти FM25CL6...   Jan 29 2013, 14:07
|- - d7d1cd   Цитата(d7d1cd @ Jan 29 2013, 18:07) Снова...   Feb 5 2013, 17:28
- - thodnev   Кхм, мне в голову пришел один дебильный вариант. М...   Jan 30 2013, 18:32
- - d7d1cd   Можно использовать, но при разборе оного вопросов ...   Feb 3 2013, 16:39
- - d7d1cd   Возвращаюсь к теме. Чтение из памяти по протоколу ...   Mar 6 2013, 17:55
|- - rezident   Цитата(d7d1cd @ Mar 6 2013, 22:55) Теперь...   Mar 6 2013, 19:03
- - d7d1cd   rezident, из Вашего ответа я понял, что перед отпр...   Mar 7 2013, 02:42
- - d7d1cd   Возник такой вопрос: с какой целью создана команда...   Mar 11 2013, 14:31
|- - rezident   Цитата(d7d1cd @ Mar 11 2013, 19:31) Ведь ...   Mar 11 2013, 16:30
|- - d7d1cd   Цитата(rezident @ Mar 11 2013, 20:30) Не ...   Mar 11 2013, 16:37
|- - rezident   Цитата(d7d1cd @ Mar 11 2013, 21:37) 1. Чт...   Mar 12 2013, 09:35
- - d7d1cd   Понял вас, rezident! Можете же грамотно поясни...   Mar 12 2013, 16:57
- - rezident   Вы бы для начала выложили наконец корректную схему...   Mar 13 2013, 09:56
|- - d7d1cd   Цитата(rezident @ Mar 13 2013, 13:56) Вы ...   Mar 13 2013, 14:49
- - rezident   Сигналами CS, надеюсь, при записи в разные кристал...   Mar 13 2013, 15:43
- - d7d1cd   Понял. Со счетчиком все ясно. Вернувшись к моей за...   Mar 14 2013, 02:51
|- - rezident   Да, именно так и нужно. 1.Читаете регистр статуса...   Mar 14 2013, 05:29
- - d7d1cd   А если в пункте 1б SRWD равен 1? В своей реализаци...   Mar 14 2013, 16:46
|- - rezident   Да, в моем описании алгоритма я почему-то упустил ...   Mar 14 2013, 18:41
- - d7d1cd   Цитатанеобходимость подачи команды WREN перед запи...   Mar 15 2013, 02:48
- - rezident   Циатата из datasheet M95512 ЦитатаWhile the Write ...   Mar 15 2013, 08:38
- - IVN2013   Доброго времени суток! Начал осваивать работу ...   Mar 22 2015, 18:51


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

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 18:36
Рейтинг@Mail.ru


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