Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Вт июн 12, 2012 09:17:52
Добрый день!
Работал ли кто с такой связкой. Никак не получается общаться с микросхемкой. Основная проблема в том, что разрядность регистра шины spi у lpc1114 16 бит, а микросхемке нужно передавать либо 8(команда) либо 32 бита(команда + адрес). Я пробовал програмно эмулировать работу вывода SSEL. Но что-то не получается. Есть идеи?
Вт июн 12, 2012 20:50:47
изучайте матчасть! (datasheet)
"для SPI размер фрейма можно настроить от 4 до 16 бит..."
Если в настройках SPI для соответствующей ноги выбран режим SPI - то хрен ты ее программно "дернешь" (предварительно в настройках переключи режим SPI на I/O)...
удачи!
Ср июн 13, 2012 10:27:54
Да собственно так и делаю...
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);
Ср июн 13, 2012 19:00:23
... я сильно не заморачиваюсь сам бадаться с аппаратной переферией кристалла - беру кейловские примеры, они на 99.99 % рабочие...
сейчас извини не буду перелапачивать твой код, посмотри рабочие примеры, хотябы из того же кейла...
удачи!
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.