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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1148
Зарегистрирован: Вт авг 17, 2010 11:58:06
Откуда: Казань

Сообщение den2 »

[uquote="korob",url="/forum/viewtopic.php?p=3490664#p3490664"]
den2 писал(а):переключив его на работу через МАХ232.
:facepalm:
Нужны уровни TTL, т.е. напрямую с CP2102 без задействования МАХ232 (преобразователя уровней TTL<==>RS232). :wink:[/uquote]
Пробовал и так.На другом преобразователе,построенном на том же чипе 2102 с размахом уровня в 3.3 В.Результат тот же.
С контактов Rx/Tx 12С5608 идут импульсы размахом в 5 В.Если использовать МАХ,то тоже выходят уровни размахом 5-6 В. Но толку тоже при этом ноль.
программа как висела на ожидании Id так и весит.
Отсюда и вопрос.Может кроме Rx/Tx нужно ещё что-то чтобы заработало считывание.

Добавлено after 3 minutes 14 seconds:
[uquote="Albert_V",url="/forum/viewtopic.php?p=3490677#p3490677"]
den2 писал(а):... имеется несколько грузовзвешивающих устройств.И парочка из них глючит.Хотелось бы попробовать считать ,если получится прошивку...
Смысл?
Вам действительно проще найти ошибку в реассемблированном чужом коде (это ещё если получится считать прошивку) чем написать программу "с нуля"?
"Глючить" может не только из за ошибок в программе. Возможны ошибки в схемотехнике, в трассировке платы, в монтаже изделия... В общем - ошибки в аппаратной части...[/uquote]

Из трёх принесённых изделий,удалось восстановить только одно.
На остальных как скакали показания массы без подключённых тензодатчиков,так и скачут.А должен стоят ноль.
И тут либо контроллер чудит,либо преобразователь напряжения с тензо в SPI.
Написать я при всём желании не смогу.Нет навыков в программировании.

Добавлено after 2 minutes 16 seconds:
Вот сия фигня http://liftsale.ru/ustrojstvo-gvu-ukp-4--ptl-1/
Реклама
Друг Кота
Аватара пользователя
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Сообщение Albert_V »

Так бы сразу и сказали что вы ремонтируете технику, а не создаёте своё изделие.
Стесняюсь спросить: Датчики для систем связанных с жизнеобеспечением, нынче, ремонтируют с помощью ответов на форумах?
Если у вас нет аттестации и документации от разработчиков - пока чего плохого не произошло, бросьте эту тему.
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1148
Зарегистрирован: Вт авг 17, 2010 11:58:06
Откуда: Казань

Сообщение den2 »

Не знаю.Я простой ремонтник.В программную часть не лезу.
Сейчас аттестация не факт что даст доступ к схемам.А тем более ПО (хотя бы самой прошивке).По крайней мере в провинции.
Друг Кота
Аватара пользователя
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Сообщение Albert_V »

Без обид:
СпойлерИзображение
Реклама
Эиком - электронные компоненты и радиодетали
Chettuser

Сообщение Chettuser »

Припоминаю, что в каком то документе STM (STM32) (кажется это был RM) в приложениях были приведены примеры настройки модулей. Сейчас в упор не найду, и не могу вспомнить где их видел. Может кто подскажет?
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

В RM для F0 , L0 есть ...
Реклама
Друг Кота
Аватара пользователя
Сообщения: 12364
Зарегистрирован: Пт дек 17, 2010 15:07:50
Откуда: Крымский Федеральный Округ

Сообщение просто КОТ »

Доброго вечера, друзья. Имею странный баг на камне STM32F103. Никак не могу взвести I2C на нужных мне выводах, хотя на соседних всё работает. Может кто делал уже, или знает куда глянуть? Буду рад любому совету/наводке: https://radiokot.ru/forum/viewtopic.php?f=59&t=158774 :beer:
Изображение
И ты врёшь!!! © Vladisman
Изображение
Контактная информация:
Родился
Сообщения: 19
Зарегистрирован: Ср авг 17, 2016 05:33:15

Сообщение seregaviper »

Приветствую. Помогите пожалуйста разобраться. Есть микроконтроллер MC9S08QE32-44. Прочитал с него дамп памяти в формате .s19 при помощи программатора USBDM и программы USBDM_4_12_1_240. хочу разобраться нормальный дамп или нет. Чтобы проверить дамп нужен новый МК, но он пока еще в пути и ехать будет долго. А результат нормальности дампа нужно знать как можно скорее. Для проверки есть другой прошитый МК MC9S08QE32-44, но с другой прошивкой которую нельзя потерять. Я сделал дамп и второго МК и хочу проверить дамп с первого МК на на втором МК, но боюсь угробить его прошивку. Т. к. я новичок с МК могу упустить некоторые нюансы. Подумал поковырять полученный дамп и покурить референс мануал к МК. Нашел карту памяти МК:

