Jump to content

    

kostyan1

Участник
  • Content Count

    121
  • Joined

  • Last visited

Posts posted by kostyan1


  1. Подходит время расставлять точки над Ё:

     

    3. Настраиваем таймер на одиночный запуск по спаду на ноге.

    Я правильно понимаю, что надо настроить таймер на режим захвата? Какой то минимальный пример или сцылу на пример бы...

     

  2. спасибо за наводку, буду медитировать это:

     

    Я бы предложил так:

    1. Настраиваем один DMA на передачу 16 байт по событиям от SPI_TX.

    2. Настраиваем другой DMA на прием N*2*16 байт по событиям от SPI_RX в кольцевой буфер с генерацией прерываний при заполнении и полузапонении.

    3. Настраиваем таймер на одиночный запуск по спаду на ноге.

    4. Первый канал совпадения таймера настраиваем на запись через еще один канал DMA числа 16 для NDTR первого DMA (M2M).

    5. Второй канал совпадения таймера настраиваем на запись через еще один канал DMA управляющего слова (регистр CR) для первого DMA для запуска передачи (M2M).

    6. Разрешаем таймер.

    7. Имеем каждые N срабатываний готовности одно прерывание с данными в кольцевом буфере. Пока шаманим с этими данными, заполняется вторая часть кольцевого буфера - никто не потеряется.

  3. Так, "многоходовочка" вроде бы вырисовывается: настраиваем таймер TIM1_CH1 на падающий фронт; таймер генерит запрос на DMA2_Stream6 Channel_0, который настроен на передачу по SPI1 трех нулевых байтов, плюс настроен еще DMA2_Stream3 Channel_3 на чтение из SPI1, которое начинается по записи в передатчик SPI1 первого байта.

    В оконцове цепочки мы прочитаем 3 байта из внешнего АЦП - 24х битное значение и получим прерывание об окончании чтения (если настроим его естественно) . А хотелось бы прочитать кучу значений АЦП в десятки кБ, и только потом получить прерывание какое то об достигнутом. Можно это реализовать?

  4. Народ помогите разобраться! Готовность данных во внешнем АЦП сигнализируется перепадом в ноль на пине. После этого надо прочитать из АЦП 3 байта, и далее ждать следующей оцифровки. Есть какой то механизм в STM32F4 чтобы по перепаду на пине запускать чтение SPI через DMA, не пользуя прерывание?

  5. А нельзя в магазине посмотреть другой экземпляр такой игрушки? Возможно это болезнь именно этого экземпляра - из-за отстутствия какой-нибудь подтяжки или остатков флюса/кофе в клавиатуре он периодически ошибочно ловит нажатие клавиши перелистывания.

     

    +1, поменять в магазине неработающую игрушку...

  6. Допустим, делаю генератор с частотой 5кГц, а получаю 454 Гц и фаза пляшет как хочет (смотрю осциллом).

     

    Изначально указали неправильное значение частоты в 5кГц - это 5000Гц, а не 500Гц как вы хотели, то есть разница на порядок!

    А если разница всего в 6 Гц, то понятно же первым делом поиграться значением периода...

  7. Самое интересное, что подтянул резистором линию DP к плюсу - и о чудо, усб работает: проходит енумерация, данные гоняются в обе стороны. Но кварцы посмотрю, спасибо за версию, запаять могли что нибудь не то, такое бывает.

  8. Народ, помогите решить очередной квэст от стм: есть две платы одинаковые, одинакого прошиты. На одной usb стартует, на другой нет!

    Есть еще дисковери плата для 429 го камня - там usb тоже нормально стартует.

     

    За основу взят код с примера со стандартной либы для vcp. Подтяжка DP к плюсу включается установкой бита FDMOD регистра OTG_FS_GUSBCFG в единицу. Так вот, на "рабочей" плате подтяжка включается и всё собственно работает. На "нерабочей" - подтяжка не включается! Пропай и прозвон от разъема до цпу - проверено. Ноги юзаются HS: PB14, PB15. Поменяли камень - тоже самое. Включал первое включение - сначала питание, потом кабель усб, при этом плата потребляла порядка 130 мА. После прошивки 50-60. Первая плата вроде столько же потребляла после первого включения. Сделал эксперимент, перекинул усб на ноги PA11, PA12, перекомпилил код под эти ноги - подтяжка появилась, плата енумеруется. НО вовремя прочитал тред про ВОЗМУЩАТЬСЯ и про пин РА12! Еррата была у самого рев.6, качнул последнюю рев.8 - ага, черным по белому написано "лучше юзайте PB14, PB15 ноги под усб". Может кто сталкивался, что это такое: выгорает пин при первом включении (плата организованна так, что питание на проц коммутируется пятью вольтами от усб разъема)? Или же какойто бит где то не установлен? Или какойто пин кудато не подтянут?

  9. Внешний HSE.

     

    Вообще ставлю выставление ноги в самом начале SystemInit, но там нуль. Пробовал жэтагом подключиться к работающей плате - подцепляется на каком то несуществующем адресе пзу, при этом стэк переполнен.

  10. Залейте простейшую программу типа мигание светодиодом (без прерываний, таймеров и т.п.). Скорее всего дело не в железе.

     

    заливал main(void) {while(1);} не помогло, осциллятор не стартует!

  11. Народ, подскажите что такое может быть!

     

    Работала плата работала, отдал монтажнику на доработку перекинуть одни пины на другие. И вроде после этого заметил такую неприятность - в дебагере в иаре работает плата, а по включению питания - проц не пускается.

     

    Нашел нечто похожее в ихних инетах: https://my.st.com/public/STe2ecommunities/m...rrentviews=1686

     

    Но там чел пишет, что при замыкании пина NRST на землю у него плата пускалась. У меня не пускается "с толкача". Флэшлоадеры не юзаю, плата програмится jlink-ом через жэтаг. NRST висел в воздухе, сейчас на землю через кондей 0.1 мкФ сделал. BOOT0 и BOOT1 в воздухе. PC13, PC14, PC15 тоже в воздухе. VBAT на +3.3В.

  12. Не обвиняю конкретно вас в кривости рук. Сам вроде не самдурак, но как то подпалил штук 5 lpc1788 при достаточно различных обстоятельствах. С тех пор с процами этой фирмы нини.

  13. я вот подборочку скринов делал, сколько всего нахватал.

     

    Таки почитал тему с глюками lpc - товарищь отписал что кончилось все тем что самдурак руки кривые. Так что возможно проблема в руках.

  14. Однажды столкнулись с непрошиваемостью lpc1788 жэтагом еще на этапе разрабоки - с тех пор сия китайская фирмА для нас не существует.

  15. 2MiklPolikov, фриртос - это операционка с открытым кодом.

     

    Открыл свой проект, нашел в FreeRTOSConfig.h:

    #define configCPU_CLOCK_HZ ( SystemCoreClock )

     

    Сделал поиск по configCPU_CLOCK_HZ в проекте.

     

    Нашел что юзается дефайн в "__weak void vPortSetupTimerInterrupt( void )". Сделал иерархию вызова функции: portBASE_TYPE xPortStartScheduler( void ) <- void vTaskStartScheduler( void )

     

    Следовательно, дефолтные настройки системного таймера применяются ровно один раз в проекте. Если вы хотите менять частоту процессора - то в том же коде перенастаивайте таймер системного тика, и будет вам счастье. Пост писал, гораздо дольше чем залез в код и нашел ответы на ваши вопросы.

  16. Я не думаю, что вам понадобится Жтаг для работы с этой платой. Мне он был реально нужен, когда я из X-loader делал тестовую апликацию и по ексепшену программа подвисала из-за отсутствия обработчика ексепшена. Я использовал Код Композер:

    http://engineering.unt.edu/electrical/site...Studio%20V5.pdf

     

    Обычно если линукс бежит,то можно gdb/ddd использовать.

     

    Пардоньте, думаю тут я! Вы всего контекста видимо не прочитали. Разговор идет как раз не о линуксе, а о посути голом мк без оси.

  17. при загрузке с sd я ничего не дебажу , это уже типа рабочий режим , заливаю готовый image и пользую прибор.

     

    для отладки через jtag приложение загружается прямо в ddr , перед загрузкой исполняется скрипт (для iar это mac , для css это gel) который через тот же jtag инициализирует ddr , клоки и прочее , дальше полный фарш по отладке.

    То есть при отладке eMMC не портится и можно смело запускать из под иара?

  18. линукс не сносил , пока нужды не было , приложение гружу с sd карты (для удобства кнопку с подтяжки sysboot на лицевую панель устройства вывел).

     

    А в таком режиме позволяет дебажить через жэтаг: там точки останова, пошагово и т.п?

  19. конечно интересно , отпишитесь обязательно.

     

    я вот как раз закончил , в первом приближении , с написанием приложения под боню , на все ушло 3 месяца примерно по часу в день. Основа embOS + ucGUI + FatFs. в прилоджении 10 потоков ,из устройств UBS device,touch скрин ,аудио кодес ,rtc, gpio и гирлянда датчиков по i2c. пока все работает стабильно. ни каких особых сложностей по сравнению с традиционными микроконтроллерами не встретилось , ну разве что про кэши нужно было за ранее почитать.

     

    а сырцы с хеловолдом можете куданить выложить embOS + ucGUI + FatFs?