Перейти к содержанию
    

adnega

Свой
  • Постов

    3 603
  • Зарегистрирован

  • Посещение

  • Победитель дней

    3

Весь контент adnega


  1. Рекомендуется сначала опрашивать флаги периферийных устройств (например, приход символа по UART), а только потом оперировать с данными этого периферийного устройства, с последующей операцией очистки флага. Особенно новичкам (которые должны находится в процессе изучения).
  2. Вот примерчик: //--------------------------------------------- // Настройка (HIGH = 0xF9, LOW = 0x7A): // Fclk = 9.6 MHz // BOD = 4.3 V //--------------------------------------------- .include "tn13def.inc" //********************************************* // Константы //********************************************* .equ TO_PULSE = 50 ; Стартовый импульс, мс .equ pulse = PB2 ; Выход OUT_PULSE //********************************************* // Регистры //********************************************* .def temp = r16 //********************************************* // Сегмент кода //********************************************* .org 0 rjmp RESET RESET: // Настройка стека ldi temp, LOW(RAMEND) out SPL, temp // Настройка ввода-вывода ldi temp, (1<<pulse) out DDRB, temp // Настройка аналгового кмпаратора ldi temp, (0<<ACD)|(0<<ACBG) out ACSR, temp // Стартовый импульс sbi PORTB, pulse ldi temp, TO_PULSE rcall delay_ms MAINLOOP: // Подать ток sbi PORTB, pulse rcall delay // Ждать сработки компаратора wait_ac: sbic ACSR, ACO rjmp wait_ac // Отключить ток cbi PORTB, pulse rcall delay rcall delay rcall delay rjmp MAINLOOP //********************************************* // БИБЛИОТЕКИ и ФУНКЦИИ //********************************************* //--------------------------------------------- // Задержка ms //--------------------------------------------- // Формирует задержку в temp мс. //--------------------------------------------- delay_ms: push temp delay_ms_1: push temp ldi temp,148 delay_ms_2: push temp ldi temp,20 delay_ms_3: dec temp brne delay_ms_3 pop temp dec temp brne delay_ms_2 pop temp dec temp brne delay_ms_1 pop temp ret //--------------------------------------------- // Задержка тактирования //--------------------------------------------- delay: ldi temp,9 delay_1: dec temp brne delay_1 ret //********************************************* // КОНЕЦ ФАЙЛА //*********************************************
  3. У ТС по-видимому тоже. От разъема дороги идут к PHY без трансформаторов. Нужна дока на примеренный разъем. Если он в добавок без трансформатора, то вообще не факт, что такое использование допустимо.
  4. Вы уверены в правильности подключения линий RX и TX к разъему (цоколевка верная)? У меня, например, пары подходят по краям (1-2, 7-8 пины).
  5. А инициализация стека? ldi temp, LOW(RAMEND) out SPL, temp Добавить в самом начале.
  6. Но если вовремя этот порт закрыть, то можно добиться "более-менеешней" работы.
  7. STM32F100C6, Keil

    Речевой информатор на этом же камне: проигрывание wav-файлов с uSD-карт. Поддержка SD, SDHC, FAT16, FAT32, MBR/PBR, фрагментация файлов. Управление с UART-консоли. Написано на C, компилятор GCC, занимает 9712 байт FLASH при -Os оптимизации. Правда, библиотеки не используются. Так что 16кБ это довольно много))
  8. eZ430 Chronos

    Вроде, есть толстая книжка по Windows. Но не думаю, что ради этого стоит глубоко вникать)) Я подобную проблему нашел на одном из зарубежных форумов - мол, в inf от TI есть ошибка. Поправил ради эксперимента inf как посчитал нужным (интуитивно), и все заработало.
  9. Несмотря на то, что я тоже обвешиваю SWD и JTAG резисторами, не определяться устройство может и при софтовом отключении функции SWD и JTAG. Выводы должны быть настроены соответствующим образом, правильное значение должно быть записано в AFIO->MAPR. Причем мы помним, что писать так "AFIO->MAPR |= (что-то)" туда нельзя!
  10. Изучение модуля USB

    Я не настаиваю на своей правоте. Наработки я не то чтобы скрываю, просто не афиширую. Было пару случаев, когда ими воспользовались сторонние люди, но ничего кроме реакции "круто, оно работает" ничего не получил. Чтобы довести код до совершенства нужна как минимум соответствующая квалификация: от "молодых" толку мало, а у "старичков" нет времени и желания ковыряться в чужом коде, когда уже есть или свои наработки, или стандартные библиотеки. Имя мне делает не то как я пишу код, а то что готовое изделие работает, обладает соответствующим функционалом, при определенной стоимости и времени разработки. Это с одной стороны. С другой стороны: все люди разные,у каждого свое мировоззрение. Не редко приходилось сталкиваться с разработчиками, более авторитетными чем я, и склонять к своему мнению - хм, не тут-то было. Тряся кодом ничего не докажешь, нужно время чтобы заметить разницу в подходах к программированию в целом. Начинать нужно со студентов. Года два назад помогал с одной разработкой родному ВУЗу - провел несколько семинаров для аспирантов. Приглашали вести курс на постоянной основе, но времени к сожалению нет. По поводу раскрытия: мои реализации USB CDC и HID приведены несколькими постами выше. Ничего оригинального в них нет. Хотя замахнулся на USB HID "свисток" с управлением входами-выходами, показанием температуры, возможностью подключения монето- и купюроприемников, приема ИК-кодов, проигрывания музыки через бузер (по нотам и длительностям), пробрасыванием RS-232, функциями сторожевого таймера, расчета MD5 для выполнения функций взаимной авторизации как ПК, так и USB-устройства (типа аппаратный ключ). Это для платежных систем, музыкальных автоматов. Работает без драйверов, можно втыкать-вытыкать устройство на горячую - демо-ПО все отслеживает и не падает. Вот наработки - вопросов от сообщества пока нет))
  11. Ну, это если через GUI. Я привел пример прошивки через командную строку, что гораздо удобнее для серийной заливки. Если J-Link использовать не принципиально, то могу посоветовать: st-link v2 - используем на производстве для прошивки; versaloon - использую для прошивки-отладки при разработке. Оба инструмента "дружат" с командной строкой.
  12. ему нужен файл с конфигурацией проекта (см. вложение, без расширения txt). Это кроме лицензии или лекарства от жадности. flash: $(MAIN_OUT_BIN) "C:\Program Files\SEGGER\JLinkARM_V415f\JFlashARM.exe" -openprjdefault.jflash -open$(MAIN_OUT_BIN),0x08000000 -auto -startapp -exit Default.jflash.txt
  13. Изучение модуля USB

    Тут все просто: я коммерческая организация, это не увеличит мои доходы, скорее наоборот... Опытом делюсь с удовольствием, а наработками... увы)) Да, и продуктом это назвать сложно. Опять же нет хорошей документации (кроме описаний doxygen). Скорее, конструктор, позволяющий за 1-3 дня поднимать средней тяжести проект, с дальнейшей недельной отладкой. При наличии 100+ реализованных более-менее схожих проектов любой разработчик может придти к такому решению (а не продукту). Главное решится "изобретать свой велосипед".
  14. Изучение модуля USB

    Я пользуюсь продукцией STM32F практически с самого ее рождения. Было время, когда STLib распространялась в виде либы и заголовочных файлов к ней (т.е. исходников не было или я их не нашел). Так вот в этой либе была ошибка, которая не позволяла использовать внешний кварц на 12МГц, а было фиксированное значение 8МГц (или я не нашел как это побороть). В это время мне не осталось ничего другого как начать писать свою собственную библиотеку. Несколько раз менял ее идеологию, в итоге пришел к заголовочному файлу со всеми регистрами и битами в периферии + комплект из .c и .h фалов для выполнения той или иной задачи (терминал на основе UART, ИК-приемник кодов, EMAC-уровень для Ethernet и т.п.) Переносимость и поддержка только в своем окружении разработчиков, в сообществах поддержка нулевая)) Ибо задачу ставил сделать надежно-работающее изделие в условиях минимизации ресурсов МК. Т.е. в одни и те же ресурсы "впихнуть" как можно больше функционала.
  15. Изучение модуля USB

    Первое впечатление обманчиво. Если поставить себе цель использовать STLib, то со временем черт получается не таким страшным как его принято малевать. С учетом нынешних объемов памяти и мегагерцев использование такого универсального средства как STLib в некоторых случаях можно оправдать. В своих проектах я ее не использую. Один раз на работе для достаточно нетривиального контроллера ради эксперимента решил попробовать - вроде работает и все довольны, и сопровождаемость возросла, и с камня на камень легко прыгнули (с F103 на F107), и FreeRTOS с uIP легко запустились. Просто не надо думать, что использование этой библиотеки освобождает Вас от чтения документации)) Скорее наоборот: библиотека, примеры от ST и документация дополняют друг друга. Повторюсь, сам эту библиотеку не использую, но без нее и примеров при запуске некоторых блоков (например, Ethernet с кучей магических констант) сидел бы над документацией и плевался ооочень долго. Мой диагноз: библиотеке быть! И хорошо, что она такая "плохая" - тем меньше соблазн ее использовать))
  16. ОЗУ процессор не трогает. Периферийные регистры будут в значении "после сброса" (описаны в документации). Странный вопрос, поскольку до вызова main() состояние ОЗУ должно измениться для инициализированных данных и обнулиться для неинициализированных. Все остальное мусор. Может затереться стеком в любой момент.
  17. eZ430 Chronos

    Есть такое)) Нужно поправить inf-файл. Менял VID и PID оборудования и путь к usbser.sys Попробуйте файл из вложения (поменять расширение на inf). У меня WIN7-64. usb_cdc_driver_cc1111.txt
  18. Изучение модуля USB

    Для старта. Может поможет. В исходниках много отладочной информации касательно работы USB. Правда, все для STM32F103. Но с минимальными "допиливаниями" (инициализация GPIO, NVIC) должно работать и на STM32F4. usb_cdc_complex.zip usb_hid_template.zip stm32f103t4.txt
  19. Изучение модуля USB

    Предлагается изучение библиотеки оставить для самостоятельной работы, а на форуме начать озвучивать конкретные вопросы. Что именно не получается? Дело в том, что изучение библиотеки это не такой уж легкий путь с учетом сопровождающей ее документации. Описаны параметры функции, возвращаемый результат, но это и так в большинстве случаев понятно. Как строится логика работы с библиотекой нигде (по крайне мере я) не встречал. Можно подглядеть в примерах, но это лишь частный случай... Возможно, Вам будет легче плюнуть на эту библиотеку, разобраться с регистрами и написать что-то свое. Я пока так не поступил, тратил очень много времени. Отказавшись от ST-библиотеки, поднял свой USB-стек за несколько дней. Итого: библиотеки рабочие, документация на любителя, реф.мануал читать по-любому придется, конкретные вопросы приветствуются)
  20. Изучение модуля USB

    Для использования USB в своих проектах документации хватает (Reference Manual). Для изучения USB конечно же не хватит. Нужны спецификации USB классов (я использовал только HID и CDC) + книжка по самому USB (часть вопросов снял труд Агурова). Модуль USB в STM32 мягко говоря "нетривиальный")) Например, чтобы установить какое-нить значение бита в регистре нужно его считать и если значение устраивает, то записать в эту позицию "0", а если нужно изменить на противоположенное - то "1". Где-то так...
  21. Изучение модуля USB

    Примеры для STM32F4DISCOVERY запускались без каких-либо проблем. Например, обновление прошивки с USB-флешки. Или проигрывание wav-файла с USB-флеш. Пробовал модифицировать, добавил управление громкостью с акселерометра. Не заработал только цифровой микрофон (видимо связано с использованием плавучки, которое на тот момент было не актуально - поэтому дальше не копал). У Вас собственное железо или используете указанную выше отладочную плату? PS. Дальше запуска примеров не разбирался с комплектом поставки (либы), поскольку не сторонник "чужих велосипедов", а изобретаю потихоньку свои)
  22. Вот только ощущение такое складывается, что при этом "дергается" нога RESET. И если по каким-то причинам, потенциал на ней не упадет до нуля, сброса не произойдет...
  23. Преобразование при такой разрядности занимает время порядка секунды (750мс). Вполне можно нарваться на пограничное значение, что преобразование еще не закончилось, а результат уже считывается. Попробуйте увеличить задержку до 10 секунд - опрашивать этот датчик все равно часто не нужно, поскольку будет саморазогрев. Ну, и тайминги слотов проверить - может не правильно различаются "0" и "1". Кстати, CRC совпадает?
×
×
  • Создать...