клац DataSheet
СпойлерИзображение
Видно что область памяти с адресов с 0x0000 - 0x007F и 0x1800 - 0x187F задействована под регистры. Стал смотреть дальше на регистры МК и нашел регистр защиты FOPT (п. 4.6 стр. 62). Там написано что защита вкл или выкл комбинацией двух битов SEC01:SEC00 :
СпойлерИзображение
и находится он по адресу 0х1821:
СпойлерИзображение
дальше стал смотреть сам дамп памяти:
СпойлерИзображение
Получается что в строке по адресу 1820 записаны регистры последовательно из 2-х шестнадцатеричных чисел и получается, что в регистре FOPT по адресу 0х1821 есть запись 42, что если перевести в двоичный вид получим 0100 0010 и последние два бита как раз SEC01:SEC00. Из таблицы получаем, что защита отключена. Правильно пришел к выводу или что-то я не учел. Стоит ли на свой страх и риск проверить дамп на втором МК?
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18682
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

seregaviper писал(а):получаем, что защита отключена
я ничего не понял в ваших рассуждениях, но обращаю ваше внимание на логическое противоречие в них: если защита ВКЛЮЧЕНА, то корректный дамп вы снять по поределению не можете. если вы рассмариваете содержимое, то по определению не должны сомневаться в том, что дамп корректный, т.е. должны быть уверены, что защита отключена.

я не знаю всех вариантов, но маловероятно, что защищенный чип выдает дамп, содержащий поддающийся даже минимальному осмслению. AVR, например, выдает последовательность байт 0-1-2-3-4-и т.д., другие МК выдают все 00 или FF.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Сообщение Ser60 »

[uquote="seregaviper",url="/forum/viewtopic.php?p=3512037#p3512037"]Правильно пришел к выводу или что-то я не учел?[/uquote]
Не учли, что после ресета содержимое регистра FOPT по адресу 0x1821 копируется из энерго-независимой ячейки памяти NVOPT по адресу 0xFFBF. Там и следует смотреть.
Родился
Сообщения: 19
Зарегистрирован: Ср авг 17, 2016 05:33:15

Сообщение seregaviper »

[uquote="ARV",url="/forum/viewtopic.php?p=3512371#p3512371"]я не знаю всех вариантов, но маловероятно, что защищенный чип выдает дамп[/uquote]
Так я тоже не знаю, может защищены какие нибудь части флеша...


[uquote="Ser60",url="/forum/viewtopic.php?p=3512479#p3512479"]копируется из энерго-независимой ячейки памяти NVOPT по адресу 0xFFBF.[/uquote]

Там написано 7E => 0111 1110 последние 2 бита относятся к SEC01:SEC00:
СпойлерИзображение
Изображение
Из таблицы значит не защищена.

А нужно указывать область RAM когда делаешь дамп?
Друг Кота
Аватара пользователя
Сообщения: 25430
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

А в чем проблема попытаться прочесть сам флеш?
Система команд известна, можно бегло посмотреть осмысленность кода, не вдаваясь в детали.
Друг Кота
Аватара пользователя
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Сообщение Ser60 »

Область RAM при дампе указывать не нужно, т.к.она заполняется осмысленным содержимым только во время работы МК. Это-же относится и к остальным регистрам в верхней и нижней страницах. По адресу 0xFFBF записано 0xFE, но сути это не меняет - FLASH не защищена. Reset Handler у вас находится по адресу 0xFC01 и оттуда можно начинать анализ работы устройства. В любом случае дампировать следует только энерго-независимые области памяти, в данном сучае только FLASH.
Родился
Сообщения: 19
Зарегистрирован: Ср авг 17, 2016 05:33:15

Сообщение seregaviper »

Испытал дамп и все удачно прошилось и вернулось обратно и работает. Спасибо за помощь. Есть только небольшое но, область памяти ответственная за тримирование (адреса 0xFFAE и 0xFFAF) после считывания с прошитого мной МК не такая же как у считанной оригинальной прошивки. Ставил галку "Do trim" в HCS08 Programmer, значения менялись, но не смог добиться исходных значений как в исходной прошивке... Но вроде всё работает и так... не знаю на сколько это критично...
Грызет канифоль
Аватара пользователя
Сообщения: 288
Зарегистрирован: Пт янв 17, 2014 22:48:20
Откуда: Екатеринбург

Сообщение Salk »

Добрый день, не знал куда обратится, напишу сюда. Изучаю камень STM32f030k6 на keil 5. Так вот там есть 10 полноценных 12-бит АЦП. А еще у каждого пина есть режим GPIO ANALOG INPUT, вроде бы при выборе данного режима эта ножка должна цепляться к АЦП какого-то канала , но как это сделать помимо инициализации и как считывать с него аналоговые значения не знаю. Можете подсказать куда копать? Спасибо.

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

