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

 
 
> LPC1756+AT45DB081D, Ошибка чтения регистра dataflash
Croman13n3c
сообщение Mar 5 2012, 11:36
Сообщение #1


Участник
*

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



Имеем связку из LPC1756 и AT45DB081D через блок SSP в режиме SPI.
Пытаюсь считать Manufacturer ID (opcode - 0x9f)
По приему в буфеер оказывается значение 0x1E 0x00 0x00 0x00 (должно быть 0x1F 0x25 0x00 0x00).
Посмотрев осцилом на линии на первый взгляд всё порядке : cs опущен, тактирование идет, опкод заносится и от at45 приходит 0x1E( вместо ожидаемого).
Может кто с таким уже сталкивался , в чём может быть причина такого поведения ?

Инициализация SSP в SPI Mode 0 (P0.15,16,17,18 -- CLK,!CS,MISO,MOSI )
CODE

DataFlashSSP_CFG.CPHA=SSP_CPHA_FIRST;
DataFlashSSP_CFG.CPOL=SSP_CPOL_LO;
DataFlashSSP_CFG.ClockRate=1000000;
DataFlashSSP_CFG.Mode=SSP_MASTER_MODE;
DataFlashSSP_CFG.FrameFormat=SSP_FRAME_SPI;
DataFlashSSP_CFG.Databit = SSP_DATABIT_8;
SSP_ConfigStructInit(&DataFlashSSP_CFG);
SSP_Init(LPC_SSP0, &DataFlashSSP_CFG);

CLKPWR_SetPCLKDiv(CLKPWR_PCLKSEL_SSP0, CLKPWR_PCLKSEL_CCLK_DIV_2);

SSP_Cmd(LPC_SSP0, ENABLE);

/* ждем пока освободится*/
while( LPC_SSP0->SR & SSP_SR_BSY ) { ; }

/* очистка FIFO */
while( LPC_SSP0->SR & SSP_SR_RNE ) {
volatile uint32_t dummy = LPC_SSP0->DR;
(void)dummy;


Чтение Manufacturer ID

CODE

CS(LOW):
delay_us(10);
LPC_SSP0->DR = 0x9f;
while (LPC_SSP0->SR & SSP_SR_BSY ) { ; }
rx_data=LPC_SSP0->DR;

for (i=0;i<4;i++)
{
LPC_SSP0->DR = 0xFF;
while (LPC_SSP0->SR & SSP_SR_BSY ) { ; }
buf[i] = LPC_SSP0->DR;
}
CS(HI);
delay_ms(1);

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
esaulenka
сообщение Mar 5 2012, 12:02
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Вы бы написали, что эта чудо-библиотека делает в SSP_ConfigStructInit и SSP_Init.

И это... у меня всё работает :-) LPC1768, AT45DB161D.


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Croman13n3c   LPC1756+AT45DB081D   Mar 5 2012, 11:36
- - Croman13n3c   SSP_ConfigStructInit и SSP_Init стандартные функци...   Mar 5 2012, 12:31
- - esaulenka   Ну вот честное слово, лениво продираться через выс...   Mar 5 2012, 15:52
- - Croman13n3c   Функция обмена по SPI была рабочая, проверил на др...   Mar 19 2012, 08:54
- - esaulenka   Ну работает же у меня! :-) Проверил ещё раз: н...   Mar 20 2012, 11:41
- - Croman13n3c   Проверял, тоже самое. Различие в уровнях может выз...   Mar 21 2012, 05:25
- - esaulenka   Нет, ну не нравятся мне эти супер-библиотеки! ...   Mar 21 2012, 15:24
- - Croman13n3c   Спаяв новую плату , всё магическим образом заработ...   Jun 21 2012, 13:03
- - uriy   У меня точно такая же проблема, но контроллер STM3...   Dec 6 2012, 08:07
- - SyncLair   Простите, а разве нельзя просто частоту уменьшить ...   Dec 6 2012, 21:09
|- - esaulenka   Цитата(SyncLair @ Dec 7 2012, 01:09) Прос...   Dec 10 2012, 10:28
- - uriy   Частоту итак понижал до 250 КГц. Проблема похоже р...   Dec 7 2012, 20:48
- - uriy   Поясню тоже на будущее для других. Возможно кому-т...   Dec 11 2012, 05:08
- - Сергей Борщ   QUOTE (uriy @ Dec 11 2012, 07:08) Кондеры...   Dec 12 2012, 07:52


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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 18:45
Рейтинг@Mail.ru


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