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

adnega

Свой
  • Постов

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

  • Посещение

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

    3

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


  1. Где-то есть упоминание (для F4), что между установкой битика включения тактирования блока и работы с блоком должно пройти какое-то время. У меня так FSMC не заработал) Попробую найти это в доках... UPD: STM32F405/407xx and STM32F415/417xx device limitations 2.1.12 Delay after an RCC peripheral clock enabling Description A delay between an RCC peripheral clock enable and the effective peripheral enabling should be taken into account in order to manage the peripheral read/write to registers. This delay depends on the peripheral’s mapping: ● If the peripheral is mapped on AHB: the delay should be equal to 2 AHB cycles. ● If the peripheral is mapped on APB: the delay should be equal to 1 + (AHB/APB prescaler) cycles. Workarounds 1. Use the DSB instruction to stall the Cortex-M CPU pipeline until the instruction is completed. 2. Insert ”n” NOPs between the RCC enable bit write and the peripheral register writes (n = 2 for AHB peripherals, n = 1 + AHB/APB prescaler in case of APB peripherals).
  2. Может, в настройках оптимизации. Попробуйте отключить оптимизацию.
  3. Это во-первых! Во-вторых, может быть нарушение кадра, ошибка четности, переполнение приемного буфера и т.п. Выставил не ту скорость: данные приходят, флаги приема устанавливаются, но и флаги ошибок тоже лучше проверять. Если ТС "нужен учитель" для получения знаний, то к советам стоит прислушаться. Если нужно обсудить почему с гипертерминалом работает, а с чем-то другим не работает, то это немного другой подход.
  4. Рекомендуется сначала опрашивать флаги периферийных устройств (например, приход символа по UART), а только потом оперировать с данными этого периферийного устройства, с последующей операцией очистки флага. Особенно новичкам (которые должны находится в процессе изучения).
  5. Вот примерчик: //--------------------------------------------- // Настройка (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 //********************************************* // КОНЕЦ ФАЙЛА //*********************************************
  6. У ТС по-видимому тоже. От разъема дороги идут к PHY без трансформаторов. Нужна дока на примеренный разъем. Если он в добавок без трансформатора, то вообще не факт, что такое использование допустимо.
  7. Вы уверены в правильности подключения линий RX и TX к разъему (цоколевка верная)? У меня, например, пары подходят по краям (1-2, 7-8 пины).
  8. А инициализация стека? ldi temp, LOW(RAMEND) out SPL, temp Добавить в самом начале.
  9. Но если вовремя этот порт закрыть, то можно добиться "более-менеешней" работы.
  10. STM32F100C6, Keil

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

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

    Я не настаиваю на своей правоте. Наработки я не то чтобы скрываю, просто не афиширую. Было пару случаев, когда ими воспользовались сторонние люди, но ничего кроме реакции "круто, оно работает" ничего не получил. Чтобы довести код до совершенства нужна как минимум соответствующая квалификация: от "молодых" толку мало, а у "старичков" нет времени и желания ковыряться в чужом коде, когда уже есть или свои наработки, или стандартные библиотеки. Имя мне делает не то как я пишу код, а то что готовое изделие работает, обладает соответствующим функционалом, при определенной стоимости и времени разработки. Это с одной стороны. С другой стороны: все люди разные,у каждого свое мировоззрение. Не редко приходилось сталкиваться с разработчиками, более авторитетными чем я, и склонять к своему мнению - хм, не тут-то было. Тряся кодом ничего не докажешь, нужно время чтобы заметить разницу в подходах к программированию в целом. Начинать нужно со студентов. Года два назад помогал с одной разработкой родному ВУЗу - провел несколько семинаров для аспирантов. Приглашали вести курс на постоянной основе, но времени к сожалению нет. По поводу раскрытия: мои реализации USB CDC и HID приведены несколькими постами выше. Ничего оригинального в них нет. Хотя замахнулся на USB HID "свисток" с управлением входами-выходами, показанием температуры, возможностью подключения монето- и купюроприемников, приема ИК-кодов, проигрывания музыки через бузер (по нотам и длительностям), пробрасыванием RS-232, функциями сторожевого таймера, расчета MD5 для выполнения функций взаимной авторизации как ПК, так и USB-устройства (типа аппаратный ключ). Это для платежных систем, музыкальных автоматов. Работает без драйверов, можно втыкать-вытыкать устройство на горячую - демо-ПО все отслеживает и не падает. Вот наработки - вопросов от сообщества пока нет))
  14. Ну, это если через GUI. Я привел пример прошивки через командную строку, что гораздо удобнее для серийной заливки. Если J-Link использовать не принципиально, то могу посоветовать: st-link v2 - используем на производстве для прошивки; versaloon - использую для прошивки-отладки при разработке. Оба инструмента "дружат" с командной строкой.
  15. ему нужен файл с конфигурацией проекта (см. вложение, без расширения 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
  16. Изучение модуля USB

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

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

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

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

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

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

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

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