/*Configure GPIO pin : PB3 */
  GPIO_InitStruct.Pin = GPIO_PIN_3;
  GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

Salk писал(а):Добрый день, не знал куда обратится, напишу сюда. Изучаю камень STM32f030k6
http://radiokot.ru/forum/viewforum.php?f=59
Salk писал(а):как это сделать помимо инициализации и как считывать с него аналоговые значения
АЦП настроили?
Друг Кота
Аватара пользователя
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Сообщение Ser60 »

seregaviper - значения TRIM копируются по сбросу МК в регистры FFAE-FFAF из области IFR (Flash Information Row), куда они прожигаются на заводе. Эти значения записываются в IFR индивидуально для каждого экземпляра МК. Область IRF недоступна для чтения/записи дебаггерам. Короче, это нормально, что они разные на разных чипах и обращать внимание на это не стоит.
Друг Кота
Аватара пользователя
Сообщения: 25430
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

[uquote="Salk",url="/forum/viewtopic.php?p=3522415#p3522415"]Так вот там есть 10 полноценных 12-бит АЦП.[/uquote]Там ОДИН АЦП с входным мультиплексором. Для работы с 10 входами нужно ПОСЛЕДОВАТЕЛЬНО переключать эти входы и запускать преобразования на каждое направление. Одновременное преобразование даже по двум входам невозможно. Невозможен даже одновременный захват сигнала, потому что там и УВХ тоже один.
Грызет канифоль
Аватара пользователя
Сообщения: 288
Зарегистрирован: Пт янв 17, 2014 22:48:20
Откуда: Екатеринбург

Сообщение Salk »

Мурик Да, конечно.
КРАМ А, теперь понятно что за значения

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

sConfig.Channel = ADC_CHANNEL_6;
  sConfig.Rank = ADC_RANK_CHANNEL_NUMBER;
, это выбор канала и порядок их опроса. Просто CubeMX во вкладке АЦП предлагает настроить только 10 АЦП (IN0-IN9), а в файле adc.h есть следующие

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

/**
  * @brief Configure the channel number into channel selection register
  * @param _CHANNEL_ ADC Channel
  * @retval None
  *//* This function converts ADC channels from numbers (see defgroup ADC_channels) 
   to bitfields, to get the equivalence of CMSIS channels:
        ADC_CHANNEL_0           ((uint32_t) ADC_CHSELR_CHSEL0)
        ADC_CHANNEL_1           ((uint32_t) ADC_CHSELR_CHSEL1)
        ADC_CHANNEL_2           ((uint32_t) ADC_CHSELR_CHSEL2)
        ADC_CHANNEL_3           ((uint32_t) ADC_CHSELR_CHSEL3)
        ADC_CHANNEL_4           ((uint32_t) ADC_CHSELR_CHSEL4)
        ADC_CHANNEL_5           ((uint32_t) ADC_CHSELR_CHSEL5)
        ADC_CHANNEL_6           ((uint32_t) ADC_CHSELR_CHSEL6)
        ADC_CHANNEL_7           ((uint32_t) ADC_CHSELR_CHSEL7)
        ADC_CHANNEL_8           ((uint32_t) ADC_CHSELR_CHSEL8)
        ADC_CHANNEL_9           ((uint32_t) ADC_CHSELR_CHSEL9)
        ADC_CHANNEL_10          ((uint32_t) ADC_CHSELR_CHSEL10)
        ADC_CHANNEL_11          ((uint32_t) ADC_CHSELR_CHSEL11)
        ADC_CHANNEL_12          ((uint32_t) ADC_CHSELR_CHSEL12)
        ADC_CHANNEL_13          ((uint32_t) ADC_CHSELR_CHSEL13)
        ADC_CHANNEL_14          ((uint32_t) ADC_CHSELR_CHSEL14)
        ADC_CHANNEL_15          ((uint32_t) ADC_CHSELR_CHSEL15)
        ADC_CHANNEL_16          ((uint32_t) ADC_CHSELR_CHSEL16)
        ADC_CHANNEL_17          ((uint32_t) ADC_CHSELR_CHSEL17)
        ADC_CHANNEL_18          ((uint32_t) ADC_CHSELR_CHSEL18)
*/
Уже 19 каналов. Первые 10 соответствуют IN0-IN9, а как работать с остальными? Нужно ли ноги настраивать в режиме Analog Input?
СпойлерИзображение
СпойлерИзображение
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

Salk писал(а):в файле adc.h есть следующие
В STM32f030 с большим числом выводов, больше каналов АЦП.
Ответить

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