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

 
 
> LPC2104 и RL-FlashFS, Помогите подружить
Пал
сообщение Aug 29 2009, 09:33
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 3-12-08
Пользователь №: 42 171



Добрый день всем. Разведена платка с SD карточкой и 2104 камушком. Камушки пришли самой первой ревизии, без SSP. Написал драйверочек под простой SPI(кто осваивал RL-FlashFS знает, там надо 4 функции написать). Ставлю finit() в самом начале проги, при сбросе проц доджен пытаться инициализировать карту. Что интересно, два сброса finit возвращает 1(карта не инициирована) на третий сброс программа застревает внутри этого finit и сыплет какую то шелуху по спиайным ногам. И повторяется эта картина железно - сброс, сброс, застряла, сброс, сброс, застряла. Чтобы отсечь ненужные вопросы сразу скажу - с железом все в порядке. С карточками раньше работал. Взял программку инициации карточки из своего проекта на авр, посадил сверху на упомянутый драйверочек SPI, засунул в 2104 в этой проблеммной платочке - карта отзывается, инициализируется. Но хочется заставить её работать из под RL-FlashFS. Поэтому хочется услышать совет людей, портировавших сабж на камни 2104/05/06 с простым SPIем. Заранее спасибо. На всяки случай - виснет здесь:

U8 spi_send (U8 outb) {
/* Write and Read a byte on SPI interface. */

/* Wait if TNF cleared, Tx FIFO is full. */
// while (!(SSPSR & TNF));
S0SPDR = outb;

/* Wait if RNE cleared, Rx FIFO is empty. */
while (!(S0SPSR &(1<<7)));
return (S0SPDR);
}
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
esaulenka
сообщение Aug 31 2009, 14:40
Сообщение #2


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

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



Меня несколько смутили слова "FIFO" и упоминания SSPSR - это самый что ни на есть SSP.

Открыл даташит на LPC2104, там уже всё расписано:
Цитата
Master Operation
The following sequence describes how one should process a data transfer with the SPI block when it is set up to be the master.
This process assumes that any prior data transfer has already completed.
1. Set the SPI clock counter register to the desired clock rate.
2. Set the SPI control register to the desired settings.
3. Write the data to transmitted to the SPI data register. This write starts the SPI data transfer.
4. Wait for the SPIF bit in the SPI status register to be set to 1. The SPIF bit will be set after the last cycle of the SPI data
transfer.
5. Read the SPI status register.
6. Read the received data from the SPI data register (optional).
7. Go to step 3 if more data is required to transmit.
Note that a read or write of the SPI data register is required in order to clear the SPIF status bit. Therefore, if the optional read
of the SPI data register does not take place, a write to this register is required in order to clear the SPIF status bit.


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
Пал
сообщение Aug 31 2009, 17:54
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 3-12-08
Пользователь №: 42 171



Цитата(esaulenka @ Aug 31 2009, 21:40) *
Меня несколько смутили слова "FIFO" и упоминания SSPSR - это самый что ни на есть SSP.

Открыл даташит на LPC2104, там уже всё расписано:


Как же мне вам написать, чтобы вы меня поняли...
Я умею работать с эспиай, я им окучиваю и памятешки, и ацпшки, и кан-контроллеры, и генераторы и часики и в АВРках, и в ПИКах и в ЭЛЬПИСИШНИКАХ. Абзац что вы привели я знаю почти наизусть. ФИФО в моем коде упоминается потому, что я ВЗЯЛ РАБОТАЮЩИЙ ПРИМЕР ДЛЯ 2141(он работает на SSP) И ПОПЫТАЛСЯ ЗАСУНУТЬ ЕГО В 2104. НО В ПЕРВЫХ РЕВИЗИЯХ 2104 НЕБЫЛО SSP, ПОЭТОМУ драйверок SSP-2141 я переписал по смыслу и по опыту для SPI-2104. Функцию spi_send из моего драйвера я вам показал и сказал что в ней виснет иногда. Вся проблема в том что функция finit для меня черный ящик(она сидит в библиотеке) и я не могу знать что она должна делать и не могу посмотреть поэтому осцилом правильность хода её выполненияю. Поэтому я попросил совета у людей, делавших это. Раз вы сами признались что ни с одним из сабжей моего топика вы не работали - давайте не будем теоретизировать. Всего хорошего.
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Sep 1 2009, 07:40
Сообщение #4


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

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



Цитата(Пал @ Aug 31 2009, 21:54) *
Как же мне вам написать, чтобы вы меня поняли...

Аккуратно выкинув неиспользуемый код из приведённого кусочка. И комментарии там не к месту smile.gif
Прошу прощения, не заметил, что обращение к SSPSR закомментировано.

Возможно, кто-то зачем-то читает SSP0DR. Не отладчик, случаем?


Точно такой же код, как и Ваш, работает на 2134/2138 без нареканий.


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



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

 


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


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