Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> LPC1766FBD100 
:(
    Опции темы
CnApTaK
Дата 9.1.2012, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 9.1.2012

Репутация: нет
Всего: нет



Добрый день.
Посоветуйте кто чем может smile
Есть желание начать разбираться в программировании чипа LPC1766FBD100.
Объясню почему именно его. Есть готовое устройство в котором этот чип используется.
Есть разъём с выводами для подключения к ISP.
Не поленился и уже почитал немного мануал по чипу на тему защиты флешки от чтения и записи.
На сколько я понимаю, если чип даёт войти в режим ISP то защиты нет?
Или есть? Как это проверить?
Пишу сюда потому что при попытке синхронизировать скорость порта в режиме ISP (посылаю символ "?")
получаю ответ не тот который должен. Должен получить ответ "Synchronized" (11 байт),
а получаю какие-то другие 11 байт - 694D99B10C8E2A87A5AB77.
Причём протестировал на нескольких аналогичных устройствах.
Везде ответ одинаковый. Я где-то ошибся в подключении или я получаю какой-то шифрованный ответ?
Это защита какая-то? Подскажите как ещё можно было бы проверить доступен ли флеш на запись хотя бы.
В наличии только само устройство с чипом и компьютер с компортом, поэтому jtag не предлагать. негде взять.
Вобщем интересно, можни ли использовать эту устройство в качестве тестовой платы smile

P.S. разъём на устройстве такой (слева чёрный smile:
user posted image
к компу (картинка COM порта справа) подключаю 3 проводами. 10 - GROUND, 8 - TX, 7 - RX.
ресет 5-ый на землю срабатывает. если 9-ый кинуть на землю и сделать ресет то судя по мануалу я попадаю в загрузчик то бишь в режим ISP
ну и там как я уже писал посылаю вопросик

Это сообщение отредактировал(а) CnApTaK - 9.1.2012, 18:08
PM MAIL   Вверх
Mazzi
Дата 9.1.2012, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Правильный
**


Профиль
Группа: Комодератор
Сообщений: 825
Регистрация: 3.4.2003

Репутация: 9
Всего: 21



Обычно после включения защиты считываемые данные просто искажаются без возможности восстановления. Если программу "стереть", то защита убирается и чип готов к записи новой программы.


--------------------
Мне нужны помощники.
PM MAIL WWW   Вверх
CnApTaK
Дата 9.1.2012, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 9.1.2012

Репутация: нет
Всего: нет



Какие именно данные искажаются и как их стереть?
Загрузчик, который запускается при иницализации ISP разве находиться не в ROM? Как клиентское приложение может исказить данные загрузчика?
Читать код клиентского приложения мне не требуется. Он у меня есть.
Мне требуется найти возможность, записать на флешку чипа свой код, который после включения запустится на выполнение.
Цитата

There are three levels of the Code Read Protection.
CRP1 disables access to chip via the JTAG and allows partial flash update (excluding 
flash sector 0) using a limited set of the IS P commands. This mode is useful when CRP is 
required and flash field updates are needed but all sectors can not be erased.
CRP2 disables access to chip via the JTAG and only allows full flash erase and update 
using a reduced set of the ISP commands.
Running an application with level CRP3 selected fully disables any access to chip via the 
JTAG pins and the ISP. This mode effectively disables ISP override using P2[10] pin, too. 
It is up to the user’s application to provide  (if needed) flash update mechanism using IAP 
calls or call reinvoke ISP command to enable flash update via UART0.

Если я правильно понял, то это меры по ограничению доступа к коду пользователя.
Тут не сказано что данные загрузчика как-то искажаются.
Из написанного следует, что CRP3 блокирует вход в ISP используя P2[10] при включении или ресете.
Но устройства, которые у меня в распоряжении, реагируют на заземление этого пина.
В том плане что они перестают работать так как должны и входят в некий режим диалога через последовательный порт.
Вобщем мне сложно анализировать ситуацию. Я своими глазами не видел как правильно должен работать ISP и сам порт в нормальном режиме.
Я уверен только в том, что COM порт компьютера исправен и порты устройства тоже.
Я проверил множество устройств. Все ведут себя одинакого.
А вот защита это или какая-то несовместимость я и хотел узнать у знающих людей.
Хотя вот только что из дома проверил послать команду "?" и получил тоже 11 байт но уже другие A354BA3D9154B1A4DAC5F3


Это сообщение отредактировал(а) CnApTaK - 9.1.2012, 23:29
PM MAIL   Вверх
UniBomb
Дата 10.1.2012, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
***
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 1754
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: 9
Всего: 97



Меня смущает одна вещь - ты чего, мк подключаешь напрямую к ком-порту? Этого делать категорически нельзя. У большинства "прошивательных" интерфейсов TTL-логика, т.е. 0..5 вольт. У ком-порта мало того, что -15..15, так ещё и уровень сигнала наоборот интерпретируется. Для прошивания мк необходимо использоваться специальные адаптеры, именуемые программаторами. И прошиваются они не через терминал, а с помощью специальных утилит. Я с элпецешками никогда не работал, не могу рассказать о последних веяниях моды, но на вскидку вот тебе ссылка, в качестве отправной точки думаю должно хватить.


Цитата(CnApTaK @  10.1.2012,  00:04 Найти цитируемый пост)
Загрузчик, который запускается при иницализации ISP разве находиться не в ROM?

Загрузчик, или bootloader, как правило находится в специальном месте (обычно в конце памяти программ), и этот сектор имеет ряд особенностей в работе направленных на защиту от случайной порчи. 


Цитата(CnApTaK @  10.1.2012,  00:04 Найти цитируемый пост)
Тут не сказано что данные загрузчика как-то искажаются.

Mazzi немного не так выразился. При включённой защите чтения загрузчик на запрос о чтении возвращает случайные данные, не имеющие никакого отношения к пользовательской программе. Например мк фирмы атмел возвращают "00 01 02 03 04 05 06 ..." и т.д.
PM MAIL ICQ Skype   Вверх
CnApTaK
Дата 10.1.2012, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 9.1.2012

Репутация: нет
Всего: нет



а можно поподробнее про ТТЛ логику? про программатор? можно как-то простым способом его сделать или купить?
я просто в электронике не силён. хотел хотел просто чип попрограммировать smile

P.S. а точно для LPC1766FBD100 нужно 5В, а не 3.3? или 5В тоже подойдёт?
я нашёл схему для 5В. она решит мою проблему? smile
http://freecircuitdiagram.com/2009/03/27/s...ing-transistor/

Это сообщение отредактировал(а) CnApTaK - 10.1.2012, 12:33
PM MAIL   Вверх
UniBomb
Дата 10.1.2012, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
***
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 1754
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: 9
Всего: 97



ТТЛ регламентирует, что максимальное напряжение равно 5 вольт. Низкое напряжение интерпретируется как логический ноль, высокое соответственно как единица. Уровни сигналов при этом у каждого производителя/семейства/экземпляров могут различаться. Скажем у одной микросхемы низкий уровень это 0..0,4 вольта, 2.4..5 высокий. У другой микросхемы 0..0,8 - ноль, 2.7..5 - единица. Конкретнее надо смотреть в даташите. Значение между максимальным нулевым и минимальном единичным тоже могут по разному интерпретироваться. Что касается сабжевого мк, тот у него питание оказывается вообще 3,3 вольта. В даташите про уровни сигналов там вона чо написано:

user posted image

т.е. 0..0,3 - логический ноль, 0,7...3,3 - единица.

У ком порта же -15..-3 - единица, 3..15 - ноль.

Но в принципе тебе этим голову можно не забивать, раз ты не собираешься строить своё программатор. Далее, к сожалению, я тебе ничем не помогу. Я не работал с lpc, я не знаю чем они шьются. Может быть они вообще умеют по usb программироваться, без всяких адаптеров.
PM MAIL ICQ Skype   Вверх
xvr
Дата 10.1.2012, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 8
Всего: 223



Цитата(CnApTaK @  10.1.2012,  11:23 Найти цитируемый пост)
я нашёл схему для 5В. она решит мою проблему? 

Скорее добавит новых  smile Возьмите обычную микросхему конвертора (для 3В что то типа MAX3232E или один из многочисленных аналогов)

PM MAIL   Вверх
CnApTaK
Дата 10.1.2012, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 9.1.2012

Репутация: нет
Всего: нет



то есть если я возьму например http://www.digilentinc.com/Data/Products/P...232_rm_RevB.pdf
то с подключением проблема будет решена?
работать с ISP я умею. у него есть команды.
 да и программ много которые могут заливать/скачивать данные на/с флешки.
PM MAIL   Вверх
xvr
Дата 10.1.2012, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 8
Всего: 223



Цитата(CnApTaK @  10.1.2012,  14:41 Найти цитируемый пост)
то есть если я возьму например http://www.digilentinc.com/Data/Products/P...232_rm_RevB.pdf
то с подключением проблема будет решена?

Да, вполне (если только вы не успели уже спалить ноги LPC сигналами с RS232)

PM MAIL   Вверх
CnApTaK
Дата 10.1.2012, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 9.1.2012

Репутация: нет
Всего: нет



Вобщем дело сдвинулось с мёртвой точки. Детали купить не удалось, ну и ладно. 
Зато был в наличии вот такой вариант.
Скачал/установил драйвер для него. Воткнул в USB и получил виртуальный COM порт, а на пинах rx/tx напряжение 0-5В инвертированное.
Подключил к этим выводам контакты 7,8 и 10 с того разъёма устройства на картинке и после подключения на 9600/8/NONE/1 и посылки
в порт команды "?" получил в ответ "Syncronized" smile я не поверил своим глазам!!!
вобщем чтение флешки оказалось недоступным в силу защиты первого уровня. но запись первый уровень не блокирует. поэтому я обнулил флеш память. smile все 256кб
теперь защиты нет. как нет и загрузчика который мигал диодами и делал из устройства флешку при подключении к усб smile
но меня особо это не смущает. моя цель научиться писать софт под арм, а испытывать его теперь есть на чём smile
спасибо все кто откликнулся. с этой темой разобрались. теперь приступаем к программированию. тут явно будет много вопросов smile в своё время

первый вопрос: в чём лучше писать и чем компилировать?
попробовал Keil uVision4. не понравилось. открываю любой проект для других чипов и собрать его под мой чип уже невозможно.
интерфейс и настройки программы какие-то непонятные и расположено всё неудобно. потом скачал LPCXpresso. другое дело. отличный софт. умный. подсветка синтаксиса.
куча примеров (хотя интересующих меня я так и не нашёл). может где-то есть база примеров побольше? крякнутую версию не нашёл.

как вообще решить на моём чипе казалось бы тривиальную задачку - программа запускается и отслеживает событие поступления информации на допустим UART1 RX и делает эхо на UART2 TX?
сложно ли это сделать и можете ли поделиться примерчиком на эту тему? smile

P.S. есть ещё желание снять защиту на моём устройстве. у меня таких несколько. одно уже лежит без загрузчика и служит моим реальным полигоном испытаний компилированного кода.
но вот на других защита на чтение присутствует.
я сегодня анализировал память. она как бы делаться на 22 блока по 11Кб каждый..
на рабочем устройстве я вижу что заняты первые 4 блока, два следующих блока свободны и потом ещё 13 занятых блоков.
исходя из того, что у меня есть бинарник которым я могу защить новую версию в устройство через программу производителя и он занимает по размеру чуть меньше чем размер 13 блоков,
я предположил что "прошивальщик" производителя заливает эти бинарники как раз в область этих 13 блоков начиная с 7-ого... я сегодня поробовал занулить всё что выше 6-ого блока
после повторного включения устройства оно перестало работать по назначению и запустился загрузчик.
при подключении к компу через усб разъём в компе появляется съёмный диск размером 256кб - 24кб = 232кб.
видимо это часть внутренней флешки отображается.
но на этом диске лежит файлик firmware.bin который весь забит нулями.
тем не менее если закинуть вместо него банарник последней версии от производителя и перезагрузить, то устройство опять работает как надо smile
меня разбирает любопытство. есть какой-то способ определить с какого адреса загрузчик запускает код? чтобы допустим записать туда свой и запустить и уже в коде написать процедуру которая сдампит код загрузчика допустим в оперативку smile ну или выплюнет в ком порт.

или я занимаюсь фигнёй и реально скопировать загрузчик с одного устройства на другое нет никакой возможности?

Это сообщение отредактировал(а) CnApTaK - 11.1.2012, 21:10
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.0503 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.