реклама на сайте
подробности

 
 
33 страниц V  « < 16 17 18 19 20 > »   
Closed TopicStart new topic
> STM32 – вопросы – проблемы - решения.
vlad_new
сообщение Aug 16 2011, 20:46
Сообщение #256


Местный
***

Группа: Участник
Сообщений: 218
Регистрация: 24-06-10
Пользователь №: 58 127



Цитата(wedmeed @ Aug 16 2011, 15:29) *
Появилась проблема - пишу для STM32F100, так симулятор вообще ни под каким видом работать не хочет, хоть бабой ягой девайс в таргетах обзови. Увижн 4.2. Что делать?

И вообще, я в даташитах описания толкового не нашел - как получается в реальных камнях так, что они на 0х08000000 перепрыгивают? И зачем? Почему не как обычно - с нуля таблица векторов прерываний, а где-нить вдалеке все бутлоадеры и прочее?

И еще, я правильно понимаю - в железяке процу всегда видно два куска одинаковой памяти - с 0х08000000 и ее отображение начиная с 0х00000000

Тут уже намек был, что надо ставить не 100, а 101 или 103 камень. Сотки KEIL в дебагере не поддерживает.
Хотя STM32F1XXC4T6 любой не поддерживает. Так что всегда ставь STM32F103RET6 - этот точно везде заработает.
Опять же "не поддерживает" - это не совсем верно, поскольку в окне view ( в режиме дебагера ) Sistem viewer появляется вся вся перефирия. Правда родные KEIL-овские гуда приятнее.
Что касаемо запуска, то, таблица векторов устроена так: Первые 4 байта всегда являются адресом стека. Вторые 4 байта адресом запуска.
То что ты видиш в 0 и в 08000000H одно и то же - так и должно быть. Область Flash "подставляется" в 0 адрес или подставляется загрузчик по COM1 (BOOT Loader). Собственно ты и сам уже догадался.
Go to the top of the page
 
+Quote Post
wedmeed
сообщение Aug 16 2011, 20:54
Сообщение #257


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 5-04-11
Из: г.Саратов
Пользователь №: 64 137



scifi и vlad_new огромное спасибо!
STM32F103RET6 - с этим работает)
Go to the top of the page
 
+Quote Post
vlad_new
сообщение Aug 16 2011, 20:55
Сообщение #258


Местный
***

Группа: Участник
Сообщений: 218
Регистрация: 24-06-10
Пользователь №: 58 127



Цитата(wedmeed @ Aug 17 2011, 00:54) *
scifi и vlad_new огромное спасибо!
STM32F103RET6 - с этим работает)

rolleyes.gif
Go to the top of the page
 
+Quote Post
wedmeed
сообщение Aug 26 2011, 07:41
Сообщение #259


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 5-04-11
Из: г.Саратов
Пользователь №: 64 137



Форумчане, еще вопрос.
Во-первых, правильно ли я понимаю - Open-drain режим - это режим подтягивания. То есть к ноге через резистор подтягиваю какое-то напряжение, и при подаче значения 0 эта нога со стороны контроллера висит в воздухе, т.е. выход ноги - это то самое подвешенное напряжение через резистор. При подаче значения 1 на ногу, она коммутируется на землю, и выход ноги - земля. Так ли это?
Во-вторых, никак не могу найти ограничений на подвешиваемое питание. Ноги 5в-совместимые, т.е. до пяти вольт можно вешать спокойно. Но на рисунке в даташите этот режим показан полевыми транзисторами. Т.е. по идее можно повесить и 12в и 24в. Какие на самом деле ограничения?
Ну и к тому же вообще ничего не сказано о максимальном входном токе в этом режиме (в обычных режимах вроде 25мА терпит). Какой брать резистор?
Go to the top of the page
 
+Quote Post
scifi
сообщение Aug 26 2011, 08:29
Сообщение #260


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(wedmeed @ Aug 26 2011, 11:41) *
Во-первых, правильно ли я понимаю - Open-drain режим - это режим подтягивания.

"Режим подтягивания"? Зачем выдумывать свои термины, когда есть общепринятые? Это называется "открытый сток". Это практически то же самое, что и "открытый коллектор" (Open collector).

Цитата(wedmeed @ Aug 26 2011, 11:41) *
и при подаче значения 0 эта нога со стороны контроллера висит в воздухе, т.е. выход ноги - это то самое подвешенное напряжение через резистор. При подаче значения 1 на ногу, она коммутируется на землю, и выход ноги - земля. Так ли это?

Наоборот. "0" коммутирует на землю, "1" - отпускает.

Цитата(wedmeed @ Aug 26 2011, 11:41) *
Т.е. по идее можно повесить и 12в и 24в. Какие на самом деле ограничения?

Ограничения - в даташите. Превышать 5В не положено. На входах стоят стабилитроны для защиты от статики.

