Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблемы с STM8
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > STM8
Страницы: 1, 2, 3
Stanislav_S
Цитата(sonycman @ Aug 27 2010, 12:29) *
Да, какая ревизия у глючных чипов?

У меня Y, по идее в Z уже должно быть уже исправлено.
Xenia
Цитата(Stanislav_S @ Aug 27 2010, 11:51) *
У меня Y, по идее в Z уже должно быть уже исправлено.

Кончилось место на Z:. Что же мне делать теперь? Ведь это последний. (С) Хайку smile.gif

А следующая ревизия как станет у ST называться, ведь после Z других букв нет, это последняя?
P.S. Кстати, как они успели так быстро до буквы Y добраться? Вроде бы МК совсем еще новый...
Speleoastronom
Цитата(_Bill @ Aug 27 2010, 11:34) *
Подробности см. мое первое сообщение. ST это не документировала, сказала что исправила.


Из ваших первых сообщений непонятно, что именно происходит. Не инкрементируется порт, отображенный на память ?
Не происходит вывод в порт ? Нужна задержка при выводе в порт ?

Вы пишете:

>>IMHO, нужно, чтобы счётчик крутился во внутренней памяти, а наружу выводить копию счётчика.
>И так тоже делал, разницы нет.

Значит, порт совсем не работает ?
Чтобы нам не гадать, сформулируйте, пожалуйста более точно, в чем баг.
gyperios
Цитата(Xenia @ Aug 27 2010, 12:12) *
А следующая ревизия как станет у ST называться, ведь после Z других букв нет, это последняя?
P.S. Кстати, как они успели так быстро до буквы Y добраться? Вроде бы МК совсем еще новый...


Скорее всего Y - первая ревизия, а Z - последняя. laughing.gif
Не считая ревизий до выхода в массовую доступность конечно, те обычно называются A, B и т.д. cranky.gif
sonycman
Цитата(gyperios @ Aug 30 2010, 12:01) *
Скорее всего Y - первая ревизия, а Z - последняя. laughing.gif

Странно как то.
Они что, на 100% уверены, что в Z никаких багов нет?
А если найдутся, следующая ревизия тоже Z будет, или ZA? smile.gif

Или они принципиально в ревизии Z править ничего не будут?
gyperios
Цитата(sonycman @ Aug 30 2010, 12:49) *
А если найдутся, следующая ревизия тоже Z будет, или ZA? smile.gif


К наименованию добавят букву А и выпустят ревизию Y уже этого наименования. Но это маловероятно.
pan_oleg
День добрый.
Проблема с приоритетами прерываний.
Нужно, чтоб прерывание от PORTD срабатывало в прерывание от TIM1_OVF.
Строками

ITC_SetSoftwarePriority(ITC_IRQ_PORTD, ITC_PRIORITYLEVEL_2);
ITC_SetSoftwarePriority(ITC_IRQ_TIM1_OVF, ITC_PRIORITYLEVEL_1);

установить приоритет ITC_IRQ_PORTD выше чем в ITC_IRQ_TIM1_OVF не удается.
Для проверки в TIM1_UPD_OVF_TRG_BRK_IRQHandler сделал while(1);
а в EXTI_PORTD_IRQHandler(void) так и не попадаю.
Компил Cosmic.
Посоветуйте что-то.
Waso
Судя по ERRATA-м (0_о OMG! WTF! сколько там ошибок!) у них ревизии идут в обратном алфавитном порядке (см. таблицу Product evolution) :
1. Z
2. Y
3. X
....


PS Особенно меня забавляет строчка "Not fixed (no fix planned)"
e-serg
немного войну начал, штудирую PDF на stm8s903k3 USART1 какое у него прерывание?
в документах DocID15590 Rev 4 стр 37, DocID15590 Rev 5 стр39.
IRQ17, IRQ18 не описаны, но похоже как раз них должен быть.
На сайте ужасный бардак, STVD "sttoolset.exe" не удалось скачать.
по старым ссылкам на сегодня уже недоступен, по новым его еще нет в продаже. cranky.gif
AndRay599
Цитата(ведущий_специалист @ Jul 19 2010, 21:37) *
Всем спасибо за ответы....Разобрался сам. Надо перед стоп было ставить NACK

