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

    

Vladimir_T

Свой
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

Информация о Vladimir_T

  • Звание
    Vladimir_T

Посетители профиля

3 065 просмотров профиля
  1. Вот теперь - точно я увяз! То, о чем вы пишете - это отдельный огромный пласт науки и технологий. Работали у нас Специалисты по данному направлению, да только их уже нет, остались лишь огромная библиотека и масса кристаллов для акустооптики.
  2. Эх! Во я вляпался! Эти датчики, как мне пояснили из Мураты только для парковочных систем авто. Извлек из промышленного дальномера DUS-16 датчик, подключил в свою схему и все заработало, как надо! Но этот датчик без маркировки и потому не могу знать его параметров и условий эксплуатации.
  3. Здравствуйте, хочу спросить по диаграмме направленности ультразвукового датчика фирмы Murata MA58MF14-7N. Собрал типовую схему для этого датчика, работает схема нормально. Не нормально только с диаграммой: пока мишень (стальная крашенная крышка корпуса от ПК) находится строго перпендикулярно оси излучения датчика, то эхо сигнал чудесный! Как только мишень под углом более 2-3 градусов, дистанция 6м - эхо пропадает! На датчик установил рупор - угол 15 град, длина 200мм из листового алюминия. В чем может быть дело? Промышленный ультразвуковой дальномер с подобным рупором не чувствителен даже к большим заклонам мишени. MA58MF14-7N.pdf
  4. stm32f407 SPI обнаружил косяк

    Уважаемые коллеги, прочел материалы по данной теме SPI в STM32F4xx, но прежде все "неточности" работы SPI обнаружил у себя на MCU STM32F410. Мастером является STM32F405 , а ведомым STM32F410. На обоих процессорам обмен производится через прерывания. У мастера обмен: прием/передача без ошибок. А ведомый ведет себя так: принимает без ошибок, а вот передает - с ошибками! Но главное, что пока идет прием одного байта, он умудряется несколько раз вызвать прерывание по опустошению буфера TX. Код обработчика простой, инициализация также. Может будут какие-либо мысли - поделитесь со мной, пожалуйста. Идея обмена проста. В фоновом режиме получаем последовательность и в также заполняем буфер передатчика: опустел буфер, взвелся флаг TXE в SPI->SR, вырабатывается прерывание и в буфер передатчика заносим очередное значение. Но когда начинается обмен, то флаг TXE появляется чаще RXNE, хотя они должны следовать один после другого. Потому тестовые счетчики Cnt1 и Cnt2. SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; //Config SPI Protocol SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b; SPI_InitStructure.SPI_NSS = SPI_NSS_Hard; // SPI_InitStructure.SPI_Mode = SPI_Mode_Slave; SPI_InitStructure.SPI_CPOL = SPI_CPOL_High; // High SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge; // SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; // SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2; // 16 SPI_Init(SPI1, &SPI_InitStructure); SPI_Cmd(SPI1, ENABLE); SPI_CalculateCRC(SPI1, DISABLE); SPI_SSOutputCmd(SPI1, DISABLE); Cnt_Tx = Cnt_Rx =0; SPI_I2S_ITConfig(SPI1, SPI_I2S_IT_RXNE, ENABLE); SPI_I2S_ITConfig(SPI1, SPI_I2S_IT_TXE, ENABLE); /***************************************************************************** SPI1_IRQHandler (); ******************************************************************************/ TControl *pCtrl = &Control; u32 Cnt1 =0, Cnt2=0, Cnt3=0; __irq void SPI1_IRQHandler(void) { if (SPI_I2S_GetITStatus(SPI1, SPI_IT_TXE)) { SPI1->DR = *pOut_Buff++; if (++Cnt_Tx == Cnt_Pack) { Cnt_Tx = 0; Cnt1 ++; // For Test pOut_Buff = (u8*)&SPI_USonic_Out; // Init pointer } } if (SPI_I2S_GetITStatus(SPI1, SPI_IT_RXNE)) { *pIn_Buff++ = SPI1->DR; if (++Cnt_Rx == Cnt_Pack) { Cnt_Rx = 0; Cnt2++; // For Test pCtrl-> Link_SPI = True; // Link is Ready pIn_Buff = (u8*)&SPI_USonic_In; // Init pointer } } } // SPI1_IRQHandler ();
  5. Про HardFault

    Спасибо Всем за помощь! Дело было в настройках размеров ОЗУ. Scatter load пытал инициализировать массив, размер которого для 405 был уже предельным, а для 410 совсем запредельный!
  6. Про HardFault

    Здравствуйте, уважаемые программисты, подскажите где мне искать решение? Как написано в описании STM32F410R8 программно абсолютно совместим с STM32F405RGT8, на котором успешно работает проект. Но когда этот же проект из Keil 4.70 загружаю d STM32F410, после запуска процессор улетает на HardFault из Startup. Все проверил карты памяти одинаковы, стеки настроены. В отладчике ловлю-ловлю вижу, что LR = 0xFFFFFFF9, почему так? Может для STM32F410 нужен другой Startup, тогда где его взять?
  7. Вопрос о программировании Flash STM32F405

    Сигнал NRST формируется автоматически из программатора ULink. Огромное вам спасибо! Долго бы еще копался без вашей помощи! Интуитивно я клацал этими флажками, но бессистемно, потому ничего не получалось!
  8. Вопрос о программировании Flash STM32F405

    С сигналом NRST стал процессор программироваться всегда, но отладчик не стартует, дает такое сообщение Keil: Cannot access Memory *** error 57: illegal address (0x08000000) К сожалению у меня в наличии платы, которые были до этого запрограммированы через BootLoader в цехе. Не пойму, что такое с ними произошло, что SWD с этими процессорами не дружит... Был ли у кого-либо опыт программирования поочередно: когда через BootLoader, а когда через SWD?
  9. Вопрос о программировании Flash STM32F405

    Подскажите, пожалуйста, сигнал NRST сброса процессора обязательно нужно задействовать при использовании SWD? Или можно без него, т.е. обойтись минимально возможным количеством сигналов: SWDIO, SWCLK, GND? Вопрос возник из-за того, что часто от Keil имею ошибку доступа в Flash/
  10. Вопрос о программировании Flash STM32F405

    Утилитой STMFlashLoader (ST) снял все защиты: чтение/запись. И все заработало! Спасибо всем за полезные советы!
  11. Вопрос о программировании Flash STM32F405

    Проверил, все выводы настроены по умолчанию, на SWD. SDK Keil, программатор Ulink 2 (фирменный), сообщение при загрузки: ULINK: Flash Timeout.Reset Target and try it again. uVision: Error.Flash DownLoaded Error Подключил программатор JLink 7, тот же самое - не программируется. Пробовал найти на сайте Segger утилиту JFasher, но для JLink 7 не нашел.
  12. Вопрос о программировании Flash STM32F405

    Действительно, этот момент нужно тщательнее просмотреть!
  13. Вопрос о программировании Flash STM32F405

    Здравствуйте, уважаемые коллеги, может кто-либо сталкивался с такой ситуацией. Процессор STM32F405 отлично программируется посредством BootLoader, но мне необходимо сделать доработки в программе и отладку новой версии. Как я не бьюсь, но по SWD не удается запрограммировать FLash, из среды Keil, при ее программировании получаю сообщение: истек таймаут при обращении к Flash-памяти. Никакие ключи для защиты Flash-памяти в BootLoader не устанавливал. Заметил, что когда процессор был чистым, он поддерживал SWD, но стоило один раз запрограммировать его через BootLoader, он перестал программироваться через SWD. Keil процессор на SWD-интерфейсе обнаруживает, но запрограммировать на может из-за таймаута. Такое подозрение, что автоматически установилась защита Flash-памяти, но я не устанавливал защиту. Уважаемые, коллеги, если кто-то знает в чем тут дело, подскажите, пожалуйста. В литературе и мануалах, не нашел ответа на свой вопрос, к сожалению. Заранее благодарен.
  14. Цитата(alex_bface @ Sep 11 2017, 12:38) , мой вам совет - ни когда не меняйте в списке слоёв тип с nc на graphic. Формирование композитов, это не единственная проблема с которой вы столкнётесь в таком случае. По вашему вопросу: Если вы хотите сделать композит из слоёв графики и сверловки, нужно сначала преобразовать нужные слои сверловки в слои графики. Это можно сделать перейдя в режим NC (закладка окна редактора) далее Utilities -> NC data to gerber и создаёте новые гербер-слои из слоёв сверловки. Далее возвращаетесь с САМ режим (закладка окна редактора) и составляете нужный композит Tables -> composites (указываете нужным слоям нужные полярности). Далее можно получившийся композит экспортировать или преобразовать в новый гербер-слой командой Utilities -> composite to gerber и работать с ним как с обычным слоем графики. Ваша ошибка была в изменении типа NC в списке слоёв. Спасибо вам огромнейшее! Не могу сказать, что уже все получилось, но принцип я понял и есть результат. Часто бывает ошибки из-за единиц- вроде устанавливаю всегда идентичные единицы, а САМ не отображает или отображает какую-то часть гербера. Шалит он, видимо!? Жаль что не удалось найти мне книгу по САМ350. Получил нужный мне гербер и фотошаблон для односторонней ПП с центрами в контактных площадках.
  15. Цитата(Mef @ Sep 11 2017, 11:16) Тогда скопируйте сверловку в графический слой и потом с этим слоем делайте композицию. В списке слоев я поменял для слоя сверловки тип с NC Primary в Graphic, после чего в списке для композиции появились все слои, включая сверловку. Но композиция все равно не идет! Я не вижу в композиции сверловкию