Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите установить контакт по SPI с lpc2141
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
barmich
Уважакмые форумчане! Помогите!
Не могу войти в контакт с LPC2141 по SPI!
Все инструкции datasheet по установке SPI выполнил.
Посылаю байт = "?" .
Принимаю ответный байт и ожидаю получить что угодно, но не 00 или FF. а в результате
ничего не получаю - почему? Что не так?
Помогите!!!
DpInRock
Вы не в состоянии пока формулировать вопросы.
barmich
Есть такой грех.
Попробую по-другому.
Для прошивки LPC2141 через SPI, как я понял, необходимо передать мк
байт 3F. на что мк должен ответить последовательностью символов,
т.е. хотя бы один байт из принятых должен отличаться от 00 или FF.
Пользовался DataSheet и книгой Редькина(сегодня увидел отрицательные отзывы на нее),
делал так:
P0.14 ="0"
Sel SPI ="0"
Передача "0011 1111"
Прием 4-х байтов.
Безрезультатно.
Вопросы:
1. Должен ли Sel SPI устанавливаться в "1" при P0.14="0"?
2. Должен ли MOSI устанавливаться в "1" при Sel SPI ="0"?
3. Можно ли эти операции проделать в пошаговом режиме?
Спасибо.
DpInRock
Перво наперво покажите место в даташите, в котором утверждается, что ISP работает через SPI.
А потом, глядишь, и дальше пойдет.
rezident
Может это не совсем то, но почитать следует Entering ISP mode from user code ну либо см. на страничке продукта.
barmich
Спасибо за Ваше участие!
Предложенное описание ISP изучаю.
Первое впечатление- оно соответствует описанному в datasheet:
ISP описано в главе 21
Chapter 21: Flash Memory System and Programming
--------------------------------------
21.1 Flash Boot Loader
The Boot Loader controls initial operation after reset, and also provides the means to
accomplish programming of the Flash memory. This could be initial programming of a
blank device, erasure and re-programming of a previously programmed device, or
programming of the Flash memory by the application program in a running system.
21.2 Features
• In-System Programming: In-System programming (ISP) is programming or
reprogramming the on-chip flash memory, using the boot loader software and a serial
port. This can be done when the part resides in the end-user board.
• In Application Programming: In-Application (IAP) programming is performing erase
and write operation on the on-chip flash memory, as directed by the end-user
application code.
21.3 Applications
The flash boot loader provides both In-System and In-Application programming interfaces
for programming the on-chip flash memory.
21.4 Description
The flash boot loader code is executed every time the part is powered on or reset. The
loader can execute the ISP command handler or the user application code. A a LOW level
after reset at the P0.14 pin is considered as an external hardware request to start the ISP
command handler. Assuming that proper signal is present on X1 pin when the rising edge
on RESET pin is generated, it may take up to 3 ms before P0.14 is sampled and the
decision on whether to continue with user code or ISP handler is made. If P0.14 is
sampled low and the watchdog overflow flag is set, the external hardware request to start
the ISP command handler is ignored. If there is no request for the ISP command handler
execution (P0.14 is sampled HIGH after reset), a search is made for a valid user program.
If a valid user program is found then the execution control is transferred to it. If a valid user
program is not found, the auto-baud routine is invoked.
Pin P0.14 that is used as hardware request for ISP requires special attention. Since P0.14
is in high impedance mode after reset, it is important that the user provides external
hardware (a pull-up resistor or other device) to put the pin in a defined state. Otherwise
unintended entry into ISP mode may occur.
И т.д.
--------------------------------------------------------
Выполнил эти действия - нет ответа на запрос.
Не могу понять в чем проблема (кроме той, что я чайничок)?
С уважением barmich.
zltigo
Цитата(barmich @ Mar 24 2010, 11:54) *
Выполнил эти действия - нет ответа на запрос.

И не будет, поскольку ISP работает через UART0. Без вариантов. Вы первый на этом форуме, кому не удалось этого понять sad.gif
AHTOXA
Давайте всё по порядку.