А подскажите, пожалуйста, поподробнее...Я тоже в том же месте sm.gif
skef
Недавно взялся за изучение микроконтроллеров STM8.
На данный момент читаю документацию
(programming manual)

там на странице 14 написано:

Global configuration register (CFG_GCR):
The global configuration register is a memory mapped register. It controls the configuration
of the processor. It contains the AL control bit:
● AL: Activation level
If the AL bit is 0 (main), the IRET will cause the context to be retrieved from stack and the
main program will continue after the WFI instruction.
If the AL bit is 1 (interrupt only active), the IRET will cause the CPU to go back to WFI/HALT
mode without restoring the context.
This bit is used to control the low power modes of the MCU. In a very low power application,
the MCU spends most of the time in WFI/HALT mode and is woken up (through interrupts)
at specific moments in order to execute a specific task. Some of these recurring tasks are
short enough to be treated directly in an ISR, rather than going back to the main program. In
this case, by programming the AL bit to 1 before going to low power (by executing WFI/HALT
instruction), the run time/ISR execution is reduced due to the fact that the register context is
not saved/restored each time.

Что я (с помощью переводчика) перевел как:
Глобальный регистр конфигурации.
Расположен в памяти программ. Управляет конфигурацией процессора. Состоит из бита AL.
Когда AL = 0 (основные), возврат из прерывания контекст восстанавливает из стека и продолжает выполнение программы после инструкции WFI.

Когда AL = 1, (только активные прерывания) после команды IRET ЦПУ идет обратно WFI/HALT режим через сохранение контекста.

Этот бит используется для режима энергосбережения ЦПУ. Для очень малопотребляющих приложений, в этом случае MCU проводит большую часть времени в способе WFI/HALT и пробуждается (через перерывы) в определенные моменты, чтобы выполнить определенную задачу. Некоторые из этих возвращающихся задач достаточно короткий, чтобы рассматриваться непосредственно в ISR, вместо того, чтобы возвратиться к главной программе. В этом случае, программируя AL = 1, контекст не будет восстанавливаться, и как следствие, длительность обработчика уменьшится.

В связи с этим вопросы:
1) Для чего используется этот бит (из перевода это не очень ясно)?
2) Что такое ISR?
3) Чем отличается сохранение контекста при AL = 0/1?
4) Связано ли это (и как) с приоритетом прерываний?
_Bill
Цитата(skef @ May 7 2011, 01:55) *
Глобальный регистр конфигурации.
Расположен в памяти программ. Управляет конфигурацией процессора. Состоит из бита AL.
Когда AL = 0 (основные), возврат из прерывания контекст восстанавливает из стека и продолжает выполнение программы после инструкции WFI.

Когда AL = 1, (только активные прерывания) после команды IRET ЦПУ идет обратно WFI/HALT режим через сохранение контекста.

Этот бит используется для режима энергосбережения ЦПУ. Для очень малопотребляющих приложений, в этом случае MCU проводит большую часть времени в способе WFI/HALT и пробуждается (через перерывы) в определенные моменты, чтобы выполнить определенную задачу. Некоторые из этих возвращающихся задач достаточно короткий, чтобы рассматриваться непосредственно в ISR, вместо того, чтобы возвратиться к главной программе. В этом случае, программируя AL = 1, контекст не будет восстанавливаться, и как следствие, длительность обработчика уменьшится.

В связи с этим вопросы:
1) Для чего используется этот бит (из перевода это не очень ясно)?
2) Что такое ISR?
3) Чем отличается сохранение контекста при AL = 0/1?
4) Связано ли это (и как) с приоритетом прерываний?