Цитата(wedmeed @ Aug 26 2011, 11:41) *
Ну и к тому же вообще ничего не сказано о максимальном входном токе в этом режиме (в обычных режимах вроде 25мА терпит). Какой брать резистор?

Здрассте. Всё сказано. 25 мА на ножку. Внимательнее читайте даташит.
Go to the top of the page
 
+Quote Post
wedmeed
сообщение Aug 26 2011, 09:22
Сообщение #261


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 5-04-11
Из: г.Саратов
Пользователь №: 64 137



Цитата(scifi @ Aug 26 2011, 12:29) *
Превышать 5В не положено.
25 мА на ножку.

Спасибо. Просто надеялся что есть еще на свете халява...
Go to the top of the page
 
+Quote Post
Gambit
сообщение Sep 2 2011, 13:43
Сообщение #262





Группа: Новичок
Сообщений: 5
Регистрация: 16-06-08
Пользователь №: 38 333



Играюсь с ADC и DMA на STM32f103RBT6

Возникла неприятность!
Под отладчиком все работает на ура! Но когда устройство запускается без житага, ни АЦП ни ДМА не желают работать(((
По адресам нули и все...
В чем косяк? Может кто сталкивался! Уже и в дебаге и в релизе компилил, с оптимизацией и без... ничего не помогает(

Вот код инициализации:
CODE

#define ADC1_DR_Address ((uint32_t)0x4001244C)

RCC_ADCCLKConfig(RCC_PCLK2_Div8); // Enable DMA1 clock
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);// Enable ADC1 and TIM1 Periph clock
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);

// Configure ADC Channel14 as analog input
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 ;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOA, &GPIO_InitStructure);

// DMA1 Channel configuration
DMA_InitTypeDef DMA_InitStructure;
DMA_DeInit(DMA1_Channel1);
DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address;
DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)&ADCConvertedValue;
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
DMA_InitStructure.DMA_BufferSize = 1;
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable;
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
DMA_InitStructure.DMA_Priority = DMA_Priority_High;
DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
DMA_Init(DMA1_Channel1, &DMA_InitStructure);
DMA_Cmd(DMA1_Channel1, ENABLE);
// ADC1 configuration
ADC_InitTypeDef ADC_InitStructure;
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_InitStructure.ADC_ScanConvMode = DISABLE;
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfChannel = 1;
ADC_Init(ADC1, &ADC_InitStructure);

ADC1->CR2 |=((uint32_t)0x00800000);
ADC_RegularChannelConfig(ADC1, ADC_Channel_16, 1, ADC_SampleTime_71Cycles5);

ADC_InjectedSequencerLengthConfig(ADC1, 1); // Set injected sequencer length
ADC_InjectedChannelConfig(ADC1, ADC_Channel_2, 1, ADC_SampleTime_55Cycles5); // ADC1 injected channel Configuration
ADC_ExternalTrigInjectedConvConfig(ADC1, ADC_ExternalTrigInjecConv_None); // ADC1 injected external trigger configuration
ADC_AutoInjectedConvCmd(ADC1, ENABLE); // Enable automatic injected conversion start after regular one

ADC_DMACmd(ADC1, ENABLE); // Enable ADC1 DMA
ADC_ExternalTrigConvCmd(ADC1, ENABLE); // Enable ADC1 external trigger
ADC_ITConfig(ADC1, ADC_IT_JEOC, ENABLE); // Enable JEOC interupt
ADC_Cmd(ADC1, ENABLE); // Enable ADC1
ADC_ResetCalibration(ADC1); // Enable ADC1 reset calibaration register
while(ADC_GetResetCalibrationStatus(ADC1)); // Check the end of ADC1 reset calibration register
ADC_StartCalibration(ADC1); // Start ADC1 calibaration
while(ADC_GetCalibrationStatus(ADC1)); // Check the end of ADC1 calibration
ADC_SoftwareStartConvCmd(ADC1, ENABLE); // Start ADC1 conversion

Go to the top of the page
 
+Quote Post
Gambit
сообщение Sep 5 2011, 13:35
Сообщение #263





Группа: Новичок
Сообщений: 5
Регистрация: 16-06-08
Пользователь №: 38 333



Всем спасибо. Нашел косяк)
Go to the top of the page
 
+Quote Post
ViKo
сообщение Sep 5 2011, 19:25
Сообщение #264


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Gambit @ Sep 5 2011, 16:35) *
Всем спасибо. Нашел косяк)

Как вы считаете, а сам "косяк" озвучить в данной теме не будет ли соответствовать хорошим манерам?
Кто-то же вчитывался в ваш код, искал "косяк". Оказывается, всё зря?
Go to the top of the page
 
+Quote Post
Gambit
сообщение Sep 7 2011, 08:27
Сообщение #265





Группа: Новичок
Сообщений: 5
Регистрация: 16-06-08
Пользователь №: 38 333



Будет.
- ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1;
+ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
- ADC_ExternalTrigConvCmd(ADC1, ENABLE);
Go to the top of the page
 
