Программирование STM8

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: Программирование STM8

Сообщение HHIMERA »

PM0054
Programming manual
How to program STM8L and STM8AL Flash program memory
and data EEPROM

3.1 Low density STM8L101x microcontrollers

One block (64 bytes) of option bytes of which 5 bytes are already used to configure
device hardware features. The option bytes can be programmed only in ICP/SWIM
mode
.
"Я не даю готовых решений, я заставляю думать!"(С)
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7357
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: Программирование STM8

Сообщение uldemir »

Это я уже прочитал. Меня интересует как практически, ВЫ, делающие большие проекты на крутых кристаллах СОПРОВОЖДАЕТЕ. Как можно вспомнить, взяв какой старый проект, какие и где эти options bytes были установлены? Как проект опубликовать, чтобы другой человек взяв прошивку и залив в кристалл не орал: "А у меня не работает или неприятно моргает".
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Программирование STM8

Сообщение a5021 »

Мне кажется, что вы все-таким излишне драматизируете. Эти биты конфигурации нужно выставить один раз, чтобы потом вообще не вспоминать о их существовании. Нет смысла привязывать это к ИАРу. Проще воспринимать эту процедуру, как подготовительную. Т.е. берем камень, выставляем опции, а потом уже пишем прогу или льем прошивку.
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7357
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: Программирование STM8

Сообщение uldemir »

Т.е. реально нет никакого механизма, окромя как просто написать на листочке бумаги: ПРОШЕЙ ФЬЮЗЫ! ? Хм, ПИКи в этом гораздо удобнее. Я могу взять проект десятилетней давности, залить в свежекупленный камень и оно будет работать без заморочек. Даже не нужно напрягаться и вспоминать про какую-то конфигурацию. Даже, если среда в которой это проектировалось давно не поддерживается и на новых компах не работает. Но у меня есть простой текстовый hex-файл, который всё сделает, что нужно, если еще есть программатор.

И я не драматизирую. Это реальность. Зайдите в раздел "статьи" и посмотрите на вопросы по статьям. Во всех, где АВР, каждый второй вопрос "как выставить фьюзы?". В статьях про ПИК: "Нужно выставлять фьюзы? - НЕТ".
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Программирование STM8

Сообщение Alexeyslav »

Это вы к тому что при прошивке ПИК-ов компилятор конфигурацию включает в файл с прошивкой. Но это очень жесткий хак полагающий что объем памяти у контроллеров не вырастет больше определенной величины, поэтому более серьезные контроллеры так не делают. По сути, эта "особенность" PIC-ов как петля на шее не дающая развиваться.
Интересно, каким образом конфигурация ложится в файл прошивки для PIC-ов c объемом памяти больше 16К? Еще один костыль используется?
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7357
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: Программирование STM8

Сообщение uldemir »

Думаю, тут холивар pic vs stm разводить не стоит. Тем более, что у stm этот option byte находится прямо в памяти. Его программой даже можно прочитать (в отличии от пиков). Почему бы его не прописать как-то прямо в проекте?
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Программирование STM8

Сообщение a5021 »

Это может оказаться небезопасным. Если программа проведет случайную/некорректную запись в столь ответственную область, то последствия могут оказаться не предсказуемы. ST-Electronics позиционирует линейку stm8, как МК для применения в промышленности и транспорте. Надеюсь не нужно пояснять, что затирание системных областей в контроллере, скажем, манипулятора, перемещающего двухсоттонную заготовку по цеху или автомобиля, мчащегося со скоростью 120км/ч по трассе, вряд ли сулит безболезненный исход ситуации в ста случаях из ста.
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7357
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: Программирование STM8

Сообщение uldemir »

Программа туда записать не может - я вычеркнул этот вариант. Из программы эти ячейки только на чтение. Доступны для записи только через SWIM, и то, только если ROP не установлен. Короче, я понял - этой фичи нет и все считают, что так оно и должно быть.
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Программирование STM8

Сообщение a5021 »

За всех не поручусь, но мне кажется, что один раз провести несложную манипуляцию с новым экземпляром МК не такое уж большое неудобство, чтобы говорить об этом, как о серьезном недостатке. Это, если мы говорим о разработке. При прошивке в серии, программатор одним махом шьет флеш, епром и опции. Это же относится и к повторению любительских конструкции, где в отличие от атмеги не нужно выставлять фьюзы отдельно.
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7357
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: Программирование STM8

Сообщение uldemir »

Ну так в том и вопрос, как это сделать в любительской конструкции? Чтобы запаял кристалл, подключил ST-link или дискавери, нажал кнопку и схема сразу заработала бы?
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Программирование STM8

Сообщение a5021 »

Так прошивку же все равно шить. Вот и включите в нее все, что нужно. В данном случае это будет область OPTION BYTE.
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: Программирование STM8

Сообщение HHIMERA »

Alexeyslav писал(а):при прошивке ПИК-ов компилятор конфигурацию включает в файл с прошивкой. Но это очень жесткий хак полагающий что объем памяти у контроллеров не вырастет больше определенной величины, поэтому более серьезные контроллеры так не делают. По сути, эта "особенность" PIC-ов как петля на шее не дающая развиваться.

Ужос!!! Не дай бог кто поверит в такое!!!
Микрочип сделал всё правильно... изначально... Они понимали что вечного ничего нет... и в новых семействах они передвигали адрес конфигурации... Нет никакого смысла лепить 2М флэша в ПИК16... или кто-то будет спорить???

