Добрый день!
Работал ли кто с такой связкой. Никак не получается общаться с микросхемкой. Основная проблема в том, что разрядность регистра шины spi у lpc1114 16 бит, а микросхемке нужно передавать либо 8(команда) либо 32 бита(команда + адрес). Я пробовал програмно эмулировать работу вывода SSEL. Но что-то не получается. Есть идеи?
lpc1114 и память m95m01
- Реклама
Re: lpc1114 и память m95m01
изучайте матчасть! (datasheet)
"для SPI размер фрейма можно настроить от 4 до 16 бит..."
Если в настройках SPI для соответствующей ноги выбран режим SPI - то хрен ты ее программно "дернешь" (предварительно в настройках переключи режим SPI на I/O)...
удачи!
"для SPI размер фрейма можно настроить от 4 до 16 бит..."
Если в настройках SPI для соответствующей ноги выбран режим SPI - то хрен ты ее программно "дернешь" (предварительно в настройках переключи режим SPI на I/O)...
удачи!
Всех денег заработать нельзя, поэтому часть придется украсть 
Re: lpc1114 и память m95m01
Да собственно так и делаю...
SSEL у меня как GPIO выход. Дергаю записью 1 или 0. Разрядность настроил. 8 бит.
Есть сомнения в правильности настройки частоты шины. Во всех примерах предделитель отличный от нуля, я оставил 0. Частота по формуле из даташита получается 6 МГц. Вот кусок кода инициализации:
// spi0 init
LPC_IOCON->SWCLK_PIO0_10 = 0xC2;
LPC_IOCON->PIO0_9 = 0xD1;
LPC_IOCON->PIO0_8 = 0xD1;
LPC_SYSCON->SYSAHBCLKCTRL |= (1<<11);
LPC_SYSCON->SSP0CLKDIV = 0x01;
LPC_SYSCON->PRESETCTRL |= 0x01;
LPC_SSP0->CR0 = 0x07; // предделитель 0 режим SPI 8-bit
LPC_SSP0->CR1 = 0x02;
LPC_SSP0->CPSR = 0x02; // делитель 2
// init additional gpio for spi0
LPC_GPIO0->DIR |= (1<<1)|(1<<2)|(1<<3)|(1<<6)|(1<<7);
SSEL у меня как GPIO выход. Дергаю записью 1 или 0. Разрядность настроил. 8 бит.
Есть сомнения в правильности настройки частоты шины. Во всех примерах предделитель отличный от нуля, я оставил 0. Частота по формуле из даташита получается 6 МГц. Вот кусок кода инициализации:
// spi0 init
LPC_IOCON->SWCLK_PIO0_10 = 0xC2;
LPC_IOCON->PIO0_9 = 0xD1;
LPC_IOCON->PIO0_8 = 0xD1;
LPC_SYSCON->SYSAHBCLKCTRL |= (1<<11);
LPC_SYSCON->SSP0CLKDIV = 0x01;
LPC_SYSCON->PRESETCTRL |= 0x01;
LPC_SSP0->CR0 = 0x07; // предделитель 0 режим SPI 8-bit
LPC_SSP0->CR1 = 0x02;
LPC_SSP0->CPSR = 0x02; // делитель 2
// init additional gpio for spi0
LPC_GPIO0->DIR |= (1<<1)|(1<<2)|(1<<3)|(1<<6)|(1<<7);
Re: lpc1114 и память m95m01
... я сильно не заморачиваюсь сам бадаться с аппаратной переферией кристалла - беру кейловские примеры, они на 99.99 % рабочие...
сейчас извини не буду перелапачивать твой код, посмотри рабочие примеры, хотябы из того же кейла...
удачи!
сейчас извини не буду перелапачивать твой код, посмотри рабочие примеры, хотябы из того же кейла...
удачи!
Всех денег заработать нельзя, поэтому часть придется украсть 