+Quote Post
sagok
сообщение Oct 10 2011, 06:19
Сообщение #266





Группа: Новичок
Сообщений: 1
Регистрация: 13-07-09
Пользователь №: 51 203



Столкнулся с траблом, Eclipse выдаёт :
Warn : Error: start and end sectors must be on a 2 sector boundary
Error: failed setting protection for areas 0 to 4 (-901)

и далее не прошивается STM32F107 через JTAG. Помогите решить проблемку.
Go to the top of the page
 
+Quote Post
StAlexy
сообщение Oct 21 2011, 13:10
Сообщение #267





Группа: Участник
Сообщений: 11
Регистрация: 5-07-11
Пользователь №: 66 069



Здравствуйте, коллеги!

Столкнулся со следующей проблемой:
STM32F107 стоит на плате преобразователя (мостовой инвертор). Через оптроны отвязан от силовой земли. На Viper формирую кучу питаний, в том числе и отдельное-изолированное для микроконтроллера. Для контроллера стабилизатор, куча емкостей (в том числе и около самого процессора - все как надо по даташиту и феншую!!).

Хаотично, фиг знает в зависимости от каких параметров, но он периодически сгорает - коза питание-земля внутри процессора. Питание модуля АЦП остается целым.
Раза четыре сгорал во время работы, один раз сгорел при включении!

Разводка впринципе правильная - старшие товарищи посмотрели.

Может кто сталкивался с таким... Или ваши соображения по данному поводу - в студию!!
Go to the top of the page
 
+Quote Post
Murk
сообщение Oct 22 2011, 01:21
Сообщение #268


Частый гость
**

Группа: Участник
Сообщений: 150
Регистрация: 15-02-06
Из: ЛНР Рубежное
Пользователь №: 14 357



StAlexy Схемку бы глянуть.


--------------------
Политика России будет выглядеть неоднозначной до тех пор, пока не будет решен исход битвы.
Чем больше слёз тем больше облегчения, в слезах и заключается лечение.
Go to the top of the page
 
+Quote Post
Dir
сообщение Oct 22 2011, 08:18
Сообщение #269


Местный
***

Группа: Свой
Сообщений: 201
Регистрация: 6-01-05
Пользователь №: 1 830



Цитата(StAlexy @ Oct 21 2011, 16:10) *
Здравствуйте, коллеги!

Столкнулся со следующей проблемой:
STM32F107 стоит на плате преобразователя (мостовой инвертор). Через оптроны отвязан от силовой земли. На Viper формирую кучу питаний, в том числе и отдельное-изолированное для микроконтроллера. Для контроллера стабилизатор, куча емкостей (в том числе и около самого процессора - все как надо по даташиту и феншую!!).

Хаотично, фиг знает в зависимости от каких параметров, но он периодически сгорает - коза питание-земля внутри процессора. Питание модуля АЦП остается целым.
Раза четыре сгорал во время работы, один раз сгорел при включении!

Разводка впринципе правильная - старшие товарищи посмотрели.

Может кто сталкивался с таким... Или ваши соображения по данному поводу - в студию!!


Флайбэк, очевидно, если куча питаний?
А стабилизация по какому питанию?
Если не по контроллерному, то можно предположить, что проблема в этом. При изменении нагрузки на стабилизированом питании на остальных начинаются переходные процессы и если там потребление в данный момент небольшое, то вполне может быть превышение в несколько раз от номинала. Однонаправленный сапрессор не помешал бы для ограничения максимального уровня.
Ну и, если плата силовая, не нужно забывать о емкостной связи между обмотками . ХЗ как там у вас трансформатор намотан и есть ли экранирующие обмотки. Т.е. через емкостную связь обмоток транса мощные микросекундные импульсы могут пролезть на контроллерную обмотку и далее через стабилизатор и кучу емкостей на МК. Опять таки не помешал бы TVS на выходе контроллерной обмотки (после диода параллельно кондерам) и LC-фильтр после него. Последовательно с L неплохо бы поставить силовой SMD-феррит. Что-то типа BLM18PG471SN1.
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Oct 23 2011, 12:04
Сообщение #270


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(StAlexy @ Oct 21 2011, 15:10) *
Здравствуйте, коллеги!
...
Столкнулся со следующей проблемой:
...
Может кто сталкивался с таким... Или ваши соображения по данному поводу - в студию!!

Как Dir и предложил, на питание процессора - TVS. Если нет под рукой "правильного" TVS для 3.3V питания, отлично поработает Z-диод помощнее (1,3W и выше) где-нибудь на 3,9V, еще лучше (но реже имеются) на 3,6V. Проверено, отлично спасает: иногда сам умирает, но делает КЗ по питанию и глушит на себя регуляторы напряжения, а проц остается целехонек.
Go to the top of the page
 
+Quote Post

33 страниц V  « < 16 17 18 19 20 > » 
Closed TopicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 14:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.01525 секунд с 7
ELECTRONIX ©2004-2016