Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос по SSP микроконтроллера LPC1788
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Iptash
Здравствуйте все.
Разбираюсь с KIT SK-MLPC1788. На ней установлена дата флеш AT45DB021(serial) которая подключена к SSP_1 выводам и которая работает в SPI режиме. Например для записи данных на флешку ей надо код операции адрес и данные. Но режим SPI это один кадр состоящий от 4 до 16 бит. Или запись/чтение нужно производить чисто программным путем?
jcxz
Кто-ж Вам мешает несколько раз выполнить запись этих от 4-х до 16-и?
Iptash
Никто не мешает. Только судя по графикам работы флешки, запись всего кадра должна быть не прерывной. А у контроллера кадр 4-16 бит и заканчивается с переходом CS 0->1. Вопрос решил сконфигурировав выход CS контроллера в обычный I/O и управляя им как нужно.
megajohn
Цитата(Iptash @ Feb 10 2015, 08:21) *
Вопрос решил сконфигурировав выход CS контроллера в обычный I/O и управляя им как нужно.


Так и нужно. На одном SPI у вас может быть до фига устройств. И у каждого свой CS

я делал таблицу устройств и на каждое устройство свою callback-функцию на включение-выключение CS и получалость вполне красиво и гибко

псевдокод

struct device_table
{
{ at_25_id, at25_func_cs },
{ si4421_id, si4421_func_cs },
};


spi.open( device_table );
spi.cs_sel( at_25_id );
spi.write( "3245345" );
spi.read( buff );
spi.cs_unsel( at_25_id );

и т.п.
Iptash
Цитата(megajohn @ Feb 10 2015, 09:27) *
Так и нужно. На одном SPI у вас может быть до фига устройств. И у каждого свой CS...

Как говорится "Утро вечера мудренее". Утром проснулся и подумал, а почему бы не так..))
jcxz
Цитата(megajohn @ Feb 10 2015, 12:27) *
на каждое устройство свою callback-функцию на включение-выключение CS

Достаточно номер_порта << 5 | номер_пина
#define Pclr2(port, pin) (GPIO[port].CLR = 1U << (pin))
#define Pset2(port, pin) (GPIO[port].SET = 1U << (pin))
Iptash
Почему то пин (CS) который сконфигурировал как обычный I/O, все равно при передачи оного байта устанавливается в 1. Пока не понял почему.
Iptash
Все, разобрался. С указателями запутался))
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.