1. Что у вас за плата. (отладочная готовая, своя);
2. Что куда цепляете (как соединён микроконтроллер с компьютером, как согласованы уровни);
3. Какой софт на компьютере.

Пока хватит. И не стесняйтесь быть многословным, лучше дать лишнюю информацию, чем случайно умолчать о чём-либо важном.

Цитата(zltigo @ Mar 24 2010, 14:04) *
И не будет, поскольку ISP работает через UART0. Без вариантов. Вы первый на этом форуме, кому не удалось этого понять sad.gif


Скорее человек просто перепутал слова ISP и SPI:)
zltigo
Цитата(AHTOXA @ Mar 24 2010, 12:08) *
Скорее человек просто перепутал слова ISP и SPI:)

А это тогда он о чем???:
Цитата
1. Должен ли Sel SPI устанавливаться в "1" при P0.14="0"?
2. Должен ли MOSI устанавливаться в "1" при Sel SPI ="0"?
AHTOXA
Цитата(zltigo @ Mar 24 2010, 14:12) *
А это тогда он о чем???:


А это - последствия перепутывания smile.gif
barmich
Благодарю за Ваше участие!
Извините за долгое молчание.
Каждое Ваше замечание изучаю, а для меня это - время, намного большее, чем для Вас.
Каждое Ваше замечание для меня урок!
Это относится и ко всем последующим моим сообщениям!
Теперь по порядку:
1. "И не будет, поскольку ISP работает через UART0. Без вариантов."
UART - Спасибо! А при первичной прошивке?
2. "Скорее человек просто перепутал слова ISP и SPI"
Как я понимаю - SPI это интерфейс (канал связи с присущим ему протоколом, в т.ч. и ISP).
ISP - это и есть протокол (условия, порядок) последовательного обмена данными).
Ответы на вопросы:
1. Что у вас за плата. (отладочная готовая, своя);
Плата своя. В общих словах такая - площадки для припайки ног LPC2141(далее мк).
На плате установлены стабилизиторы питания 5 и 3,3 в. 5в преоразуется из внешнего 12в; 3,3 - из 5в.
Макс. ток стабилизаторов 150 ма
(5 в на LT1376IS8-5, 3,3 на LM3940)
2. Что куда цепляете (как соединён микроконтроллер с компьютером, как согласованы уровни);
Все пины gnd на общий минус(обратная сторона платы)
Все пины 3,3в на общий +3,3в полигон под мк. Каждый вывод на gnd через С=0,1 (чип)
Кварц - 24 мгц . Каждый вывод на gnd через С=38 pF (чип). При проверке осцилогр. F = 24 мгц, ампл. 3 в.
Остальные выводы (кроме пустых) на площадки с отверстиями для навесной коммутации(см. фото, правда неудачное)
Связь с ПК осуществлялась при:
- первых опытах через USB с помощью проверенного "переходника USB", позволяющего
программно управлять 18-ю I/O пинами с уровнем 1=3,3 в, 0-активный, с частотой до 6 мгц.
- при вторых опытах через LPT (т.к. пины мк толерантны к 5в). Т.к. у мк 0-активный то преобразователь
3,3->5в с пина вывода данных с мк на LPT не применялся.
3. Какой софт на компьютере.
ОС XP(но видимо вопрос не об этом)
Из специальных программ для работы( прошивки) мк есть Н-JTAG скачанная на всякий случай
С уважением, barmich