uldemir писал(а):как это сделать в любительской конструкции? Чтобы запаял кристалл, подключил ST-link или дискавери, нажал кнопку и схема сразу заработала бы?

У вас что-то не заработало???
В вашем случае всё немножко печально... в других STM8 можно опциями даже из проги рулить... насколько помню...
Со временем вы привыкнете... и перестанете печалиться по этому поводу...
"Я не даю готовых решений, я заставляю думать!"(С)
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Программирование STM8

Сообщение a5021 »

HHIMERA писал(а):Нет никакого смысла лепить 2М флэша в ПИК16... или кто-то будет спорить???

Применение можно чему угодно придумать. В том числе и 2мб флеша на мелких контроллерах. Например, набить битмапами для огранизации графического интерфейса или оцифрованными голосом с музычкой. Даже мало окажется. Учитывая ценовые тенденции на рынке флеша, желание производителей МК считать флеш в килобайтах, кроме как жлобством и не назовешь.
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: Программирование STM8

Сообщение HHIMERA »

Фэйк... В местном хлебном ларьке STM32F030K6 дешевле чем STM8S003K3... не говоря о ПИК и АВР... :)))
С 2М флэш история будет та же...
"Я не даю готовых решений, я заставляю думать!"(С)
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Программирование STM8

Сообщение a5021 »

Я и говорю, что ситуация на рынке это целиком заслуга обезьян из маркетинговых отделов.
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7357
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: Программирование STM8

Сообщение uldemir »

Всех с наступившим. Снова нужна помощь в прочтении документации. Напомню, кристалл STM8L101K3
Теперь модуль BEEPER. Почему-то про него совсем ничего толком не написано. Скромненько: один регистр и всё. Зато на пол страницы рассусоливания насчет измерения частоты LSI.

Первое, что не понятно. PCKENR6 включает подачу частоты какой? LSI или Fmaster? По рисунку похоже, что вторую, но хрен его поймёт. Т.е. если хочу использовать внутренний низкочастотный генератор мне нужно делать телодвижения или нет?

Второе. Выход. Нужно ли где сообщать что вывод PA0 теперь будет пищалкой? У stm8S был, вроде, регистр конфигурирования альтернативной функции. А тут не вижу.

Третье. Проблема в том, что этот пин совместим со SWIM. И теперь, когда я сконфигурил PA_DDR0 на выход, я не могу через SWIM достучаться до кристалла. Как быть?

p.s. Наверное, был временный глюк. Перетыкание программатора не помогало, но перезапуск EW позволил залить следующую порцию кода (с включенным PCKENR6) и оно запищало. Ну и как теперь понимать Figure 12 из RM0013? Я ж говорил - у st документация дебильная.
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: Программирование STM8

Сообщение HHIMERA »

Нормальная там документация... у NXP намного хуже, там вобще мозг поначалу снести можно... Но потом привыкаешь... и прыгаешь по доке как так и надо...
Что непонятно то??? Там же всё написано...
8.1.1 Peripheral clock gating (PCG)
Gating the clock to unused peripherals helps reduce power consumption. Peripheral clock
gating (PCG) mode selectively enables or disables the fMASTER clock connection to the
following peripherals at any time in run or slow mode:
● TIM2
● TIM3
● TIM4
● I2C
● SPI
● USART
● AWU/BEEP (except LSI clock controlled by AWUEN bit in the Control/status register
(AWU_CSR) and by BEEPEN bit in the Beep control/status register (BEEP_CSR)) .

except LSI clock controlled by AWUEN bit in the Control/status register
(AWU_CSR) and by BEEPEN bit in the Beep control/status register (BEEP_CSR))
"Я не даю готовых решений, я заставляю думать!"(С)
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7357
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: Программирование STM8

Сообщение uldemir »

Ну, если не трудно, переведите этот фрагмент. Возможно, я здесь не понимаю нюансы языка (микрочиповские доки написаны куда более понятным для не англоязычных читателей языком). Например, я понял, что BEEPEN коммутирует LSI, а PCKEN6 - Fmaster. Но, пока что наблюдаю противоположное. Или это надо читать, что этот бит всё же коммутирует LSI? Тогда почему на fig.12 это не нарисовано?
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: Программирование STM8

Сообщение HHIMERA »

Загляните в Peripheral clock gating register (CLK_PCKENR)...
PCKEN6 контролирует AWU+BEEP... но...
LSI clock controlled by
AWUEN bit in the Control/status register
(AWU_CSR) and BEEPEN bit in the Beep
control/status register (BEEP_CSR))...
Т.е. CLK_PCKENR здесь участвует в качестве связующего звена между AWU+BEEP и остальной периферией... т.к. LSI работает независимо...
"Я не даю готовых решений, я заставляю думать!"(С)
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7357
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: Программирование STM8

Сообщение uldemir »

Но, вот провёл несколько проверок. Без PCKENR6 пищалка не пищит. А так как у меня BEEPDIV и BEEPSEL = 0x02 и этот писк я слышу, то это явно LSI, потому что Fmaster у меня 2 Мгц.

Т.е. получается, что надо читать как: PCKENR контролирует Fmaster, Кроме AWU и BEEP, для которых коммутирует LSI? Если это так, то там круто написано.
Ответить

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