Jump to content

    

vmp

Свой
  • Content Count

    422
  • Joined

  • Last visited

Community Reputation

0 Обычный

About vmp

  • Rank
    Местный
  • Birthday 07/17/1965

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

1879 profile views
  1. Проблема с LPC1768

    Этот же баг обнаружился в LPC1759, SN1566.1 01 ZSD1009-. Версия загрузчика 4.2. Кстати, чтобы собрать всю информацию в одном месте: Если смотреть память процессора через SWD с притянутой к земле P2.10 (запуск загрузчика), то по нулевым адресам видно ПЗУ загрузчика. Если с отпущенной - видно зашитую программу. То же самое происходит при попытке верификации 0 сектора через ISP - возникает ошибка верификации.
  2. Для кортексов-M3: #include <core_cm3.h> ....... NVIC_SystemReset();
  3. LPC2368

    Спасибо. На всякий случай, если кому-то еще понадобится - есть утилита lpc21isp, которая может шить и хексы, и бинарники. http://sourceforge.net/projects/lpc21isp/ Шьет LPC17xx, в исходниках, собирается под линукс и под винды (MS Visual C).
  4. LPC2368

    Подскажите, а есть утилита, которая позволяет шить в LPC17xx не HEX, а binary файл? Разумеется, в режиме командной строки.
  5. Дает. Этот резистор и служит для того, чтобы компьютер смог опознать факт подключения устройства по USB и начал с ним работать. Даже неисправное устройство или со слетевшей прошивкой будет определяться компьютером как "неопознанное устройство". Ваш USB-контроллер PDIUSBD12D самостоятельно работать не может, им должен управлять центральный процессор устройства. Если процессор точно работает, то проверяйте входные цепи и USB-контроллер. http://www.nxp.com/acrobat_download2/expir...PDIUSBD12_9.pdf
  6. Ложка в USB USB во рту Для обнаружения подключенного устройства достаточно резистора в 1.5 кОм от линии данных к питанию. Ну или просто замыкания, как в истории с ложкой.
  7. STM32F10x

    Преимущество - в DMA контроллере STM32, который умеет работать в режиме кольцевого буфера. Поэтому достаточно один раз предвычислить буфер и запрограммировать DMA. Дальше процессор может вообще не отвлекаться. Если речь идет о выдаче синусоиды, то можно например иметь одну фиксированную таблицу синуса и манипулировать только частотой таймера.
  8. У ST это называется Readout protection или read protection. Описано в PM0075 - Programming manual.
  9. О! Поздравляю! Значит действительно серьезная компания. По теме - на мой взгляд стандартный класс предпочтительнее. В этом случае не нужно заниматься написанием и сертификацией в Микрософт собственного драйвера, а можно воспользоваться готовым, встроенным в Windows: Drivers for the Supported USB Device Classes. Исходя из вышеизложенных требований, я бы тоже посоветовал HID. Единственное сомнение - даст ли он требуемую скорость передачи.
  10. Для начала выбейте от руководства серьезной компании $4000 на членство в USB Implementers Forum или хотя бы $2000 на покупку Vendor ID. Рекомендую еще заказать книжки USB System Architecture и USB Complete.
  11. Отключен. Висит внешний pull-up (1 кОм). Ножку через небольшой резистор (27 Ом) корочу на землю и смотрю осциллографом уровень непосредственно на выводе. Когда честный open drive, на ножке уровень около нуля. При выбранном PWM напряжение около 0.5 вольта. То же самое при выключенном OD. Если вместо замыкания работает touch memory, то уровень "нуля" около 1.2 вольта.
  12. Есть LPC1759. Пытаюсь сделать работу с Touch Memory через PWM1. Для вывода использую P1.26 как PWM1.6, для ввода - P1.28 как PCAP1.0. Выводы на плате подключены параллельно. Для P1.26 устанавливаю бит OPEN DRAIN. Проблема следующая - режим OPEN DRAIN не работает, логическая единица на выходе - твердая. Для контроля в отладчике (IAR J-Link в режиме SWD) переключаю пин на вывод GPIO - в этом случае open drain работает как положено, при выводе логической 1 вывод отключен (работает внешняя подтяжка). Кто-нибудь сталкивался с такой ситуацией? Или же Open Drain работает только в режиме GPIO, а не с периферией?
  13. Может быть у gcc что-то в инклюдах про spintf прописано? Попробуйте для контроля обозвать вызываемую функцию по-другому.
  14. Это для защиты памяти при многозадачной работе в общем адресном пространстве. Типа каждой задаче - свой домен, чужие объявляем недоступными. Я бы порекомендовал использовать возможности компилятора: #pragma location="NO_CACHE" unsigned int variable; variable = 1234; // А вот тут без звездочки В файле конфигурации линкера надо объявить секцию NO_CACHE и разместить ее в соответствующих адресах. В этом случае можно будет достаточно просто объявлять множество таких переменных, не занимаясь ручным заданием адресов Кстати, даже первый вариант можно описать в виде: #define variable (*(unsigned int *) (0x2350 0000))
  15. И какие в этом проблемы? В моем примере так и сделано.