Нажмите для просмотра прикрепленного файла
AHTOXA
Понятно, всё-таки пытались программировать через SPI. Нет, только UART0.
Посмотрите для примера вот эту схему. (Это схема отладочной платы lpc-p2148). Разъём, через который производится внутрисхемное программирование - обозначен там "RS232_0/ICSP".
Программа на PC - либо FlashMagic от филипса, либо at200 от zltigo.
DpInRock
Никогда так весело не смеялся.
Есть законы природы.
1. В начале было слово.
2. Слово было даташит.
3. И сказано в даташите - ISP работает через UART0
4. И SPI не имеет ни малейшего отношения к ISP. Ни в одном месте. Ни разу.
rezident
Цитата(DpInRock @ Mar 25 2010, 01:33) *
Никогда так весело не смеялся.
...
4. И SPI не имеет ни малейшего отношения к ISP. Ни в одном месте. Ни разу.
Не для того, чтобы запутать топкстартера, а только для того, что "никогда не говори никогда".
ISP (In-System-Progamming - внутрисистемное программирование или In-Scheme-Progamming - внутрисхемное программирование) в принципе может быть реализовано через любой другой интерфейс, например, посредством IAP (In-Application-Programming - внутрипрограммное программирование), если в МК заранее (до установки его в плату) был прошит загрузчик, который поддерживает эту функцию. Да, у LPC21xx с завода идет только один загрузчик, работающий с UART0. Но никто не мешает до запаивания установить кристалл в панельку и загрузить туда пользовательский загрузчик (в дополнение к заводскому), который будет поддерживать все остальные интерфейсы, имеющиеся в кристалле. Более того, во многих других МК и DSP существуют заводские загрузчики, интерфейс для которых выбирается простой комбинацией внешних сигналов.
haker_fox
Цитата(DpInRock @ Mar 25 2010, 04:33) *
Никогда так весело не смеялся.

Ладно, с кем не бывает) Это нам легко почувствовать разницу. Я вот лет 5 назад тоже путался между понятиями SPI и ISP.
barmich
Уважаемые ФОРУМЧАНЕ! Спасибо! Буду пробовать!
Осмелюсь попросить Вас ткнуть меня носом в то место, где
в Datasheet сказано о заводском загрузчике, чтобы в будущем не
попадать в аналогичные засады!
Особое Спасибо Уважаемому АНТОХЕ!
barmich
DpInRock
Ткнуть носом тяжело. Филипсовские даташиты славятся своей плохой организацией. По сравнению хотя бы с Атмелом. И посему их надо читать целиком, выискивая нужное. (К примеру, для написания загрузчика для атмела нужно 10 минут читать даташит, в котором есть всё в одном месте. Для филипса - надо читать весь, да еще лезть за тем, чего в даташите нет...)

А смеялся я именно весело, без всякой задней мысли.
zltigo
Цитата(DpInRock @ Mar 25 2010, 13:17) *
Ткнуть носом тяжело...

??? Чего-бы это вдруг?
Код
7.On-chip flash memory system
The LPC2141/2/4/6/8 incorporate a 32kB, 64kB, 128kB, 256kB, and 512kB Flash
memory system, respectively. This memory may be used for both code and data storage.
Programming of the Flash memory may be accomplished in several ways: over the serial
built-in JTAG interface, using In System Programming (ISP) and UART0, or by means of
In Application Programming (IAP) capabilities. The application program, using the IAP
functions, may also erase and/or program the Flash while the application is running,
allowing a great degree of flexibility for data storage field firmware upgrades, etc. When
the LPC2141/2/4/6/8 on-chip bootloader is used, 32kB, 64kB, 128kB, 256kB, and
500kB of Flash memory is available for user code.
The LPC2141/2/4/6/8 Flash memory provides minimum of 100,000 erase/write cycles and
20 years of data-retention.

Цитата
Для филипса - надо читать весь, да еще лезть за тем, чего в даташите нет...

Глупости sad.gif сваливание всего и вся в один файл совершенно не принципиально, а в том случае, когда надо найти изменения в этой портянке - явно вредно. А уж когда в двух кучах торжества copy-paste надо найти нюансы отличающие какой-нибудь контроллер цифирью 8 на конце от контрорллера с цифирью 16 или даже отличие 'A' от 'L', то становится мягко говоря тоскливо. Одного не понмаю, почему Atmel "для удобства" туда еще и AN не скопипастил? Зайти на сайт и взять нужный документ - какие проблемы, для нормального человека?
http://ics.nxp.com/support/documents/micro.../?scope=LPC2142
barmich
Уважаемые ФОРУМЧАНЕ!
СПАСИБО!
Все получилось!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.