Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Chettuser

Сообщение Chettuser »

Так это и происходит в том же MPLAB, например. При переполнении стэка. Вылетает чёрт знает куда. Ну... на самом деле по определённому адресу, который "накопился" в стэке.
Иногда шёл на хитрость и писал перед выходом из функции return. Возможно это от компилятора зависит.
Реклама
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Сообщение uk8amk »

jazz393 писал(а):для чего подтягивающие резисторы используются когда порт сконфигурирован на выход(не с открытым коллектором), конкретно регистр PUPDR
Насколько я понял этот момент из RM, PUPDR работает вне зависимости от режима порта за исключением аналоговых функций. Видимо побочный эффект.
И ODR не влияет на PU/PD, это не одно и тоже.
Реклама
Встал на лапы
Сообщения: 118
Зарегистрирован: Ср фев 05, 2014 18:54:39

Сообщение jazz393 »

uk8amk писал(а): Насколько я понял этот момент из RM, PUPDR работает вне зависимости от режима порта за исключением аналоговых функций. Видимо побочный эффект.
И ODR не влияет на PU/PD, это не одно и тоже.
т.е. когда порт работает на выход не важно что записано в этом регистре?
Встал на лапы
Аватара пользователя
Сообщения: 85
Зарегистрирован: Пн ноя 08, 2010 14:07:14
Откуда: Владимирская область

Сообщение Евгений33 »

Добрый вечер! Собственно вопрос, на шине UART (mega162) весят два драйвера max487 и один изолятор ADUM1301. При посылке данных от контроллера на удаленное устройство через 1301 все проходит хорошо, при ответе удаленного устройства на шине RX амплитуда сигнала не падает ниже 2,5 вольт, то есть пачки сигналов проходят, но их амплитуда велика (в посылке отсутствуют нули сигнала) контроллер не получает данные. Как только мы отрываем выходную ногу приемника 1301 от шины RX или отключаем передатчики драйверов 487, путем управления через вывод DE, все работает хорошо. Может что то с нагрузочной способностью 1301? :dont_know:
.....
Реклама
Эиком - электронные компоненты и радиодетали
Держит паяльник хвостом
Сообщения: 963
Зарегистрирован: Чт апр 03, 2014 23:16:55
Откуда: Россия

Сообщение Rtmip »

Может это поможет?
Реклама
Chettuser

Сообщение Chettuser »

Как я понимаю это ненормально для свободно висящего входа АЦП STM32F030?
Изображение

PS: Исправил.
Последний раз редактировалось Chettuser Вт май 12, 2015 06:04:18, всего редактировалось 1 раз.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 26056
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

Chettuser писал(а):Как я понимаю это ненормально
ЧТО ненормально?
Как можно ответить на вопрос без схемы и формы входного сигнала (схемы, а не АЦП)?
Chettuser

Сообщение Chettuser »

Извиняюсь. Вышеприведённая картинка - это снятое с висящего входа без сигнала. Источника внешних помех рядом нет. Как я понимаю это изнутри лезет.
Друг Кота
Аватара пользователя
Сообщения: 26056
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

Вход не может быть "висящим", если Вы смотрите его осциллографом. Он тогда не висящий, а нагружен на входной импеданс осциллографа.
Однако оставлять вход АЦП в высокоомном импедансе - совершенно неверно. Можно получить на входе все что угодно.
Даташит требует от ВЫХОДНОГО сопротивления источника сигнала вполне определенных значений.
Chettuser

Сообщение Chettuser »

Ок, я понял ошибку. Повторю с нагрузкой. Предполагаю что результат не изменится.
Chettuser

Сообщение Chettuser »

Возможно вопрос уже звучал. Чем отличается память для конфгурации FPGA от обычной общедоступной того же типа? Возможна ли замена дорогой памяти для конфигурации на те что "по цене семечек"?
Встал на лапы
Сообщения: 115
Зарегистрирован: Ср дек 12, 2012 20:08:08

Сообщение gessor »

