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

STM32 – вопросы – проблемы - решения.

Также в PCM MAster с теми же настройками, sysclk=72mhz и I2SPR=ODD|140 Fs~=16кгц, а должно быть 8 судя по формуле в refman

When the master clock is disabled (MCKOE bit cleared):

Fs = I2SxCLK / [(16*2)*((2*I2SDIV)+ODD))] when the channel frame is 16-bit wide

Ну и bitrate=256кгц

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Господа. Скажите, почему в st-link utility при прошивке или записи битов конфигурации нужно нажимать reset? По идее st-link сам должен это делать. Или нога (у st-link) отгорела??? Где-то здесь я уже подобную проблему читал, т.е. проблема такая уже была, но не нашел ее решения. МК stm32f107vct6. До этого уже работал со 103 из iar, проблем не было. Хотя иногда при определенной конфигурации микроконтроллера все равно приходилось сбрасывать вручную. Может и такого тоже не должно было быть. Таким он был с момента покупки, к сожалению сравнить не с чем.

 

P.S. Попробовал 107 в иаре. Прошилось влет. Значит дело в st-link utility. Может как-нибудь настроить ее можно?

Изменено пользователем ZyBEX

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Отбой - нашел ошибку: есть одна короткая фраза в мануале, которую я не увидел сразу:

For write and erase operations on the Flash memory (write/erase), the internal RC oscillator

(HSI) must be ON

 

Вопрос такой: теперь не удается работать (стирать/писать) во внутреннюю флеш.

При записи улетаю в BusFault, при стирании - вообще проц. умирает: отладчик IAR (с ST-LINK) зависает.

Вот пример кода записи слова:

static void Write(WORD32 Flash_Addr, WORD16 val)

{

FLASH_KEYR = UNLOCK_KEY1; // Разблокируем контроллер.

FLASH_KEYR = UNLOCK_KEY2;

if((FLASH_CR & (1 << LOCK)) == 0)

{

FLASH_CR() |= (1 << PG);

*(WORD16 *)Flash_Addr = val; // Пишем - вот здесь возникает BusFault

while((FLASH_SR & (1 << BSY)) != 0); // Ждем готовности.

FLASH_CR() &= ~(1 << PG);

FLASH_CR |= (1 << LOCK);

}

}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

у меня и с включенным HSI и при записи в флеш через openocd проц умирал на всегда. с ST-link такого правда быть не должно по идее

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Точно умирает? Reset сразу после начала прошивки вручную нажимать пробовали. Интересно, что (у меня) команда стирания выполнялась сама, а запись требовала жать резет, иначе происходила потеря контроллера.

 

И все-таки вопрос про st-link utility: у кого-нибудь были аномалии при работе с ней, и как побеждали?

Изменено пользователем ZyBEX

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Точно умирает?

точно. даже после убирания питания, закорачивания всех ног на землю и ожидания 10 минут, jtag отвечает на команды, но дальше дело не идет, проц не видится дебаггером(jlink в том числе) и жрет раза в 2 больше тока,чем когда работает. уже 2 таких камня лежит

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите пожалуйста. где взять под OrCad библиотеки с STM32. Конкретно интересует чтоб был STM32F100C4 (довольно новый МК).

Конкретно интересует условное графическое обозначение и посадочное место для ПП.

 

Изменено пользователем wedmeed

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите пожалуйста. где взять под OrCad библиотеки с STM32. Конкретно интересует чтоб был STM32F100C4 (довольно новый МК).

Конкретно интересует условное графическое обозначение и посадочное место для ПП.

 

На сайте STm не смотрели ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На сайте STm не смотрели ?

Смотрел, но нашел только даташиты, а хотелось бы сэкономить время.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите пожалуйста. где взять под OrCad библиотеки с STM32. Конкретно интересует чтоб был STM32F100C4 (довольно новый МК).

Конкретно интересует условное графическое обозначение и посадочное место для ПП.

Если понравится, берите то, что я нарисовал:

stm32f100c4.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите пожалуйста. где взять под OrCad библиотеки с STM32. Конкретно интересует чтоб был STM32F100C4 (довольно новый МК).

Конкретно интересует условное графическое обозначение и посадочное место для ПП.

а отрисовать? займет же минут 20 ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Столкнулся с интересной особенностью защиты от чтения в STM32F10xx.

 

Хочется отвести в конце флеша участок, который хранил бы информацию о версиях прошивок устройства, настройках, пр.

 

Но при этом была возможность перепрограммирования через штатный бутлоадер.

 

Пытаюсь это сделать с помощью flash loader demonstrator.

Так вот, если поставить защиту от чтения- ее нельзя , получается, поставить на конкретные страницы флешь, только на всю целиком!

Хотя у каждой страницы есть свой флажок защиты от чтения... :(

И, соответственно, нельзя перешить процессор, не стерев всю память целиком, не тронув область , содержащую настройки.

 

Выходом из этого является чтение настроек перед прошивкой, потом записью их после прошивки.

 

Может, есть какой-то другой способ, который я проглядел? ( кроме написания собственного бутлоадера :) )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если понравится, берите то, что я нарисовал:

 

Спасибо, то что надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ещё один вопрос по тому же STM32F100. Нужен ли ему для асинхронного режима трансмитер RS-232? Или просто настроить PA9 и PA10 на альтернативную функцию и подключиться к компу?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ещё один вопрос по тому же STM32F100. Нужен ли ему для асинхронного режима трансмитер RS-232? Или просто настроить PA9 и PA10 на альтернативную функцию и подключиться к компу?

Скорее, это вопрос по уровням сигналов RS-232. Если лень ставить полноценный трансивер RS-232, нужен как минимум инвертор. Так как уровни логического "0" и "1" у микроконтроллера равны 0 и Vcc, а у RS-232 - +5..+12В и -5..-12В (замечаете инверсию?). Не говоря уже о том, что высокое напряжение с компьютера (+/-5В как минимум) может повредить МК.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...