|
Помогите установить контакт по SPI с lpc2141, установление контакта по SPI с lpc2141 |
|
|
|
Mar 23 2010, 13:41
|
Группа: Участник
Сообщений: 7
Регистрация: 23-03-10
Пользователь №: 56 142

|
Уважакмые форумчане! Помогите! Не могу войти в контакт с LPC2141 по SPI! Все инструкции datasheet по установке SPI выполнил. Посылаю байт = "?" . Принимаю ответный байт и ожидаю получить что угодно, но не 00 или FF. а в результате ничего не получаю - почему? Что не так? Помогите!!!
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 18)
|
Mar 23 2010, 20:07
|
Группа: Участник
Сообщений: 7
Регистрация: 23-03-10
Пользователь №: 56 142

|
Есть такой грех. Попробую по-другому. Для прошивки 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. Можно ли эти операции проделать в пошаговом режиме? Спасибо.
|
|
|
|
|
Mar 24 2010, 08:54
|
Группа: Участник
Сообщений: 7
Регистрация: 23-03-10
Пользователь №: 56 142

|
Спасибо за Ваше участие! Предложенное описание 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.
|
|
|
|
|
Mar 24 2010, 09:08
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Давайте всё по порядку. 1. Что у вас за плата. (отладочная готовая, своя); 2. Что куда цепляете (как соединён микроконтроллер с компьютером, как согласованы уровни); 3. Какой софт на компьютере. Пока хватит. И не стесняйтесь быть многословным, лучше дать лишнюю информацию, чем случайно умолчать о чём-либо важном. Цитата(zltigo @ Mar 24 2010, 14:04)  И не будет, поскольку ISP работает через UART0. Без вариантов. Вы первый на этом форуме, кому не удалось этого понять  Скорее человек просто перепутал слова ISP и SPI:)
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Mar 24 2010, 09:12
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(AHTOXA @ Mar 24 2010, 12:08)  Скорее человек просто перепутал слова ISP и SPI:) А это тогда он о чем???: Цитата 1. Должен ли Sel SPI устанавливаться в "1" при P0.14="0"? 2. Должен ли MOSI устанавливаться в "1" при Sel SPI ="0"?
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Mar 24 2010, 19:26
|
Группа: Участник
Сообщений: 7
Регистрация: 23-03-10
Пользователь №: 56 142

|
Благодарю за Ваше участие! Извините за долгое молчание. Каждое Ваше замечание изучаю, а для меня это - время, намного большее, чем для Вас. Каждое Ваше замечание для меня урок! Это относится и ко всем последующим моим сообщениям! Теперь по порядку: 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
|
|
|
|
|
Mar 24 2010, 20:33
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Понятно, всё-таки пытались программировать через SPI. Нет, только UART0. Посмотрите для примера вот эту схему. (Это схема отладочной платы lpc-p2148). Разъём, через который производится внутрисхемное программирование - обозначен там "RS232_0/ICSP". Программа на PC - либо FlashMagic от филипса, либо at200 от zltigo.
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Mar 24 2010, 23:36
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(DpInRock @ Mar 25 2010, 01:33)  Никогда так весело не смеялся. ... 4. И SPI не имеет ни малейшего отношения к ISP. Ни в одном месте. Ни разу. Не для того, чтобы запутать топкстартера, а только для того, что "никогда не говори никогда". ISP (In-System-Progamming - внутрисистемное программирование или In-Scheme-Progamming - внутрисхемное программирование) в принципе может быть реализовано через любой другой интерфейс, например, посредством IAP (In-Application-Programming - внутрипрограммное программирование), если в МК заранее (до установки его в плату) был прошит загрузчик, который поддерживает эту функцию. Да, у LPC21xx с завода идет только один загрузчик, работающий с UART0. Но никто не мешает до запаивания установить кристалл в панельку и загрузить туда пользовательский загрузчик ( в дополнение к заводскому), который будет поддерживать все остальные интерфейсы, имеющиеся в кристалле. Более того, во многих других МК и DSP существуют заводские загрузчики, интерфейс для которых выбирается простой комбинацией внешних сигналов.
|
|
|
|
|
Mar 25 2010, 09:20
|
Группа: Участник
Сообщений: 7
Регистрация: 23-03-10
Пользователь №: 56 142

|
Уважаемые ФОРУМЧАНЕ! Спасибо! Буду пробовать! Осмелюсь попросить Вас ткнуть меня носом в то место, где в Datasheet сказано о заводском загрузчике, чтобы в будущем не попадать в аналогичные засады! Особое Спасибо Уважаемому АНТОХЕ! barmich
|
|
|
|
|
Mar 25 2010, 11:26
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(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. Цитата Для филипса - надо читать весь, да еще лезть за тем, чего в даташите нет... Глупости  сваливание всего и вся в один файл совершенно не принципиально, а в том случае, когда надо найти изменения в этой портянке - явно вредно. А уж когда в двух кучах торжества copy-paste надо найти нюансы отличающие какой-нибудь контроллер цифирью 8 на конце от контрорллера с цифирью 16 или даже отличие 'A' от 'L', то становится мягко говоря тоскливо. Одного не понмаю, почему Atmel "для удобства" туда еще и AN не скопипастил? Зайти на сайт и взять нужный документ - какие проблемы, для нормального человека? http://ics.nxp.com/support/documents/micro.../?scope=LPC2142
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Apr 10 2010, 10:40
|
Группа: Участник
Сообщений: 7
Регистрация: 23-03-10
Пользователь №: 56 142

|
Уважаемые ФОРУМЧАНЕ! СПАСИБО! Все получилось!
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|