Имеется мелкий вопрос: зачем нужен бутлоадер? ведь сначала нужен программатор чтобы прошить сам бутлоадер, а он же не прошивается по всем ножкам порта. Почему бы не записывать потом программу через технологический разъем так же как это происходит при записи бутлоадера? Или я не понимаю каких-то тонкостей?
Контактная информация:
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Сообщение uk8amk »

Есть много МК которым не нужен программатор чтобы прошить бутлоадер.
А дальше - на что фантазии хватит, прошивайте хоть через интернет соединение.
Друг Кота
Аватара пользователя
Сообщения: 26056
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

gessor писал(а):Или я не понимаю каких-то тонкостей?
Тонкость исключительно простая. Бутлоадер позволяет ОБНОВЛЯТЬ прошивку без программатора. В том числе и дистанционно.
Причем прошивка может оставаться ЗАКРЫТОЙ. Потому что для этого шифруют прошивку, а при загрузке бутлоадер разворачивает ее в загружаемый во флеш код. В современных контроллерах специально сделана иерархическая защита кода, которая препятствует вычитыванию программными средствами загружаемыми в контроллер через загрузчик самого защищенного исполняемого кода...
Встал на лапы
Сообщения: 115
Зарегистрирован: Ср дек 12, 2012 20:08:08

Сообщение gessor »

Тут наверно мои личные придирки всплывают. Типа зачем придумывать сначала способ записи самого бутлоадера, а потом запись программы через бутлоадер, а не использовать просто что-то одно. Чтобы все программы записывались без всяких бутлоадеров например, либо чтобы они изначально были на всех МК :)
Бутлоадер разве что оправдать защитой можно тогда..

А вот такой глупый вопрос еще. Векторная система прерываний под каждое прерывание определяет свой адрес подпрограммы. А возможно такое, что функция обработчика будет такой большой, что залезет в адресное пространство другого обработчика?
Контактная информация:
Chettuser

Сообщение Chettuser »

МК с заводским бутлодырем бывают, STM32, LPC... Но они работают по UART, если не ошибаюсь. У STM32 есть даже специальные выводы BOOT0 и BOOT1.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18811
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

gessor писал(а):А вот такой глупый вопрос еще. Векторная система прерываний под каждое прерывание определяет свой адрес подпрограммы. А возможно такое, что функция обработчика будет такой большой, что залезет в адресное пространство другого обработчика?
вот уж верно - глупый вопрос. вы еще спросите, может ли код одной функции наехать на код другой?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 20132
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

ARV писал(а):
gessor писал(а):А вот такой глупый вопрос еще. Векторная система прерываний под каждое прерывание определяет свой адрес подпрограммы. А возможно такое, что функция обработчика будет такой большой, что залезет в адресное пространство другого обработчика?
вот уж верно - глупый вопрос.
Почему глупый? Вовсе нет. Никто не заставляет вас писать в векторе прерываний именно jmp/rjmp, туда можно засунуть и сам обработчик прерываний. Только надо понимать, что он может залезть на другие вектора. Другое дело, если у вас эти вектора не используются — тогда, как говорится, и пох*й. Или в больших Мегах где под каждый вектор отводится 2 слова (под jmp) можно безболезненно воткнуть что-нибудь коротенькое вроде

Код: Выделить всё

inc R16;
reti;
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Друг Кота
Аватара пользователя
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Сообщение hybroid »

Даже видел такое в каком-то исходнике..
Вот только быдлокод это царский. Но экономятся такты, а такая экономия может кому-то оказаться критичной.
Chettuser писал(а):Но они работают по UART, если не ошибаюсь.
Не ошибаешься. А ещё по USB DFU, по CAN.
Друг Кота
Аватара пользователя
Сообщения: 20132
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Вот есть микросхема памяти I²С, у неё в адресе слэйва 3 бита — это адрес страницы (А2 А1 А0). Какую ячейку памяти она выдаст, если при обращении на чтение и на запись эти биты будут разные?
СпойлерИзображение
Вложения
Безымянный.GIF
(17.26 КБ) 399 скачиваний
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Ответить

Вернуться в «Разные вопросы по МК»