Ну, ISR (Interrupt Service Routine) - Процедура Обработки Прерываний (ПОП). Обычно в тех случаях, когда требуется уменьшить потребляемую мощность используются инструкции WFI/HALT, после выполнения которых процессор впадает в "спячку". "Разбудить" процессор можно по сигналам прерываний. И обычно после обработки прерывания процессор возвращается к основной программе. Однако если все действия программы выполняются в ПОП, то после завершения ПОП целесообразно вернуть процессор снова в состояние "спячки", а не в основную программу. Для этой цели и используется бит AL. Если процессор после выхода из ПОП снова "засыпает, то сохранение контекста в ПОП становится уже ненужным. О приоритете прерываний в данном случае ничего не говорится, поэтому, на мой взгляд, с приоритетом прерывания это никак не связано. По-моему, так. Или нет?
ReAl
Да вроде так. По крайней мере, я на р.коте ~так же ответил :-)
Dog Pawlowa
Странно, переношу проект с discovery на сделанное железо на STM8S105k6t6c.
Эффект такой-же, больше года назад - порты на вывод не включаются.
Кристаллы новые, и коллеги вроде их используют.
Питание портов на 5V
Что-то тут в консерватории sad.gif

--------------------------------------

Разобрался - RTFM. Забыл принудительно включить верхние транзисторы.
SasaVitebsk
Работаю с одним заказчиком с 2001 года. За это время ни разу не срывал сроки. Это получило и оборотную сторону ... Они стали всё меньше времени выделять на проект + затягивать с изготовлением железа + уменьшать размер вознаграждения ...
На последний проект было выделено неделя ... Микроконтроллер был заложен новый .... перспективный .... короче наслушался я победоносных реляций ... stm8s208s6 ...
Купил дискавери ... собрал простенький (свой) проект на IAR1.3 ... вошёл в отладку ... отладил... успокоился ... отломал дискавери ...
Написал сам проект на 208 ... приступил к отладке ....
Три дня - у меня уже всё в мыле ... проклинаю всё на свете ...
====
Проект компилится ... при попытке входа в отладчик пишет что файл повреждён либо имеет неправильный формат ... Понятно что с файлом всё Ок. В симулятор с этим файлом всё прекрасно входит .... При этом st-link довольно долго мигает и потом загорается светодиод на постоянку ... Если выйти из IAR, то светодиод гаснет.
ST programmer при попытке залить hex файл делает примерно тоже - мигает светодиод... зажигается на постоянку... приложение вываливается без всяких сообщений, как будто я его закрыл ... Такое происходит даже если я просто хочу изменить адреса программирования ...
Для простоты картины собрал минимальный проект где трудно ошибиться ... ~250 байт - всё тоже самое ... Также себя ведёт и ST шный отладчик ...
Сегодня подкину 105 кристал из дискавери, но думаю что с ним всё будет работать ...
====
Грядёт дикая буча ... В пятницу приезжает заказчик из украины (заказчик моего заказчика )))) ). Конечно, мне собственно пофигу, но просто очень неприятно ... это же я посоветовал КРАСИВЫЙ кристалл применить... Понятно что сейчас делают кроссплату по-быстрому либо с stm32 либо с at90can128 - я им на выбор предложил ...
====
Кто что может подсказать ... Особенно меня интересует есть ли люди работавшие с stm8s208 кристаллами. У меня ревизия X.
Могу попробовать отладить без отладчика, хотя будет очень сложно ... Киньте ссылку на загрузчик по COM ...
====
Ещё один момент меня настораживает ... На кристалле имеется генерация на кварце ... Сие мне непонятно ...
Dog Pawlowa
Цитата(SasaVitebsk @ Aug 17 2011, 09:53) *
На кристалле имеется генерация на кварце ...

О, а я так и не запустил генерацию на кварце. Отправил на встроенном генераторе.

Сыровато все для того, чтобы сляпать проект за неделю, ИМХО, тем более не читая документацию, а следуя общей логике.
Взять те же GPIO - после сброса работает только pull-down. Ну не бред ли?

Сообщение об испорченном файле вываливалось и у меня на 105 кристалле. Кристалл должен отлежаться пару минут без питания. Похоже, причина, как в MSP430 с его фальшивыми сообщениями о пережигании защитной перемычки - в каких-то внутренних перезарядах и некорретностях поддержки JTAG.

Ну а в целом по поводу отладки - действительно, родной Дискавери работал более стабильно. Но если добиться перелома в проекте, то отладка особенно и не нужна.

Можно жить. Но лучше бы я STM32 заложил.
SasaVitebsk
Цитата(Dog Pawlowa @ Aug 17 2011, 10:21) *
О, а я так и не запустил генерацию на кварце. Отправил на встроенном генераторе.

