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

Pat

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

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

  • Посещение

Репутация

0 Обычный

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

  • Звание
    Местный
  • День рождения 02.10.1966

Контакты

  • Сайт
    http://
  • ICQ
    0

Информация

  • Город
    Энергодар

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

2 991 просмотр профиля
  1. Код работает только с дебагером

    Тогда нужно искать.Проверьте откуда стартует программа в файле *.icf там же проверьте область векторов прерывания. Далее для проверок нужен свободный вывод микроконтроллера который будет ваши монитором(Можно светодиодом моргать) Его настраиваем как выход и пишем макросы что бы этим выводом можно было дергать.Еще нужен хотя бы осцил или простой логический анализатор тип Saleae Я не знаю какой тип процессора используете но подозреваю что на ядре Cortex-xx. Если так то первое, что нужно проверить это не влетает ли софт в исключения.Устанавливаем наш монитор в исключениях загружаем запускаем смотрит. Далее есть ли фаулты или нет алгоритм отладки примерно такой.Отключаем все модули оставляем один main.Последовательно подключаем модули, мониторим на предмет работоспособности. Где то так, но подозреваю что где то банально память переполняется и прога влетает в хард-фаулт. Часто так бывает под дебагером все работает самостоятельно нет.
  2. Просто интересно А при помощи чего снимают топологию, еще интересно чем растворяют?
  3. Код работает только с дебагером

    А Вы установили в Options->Debugger->Setup->Driver=J-Link/J-Trace ?просто легко можно код в симуляции запустить
  4. Спасибо очень интересно было посмотреть на ваши работы, почитал блог.Впечатлило но...У вас частенько проскальзывают фразы типа Неужели Вы и правда верите что реле == надежность.
  5. Товарищи торговцы в чем прикол вашей цены https://ru.aliexpress.com/store/product/Wav....44c94a5dpLZFeq Подозреваю затраты у вас огромные на драйвера на описание и тд. https://www.waveshare.com/wiki/7.5inch_e-Paper_HAT_(B)
  6. Посматриваю на эти дисплеи, но как то 4 сек. время полного обновления это не есть хорошо. Даже для электронной читалки 4 секунды ждать когда у тебя обновиться страница. Одним словом горячая финская читалка. Есть правда дисплеи у которых поменьше время обновления, но размер вроде как тоже меньше. Кто то использовал такое в серийном изделии?
  7. Цитата(Arlleex @ May 13 2018, 11:06) Я вот реально не понимаю, в чем Ваше недоверие, если это можно так назвать, к прерыванию по ADDR? Много предварительных расчетов данных которые отдаю мастеру. Мастер не терпит растяжку линии SCL и тд. Софтверно все решил. Но хотел убедится что аппаратно не получится, вы и подтвердили мои изыскания. Ладно тему можно закрывать. Спасибо всем за участие.
  8. Цитата(Arlleex @ May 12 2018, 23:02) По какому протоколу? По протоколу I2C? Если так, то ничего он не должен. Хм что то не встречал такого поведения МАСТЕРА на I2C. Обычно СТАРТ СТОП всегда дублируют друг друга. Перечитал еще раз описание I2C кое где есть упоминание что может быть повторный СТАРТ. Ну да ладно пусть будет так, но моя проблема решается только флагом ADDR. Можно так же извратиться с использованием прерываний по EXTI фиксируя СТАРТ. Вот интересно почему в контроллере не реализовали прерывание на СТАРТ в slave.
  9. Цитата(k155la3 @ May 12 2018, 17:49) Наличие установленного мастером NACK на позиции ACK видится слейвом и должно установить флаг прерывания. Это так и происходит, но это мастер читает из слейва. Там все ок и NACK есть и СТОП тоже генерируется. Это чтение из слейва, проблемы при записи в слейв. Как оно работает. Мастеру нужно получить какое то количество байт из слейва. Для этого он пишет в слейв команду (типа отдай данные из регистра в количестве хх байт). По протоколу после этого мастер должен выдать СТОП и потом начать чтение. Но мастер СТОП не генерит, а тихонько поднимает SDA SCL в 1 и выдает повторный СТАРТ. Дальше при чтение все как и положено в последнем байте NACK и СТОП. NACK я отлавливаю в прерывании тут все нормально работает.
  10. Цитата(Arlleex @ May 12 2018, 15:33) В режиме передачи Master не управляет битом подтверждения ACK, а вот Вы, как Slave, его выдаете. Почему Вы NACK выдаете - это Вам надо разобраться. Master тут не при чем, он делает все правильно. Более того, Master в конце чтения последнего байта должен выставить Вам NACK перед выставлением STOP-сигнала. Зачем Вам SB, если у Вас есть замечательное прерывание ADDR? Оно придет после того, как Вы Slave-ом примете свой (или альтернативный, в STM32 их несколько) физический адрес устройства. С подтверждением там все в порядке. Мастер передал последний байт. Слейв ему сказал ACK. Затем мастер делает следующее SCL = 0 SDA = 1 SCL = 1 SDA = 0 - это новый старт без стопа. С чтением как раз все ОК есть и NAK и СТОП. Прерывание ADDR использую, но оно приходит после передачи адреса (запроса чтения). В программе есть обработка данных их нужно успеть приготовить для мастера. Поэтому ищу как понять что мастер окончил передавать. Но получается что аппаратно никак.
  11. Здравствуйте, Уважаемые Друзья. Есть I2C МАСТЕР который передает и принимает данные. У меня реализован I2C подчиненный который принимает и отдает данные. Мастер ведет себя не совсем корректно по отношению к протоколу I2C. Он делает запрос чтения к моему устройству примерно так СТАРТ->АДРЕСС ЗАПИСИ->ДАННЫЕ, а потом при низком SCL переводит SDA в высокий уровень. Затем снова выдет СТАРТ->АДРЕСС ЧТЕНИЕ-> читает данные после чего выдает СТОП. Я по протоколу могу разобрать когда у меня закончится передача данных от мастера, но вопрос как это сделать аппаратно по прерыванию. Вот тут затыка. В режиме I2C слайв не работает прерывание SB (было сгенерированно условие СТАРТ). Есть еще флаг BERR (Bus error) но он не реагирует на что либо после передачи байта. Может кто сталкивался с подобным.
  12. Присоединяюсь к поздравлениям всех радио увлеченных. Когда то на ключе стучал, но уже давненько завязал с КВ.
  13. Смотрите в сторону Qt. Из QtCreator все это легко делается. Бонусом будет нормальная ИДЕ а не этот тормазнутый Еклипс.
  14. Цитата(EvilWrecker @ Mar 29 2018, 23:04) Возможный вариант рабоче-крестьянской либы с резисторами конденсаторами от 0402 до 1210 по ссылке- Спасибо. Правда уже переделал свою, уменьшил элементы, но не сильно все равно пока только ручная пайка светит. Спасибо всем за то что объяснили основные принципы построения посадочных мест под элементы. Не знал что есть проблемы с технологиями. Впрочем и в дальнейшим с моими партиями надобность в сборке на производстве не скоро (от слова вообще) понадобится. Вот другое волнует уже давно от ПИКАДА остается ностальгия. Надо что то другое, но если начать учиться все остальное зависнет, а раз зависнет денег не будет. Поставил Altium но начинать новое в нем страшно можно зависнуть недели на две. Отдельно Baser спасибо за советы. Но есть разночтение между Вами и EvilWrecker в принципов разводки кварца и земель под процессором. Основополагающие моменты двух мнений понятны, но вот к чему придти даже не знаю. Вообще то кто то проводил экскременты в этом направлении или только одна теория?
  15. Друзья, Сенсеи схемотехники и мастера PCB! Вот есть у нас электролит на входе схемы (эта же линия заходит на линейный стабилизатора). Так же электролит на выходе стабилизатора. Куда их ближе ставить? На входе стабилизатора: На входе сразу за разъемом питания (стабилизатор например на другой стороне платы). На выходе стабилизатора: Сразу за выходом стабилизатора или же в крайней точке линии питания. Еще момент на каждый электролит необходимо установить керамический конденсатор. Этот конденсатор устанавливаем непосредственно рядом с электролитом или же можно их разнести?