Мне конечно должно быть приятно, но только я её не запускал ... Она у меня на чистом кисталле ...
Отсюда и вопрос .... откуда и как она там появилась ....
_Bill
Цитата(Dog Pawlowa @ Jul 18 2011, 20:35) *
Странно, переношу проект с discovery на сделанное железо на STM8S105k6t6c.
Эффект такой-же, больше года назад - порты на вывод не включаются.
Кристаллы новые, и коллеги вроде их используют.
Питание портов на 5V
Что-то тут в консерватории sad.gif

--------------------------------------

Разобрался - RTFM. Забыл принудительно включить верхние транзисторы.
Насчет портов (верхних транзисторов) чуть подробнее можно?
Dog Pawlowa
Цитата(_Bill @ Aug 18 2011, 22:55) *
Насчет портов (верхних транзисторов) чуть подробнее можно?

Конечно!
После сброса они выключены и даже если вывод включить на выход, то это будет выход в режиме в режиме открытого стока.

Код инициализации для портов, работающих на светодиоды, подключенные между выводом и землей:


Код
#define GPIO_PULL_ON(x,y)        P##x##_CR1 |=(u8)y;
#define GPIO_OUTPUT(x, y)        P##x##_DDR |= (u8)y

    GPIO_OUTPUT(C, PIN_LEDS);
    GPIO_PULL_ON(C, PIN_LEDS);


После сброса DDR=0 и CR1=0.
_Bill
Цитата(Dog Pawlowa @ Aug 19 2011, 00:11) *
Конечно!
После сброса они выключены и даже если вывод включить на выход, то это будет выход в режиме в режиме открытого стока.

Код инициализации для портов, работающих на светодиоды, подключенные между выводом и землей:


Код
#define GPIO_PULL_ON(x,y)        P##x##_CR1 |=(u8)y;
#define GPIO_OUTPUT(x, y)        P##x##_DDR |= (u8)y

    GPIO_OUTPUT(C, PIN_LEDS);
    GPIO_PULL_ON(C, PIN_LEDS);


После сброса DDR=0 и CR1=0.
Спасибо! Я это знаю. Просто я думал, что есть нечто особенное, чего я не знаю.
m16
прочитал всю ветку , вспомнился баг с тынькой , я его описал на телесистемах три года назад . итак имеем простой код ногодрыгания:
Код
RESET:            
    ldi    tempA,RAMEND            
    out    spl,tempA

    ldi    tempA,0xff
    out    ddrd,tempA
    out    ddrb,tempA
    out    ddra,tempA

uuu:
    ldi    tempA,0xff
    out    porta,tempA
    out    portd,tempA
    out    portb,tempA


    ldi    tempA,0
    out    porta,tempA
    out    portd,tempA
    out    portb,tempA

    rjmp    uuu


заливаем его в TINY2313 , смотрим осцилом - на ногах пусто . заливаю этот же код в 90S2313 - как положено на всех портах меандр. после танцев с бубном тынька заработала после введения задержек

Код
RESET:            
    ldi    tempA,RAMEND            
    out    spl,tempA

    ldi    tempA,0xff
    out    ddrd,tempA
    out    ddrb,tempA
    out    ddra,tempA

uuu:
    ldi    tempA,0xff
    out    porta,tempA
    out    portd,tempA
    out    portb,tempA

nop
nop
nop
nop
nop
nop
nop
nop

    ldi    tempA,0
    out    porta,tempA
    out    portd,tempA
    out    portb,tempA

nop
nop
nop
nop
nop
nop
nop
nop

    rjmp    uuu


после задержки между сменой состояний от 8тактов тынька начинает дрыгать ногами. тоже самое с Tiny13/25/45/85. с мегами такой траблы нет.
через PINx тыньки дрыгают нормально .

Bill , Вы не пробовали менять состояние порта с задержкой?
_Bill
Цитата(m16 @ Dec 9 2011, 11:24) *
прочитал всю ветку , вспомнился баг с тынькой , я его описал на телесистемах три года назад .

Bill , Вы не пробовали менять состояние порта с задержкой?
Нет, не пробовал. Надо будет попробовать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.