Easyelectronics.ru

Электроника для всех
Текущее время: 27 май 2018, 01:06

Часовой пояс: UTC + 5 часов



    • JLCPCB - Платы прототипов всего за 2$ c бесплатной доставкой (при первом заказе)
    • 10 PCBs за $2 для 2 слоев, $15 для 4 слойной, $74 для 6 слойной платы.
    • Крупнейший китайский производитель прототипных плат. 290000+ клиентов & 8000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин радиодеталей.

Начать новую тему Ответить на тему  [ Сообщений: 22 ] 
Автор Сообщение
 Заголовок сообщения: STM8 SWIM
СообщениеДобавлено: 10 янв 2011, 20:05 
Старожил

Зарегистрирован: 06 фев 2010, 17:22
Сообщения: 1557
Откуда: Иркутск
Хочу сделать себе программатор для STM8. Да, я знаю, есть Discovery, но я так развлекаюсь:)

Вобщем застрял с активацией SWIM. Из STM8 SWIM communication protocol and debug module:
Цитата:
1. To make the SWIM active, the SWIM pin must be forced low during a period of 16 μs
(which is 64 pulses minimum at the frequency of HSI).
2. After this first pulse at 0, the SWIM detects a specific sequence to guarantee robustness in the SWIM active state entry. The SWIM entry sequence is: 4 pulses at 1 kHz followed by 4 pulses at 2 kHz. The frequency ratio is detected and allows SWIM entry. The ratio can be easily detected whatever the internal RC frequency. The waveform of the entry sequence is shown in Figure 5. Note that the sequence starts and ends with the SWIM pin at 1.
3. After the entry sequence, the SWIM enters in SWIM active state, and the HSI oscillator is automatically turned ON.
4. After this delay, the SWIM sends a synchronization frame to the host.
Synchronization frame description: A synchronization frame of 128 x HSI clock periods with the SWIM line at 0 is sent out by the MCU device to allow for the measurement of the RC by the debug host. An advanced debug host can re-calibrate its clock to adapt to the frequency of Internal RC.
5. Before starting a SWIM communication, the SWIM line must be released at 1 to guarantee that the SWIM is ready for communication (at least 300 ns).
6. Write 0A0h in the SWIM_CSR: - setting bit 5 allows the whole memory range and SRST command to be accessed. - setting bit 7 masks the internal reset sources
7. Release reset which starts the option byte loading sequence. Wait 1 ms for stabilization.
8. Once option byte loading has occurred and stabilization time is reached, the CPU is in phase 8:
- STM8S is stalled and HSI = 16 Mhz (see STM8S datasheets for % accuracy) - SWIM clock is at HSI/2 = 8 Mhz - SWIM is active in low speed bit format (see Section 3.3.2)

Первые два этапа - понятно. А вот какая задержка на после третьего этапа? Ни в описании, ни на картинке не указана.
Дальше шестой этап, это значит мы шлем WOTF, т.е. пишем в регистр, скорость передачи скорей всего низкая.
Про ACKN не понятно, ждать их или нет? Вобщем это больше риторические вопросы:)
Если у кого есть возможность, снимите осциллограмму с Discovery? В момент, когда он инициализирует SWIM.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 SWIM
СообщениеДобавлено: 10 янв 2011, 20:16 
Старожил
Аватара пользователя

Зарегистрирован: 03 сен 2010, 22:46
Сообщения: 5423
Откуда: Москва
Ответ на первый вопрос в четвертом пункте.

Осциллограмму сниму, но только поздно вечером, не раньше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 SWIM
СообщениеДобавлено: 10 янв 2011, 20:21 
Старожил
Аватара пользователя

Зарегистрирован: 03 сен 2010, 22:46
Сообщения: 5423
Откуда: Москва
Ответ на второй вопрос в восьмом пункте. Частота SWIM - 64/(длительность кадра синхронизации).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 SWIM
СообщениеДобавлено: 10 янв 2011, 21:18 
Старожил

Зарегистрирован: 06 фев 2010, 17:22
Сообщения: 1557
Откуда: Иркутск
Хм, наверно я еще не обладаю достаточным навыком чтения документации:) Не нахожу ответы...
Сначала 64мс SWIM в низком уровне, потом четыре импульса по 1кГц, следом 4 импульса потом SWIM переходит в высокий уровень и сколько-то ждем(шаг 3), а потом приходят 128 импульсов синхронизации.

А про запись в регистр - это скорей всего обычная WOTF и подтверждения после команды/данных наверное нужно ждать. Ну, я так понял. Пока мне подтверждения не приходят:) Скорей всего что-то не так делаю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 SWIM
СообщениеДобавлено: 11 янв 2011, 13:40 
Старожил
Аватара пользователя

Зарегистрирован: 03 сен 2010, 22:46
Сообщения: 5423
Откуда: Москва
Это да, пока не обладаешь.

Сначала SWIM в низком уровне минимум 16 МИКРОсекунд (а не 64 миллисекунды). Потом вверх.

Потом передается стартовая последовательность: 4 импульса вниз на 1 килогерце, сразу после 4 имульса вниз на 2 килогерцах. Потом опять вверх.

После этого МК стартует SWIM, начиная со старта своего HSI. Мы, естественно, ждем, переключившись на ввод.

Когда SWIM на МK благополучно стартует, он передает нам кадр синхронизации (просто придавив линию вниз) длиной 128 тактов HSI, то есть 64 такта SWIM. Ок, устанавливаем у себя частоту 64/(разница между фронтами). Это будет 8 мегагерц, скорее всего.

После этого кадра линия должна быть наверху минимум 300 наносекунд, это значит, что SWIM готов к приему.

Переключаемся на вывод. Пишем 0A0h в SWIM_CSR.

Отпускаем reset. Ждем 1 миллисекунду. За это время стартует все остальное.

Работаем.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 SWIM
СообщениеДобавлено: 11 янв 2011, 17:36 
Старожил

Зарегистрирован: 06 фев 2010, 17:22
Сообщения: 1557
Откуда: Иркутск
Ой, про 64мс - это я вчера конечно же бред написал:)
Меня больше всего смущало
Цитата:
4. After this delay
. Я все равно не понял, что это за задержка. В смысле просто ждем кадра синхронизации?
Про кадр синхронизации понятно, не вчитался, думал что это 128 импульсов:)

Спасибо за разъяснения, сейчас буду пробовать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 SWIM
СообщениеДобавлено: 11 янв 2011, 21:06 
Старожил
Аватара пользователя

Зарегистрирован: 03 сен 2010, 22:46
Сообщения: 5423
Откуда: Москва
Это задержка на старт и стабилизацию HSI. Очень небольшая, микросекунды скорее всего.

И да, надо ждать кадра синхронизации, и по правилам именно по его длительности устанавливать частоту SWIM. Она, в принципе может плавать в пределах допусков HSI, и зависит от текущей температуры, а также от конкретного камня. Чаще, конечно, просто выставляют 8 мегагерц, и не парятся, тем более что HSI в STM8 работает довольно стабильно (в отличие от иксмеги, к примеру).

Все это нужно потому, что SWIM асинхронный, в отличие от PDI, SWD и многих других двунаправленных отладочных интерфейсов, и работает вообще по одному проводу (остальные часто иcпользуют для тактирования линию Reset или отдельную линию). Соответственно, нужно чтобы бодрейт со стороны хоста и МК был одинаковый, хотя бы в общем приближении.

Блин, надо предложить STM свои услуги по написанию техдоков :)) А если серьезно, то документацию надо читать внимательно. И учить язык, если затруднения с языком.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 SWIM
СообщениеДобавлено: 12 янв 2011, 08:34 
Старожил

Зарегистрирован: 06 фев 2010, 17:22
Сообщения: 1557
Откуда: Иркутск
HSI - это же судя по всему внутренняя RC цепочка(раз internal)? Тогда понятно, зачем синхронизация. Но у меня дома не +85, так что, я думаю, частота сильно не уплывет. Пропущу синхронизацию:)
С языком у меня проблем нет. Немного с предметной областью и внимательностью.
С внимательностью даже много:)
Еще оказалось, что я немного ошибся в распиновке, когда компонент своего контролера для Eagle рисовал. Так что SWIM у меня и не должен был завестись:)
Переделаю - продлжу ковыряться.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 SWIM
СообщениеДобавлено: 12 янв 2011, 13:31 
Старожил
Аватара пользователя

Зарегистрирован: 03 сен 2010, 22:46
Сообщения: 5423
Откуда: Москва
Да, это внутренняя RC цепочка. У этих МК она не плавает сильно, поэтому даже родные ST-Link, насколько я понял, передают и принимают просто на 8 мегагерцах. В протоколе несколько перезаложено.

Сам протокол, кстати, очень хорош. Занята всего одна нога, скорость обмена 8 мегабод, доступ к памяти и периферийным регистрам без остановки ядра (фактически, возможна трассировка), и так далее. Можно построить очень мощное отладочное средство.

Если заработает, сможешь провести несколько экспериментов?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 SWIM
СообщениеДобавлено: 12 янв 2011, 16:25 
Старожил

Зарегистрирован: 06 фев 2010, 17:22
Сообщения: 1557
Откуда: Иркутск
akatenev писал(а):
Да, это внутренняя RC цепочка. У этих МК она не плавает сильно, поэтому даже родные ST-Link, насколько я понял, передают и принимают просто на 8 мегагерцах. В протоколе несколько перезаложено.

Сам протокол, кстати, очень хорош. Занята всего одна нога, скорость обмена 8 мегабод, доступ к памяти и периферийным регистрам без остановки ядра (фактически, возможна трассировка), и так далее. Можно построить очень мощное отладочное средство.

Если заработает, сможешь провести несколько экспериментов?

Если заработает - то конечно смогу:) Сегодня уже собрал новую платку, завтра буду с ней играться.
По результатам отпишусь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 SWIM
СообщениеДобавлено: 16 фев 2011, 17:27 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 15 фев 2011, 22:21
Сообщения: 199
Отличный сабж!!! Я собственно тоже думал свой заколбасить. А что освещаться широким кругам будет ли разработака? Нужны ли коллеги типа? Инфа, например осциллограмма тут будет?
Вообще я сначала думал, а что если SWIM "раскрутить" через RS-232, может получится сверхпростое шитьё??? Как думаете? Ну по сути диаграмму можно заложить программным образом в передачу от компа к чипу и наоборот дешифрировать ответ. Тогда вопрос выбора и согласования скоростей сторон. Вопрос по согласованию сторон типа MAX232 опускается... принцип то покатит? Как думаете?
Вот мне бы платку напрокат или удаленного тестера согласного пробовать/смотреть, я бы прогу под винды сваял точно. Вслепую купить STM8.... и его мучать, как то глупо, да и не вчитался, не чувствуется он еще мной.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 SWIM
СообщениеДобавлено: 16 фев 2011, 22:06 
Старожил

Зарегистрирован: 06 фев 2010, 17:22
Сообщения: 1557
Откуда: Иркутск
Ну, вобще именно так программаторы и работают. Посылают нужную последовательность сигналов - принимают и расшифровывают последовательность сигналов:)
Я пока остановился на инициализации, она у меня заработала, но вот пока не удалось сделать unlock памяти посылкой нужной команды. Похоже не то что-то шлю. Но, потом мне пришел долгожданный осциллограф и спутал все мои планы. Я начал вовсю играться с аналоговой электроникой, давно уже хотел:)
Правда уже почти наигрался, и скоро планирую снова вернуться к программатору.

У меня основной затык был в самом начале, на инициализации. Но тут спасибо akatenev, все достаточно подробно разъяснил.
Дальше уже проще пойдет.
В слепую тоже вполне нормально делается. Кстати, COM-port мне кажется уже не сильно актуален. STM8-Discovery стоит копейки, купить да не мучаться. Я то этим так, для развлечения занимаюсь, так что Discovery из принципа не куплю:)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 SWIM
СообщениеДобавлено: 17 фев 2011, 01:37 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 15 фев 2011, 22:21
Сообщения: 199
iv_s писал(а):
Я пока остановился на инициализации, она у меня заработала

как это можно увидеть почувствовать? Я понял ты по укороченному принципу пошёл базируясь отладиться на Low speed и как то пропускаешь
фрейм синхронизации? Или ты его не пропускаешь, а просто сразу ставишь "1" на пин RESET после "specific sequence" т.к. по его окончании на Figure 5 указано, что "SWIM Active"? Я правильно понял?
iv_s писал(а):
пока не удалось сделать unlock памяти посылкой нужной команды
Это какой такой команды? Там же типа их всего 3шт. сброс, читать, писать и все. Нет?
iv_s писал(а):
Кстати, COM-port мне кажется уже не сильно актуален.

Ну уметь\мочь прошивать "проводками" STMы в полевых, вынужденных, стартовых, ремонтно-выездных условиях при помощи COM, USB-COM выглядит заманчиво для меня и думаю для многих, многих других, получись оно таковым по сути. Вероятность очень мала наверное, но кажется имеет право на попробовать. Обнадеживает слово синхронизация и этот самый LOW... Другой вариант вертится переколбасить AVRtiny в некий, скажем AvrSWIM шильщик :), пусть AVRные наработки послужат мне и другим делу переползания и дешевого освоения энтих самых STMов.
iv_s писал(а):
STM8-Discovery стоит копейки, купить да не мучаться. Я то этим так, для развлечения занимаюсь

Так то оно так, только никто не сказал, что его можно в дальнейшем будет использовать, скажем под STM32 и далее поколения, а то купите ребятки под восьмерочку, а затем вот эту штучку под это поколение...., затем во это.... и так далее. Это просто бизнесок неплохой и посадка на короткий поводок публику... Имхо.
Ну типа тоже с моей стороны развлекаюсь мозгом пока ), кажется несложным и это типа заводит, а почему бы и нет, говоришь сам себе.
А кто нить скажет про USB нюансы ST LinkА скажем? Я имею ввиду какой драйвер под него идет, как он в винде регится виден в оборудовании? Скажем как виртуальный COM порт? Нет? Каковы его USBID, Class, SubClass, дескрипторы как выглядят скажем если потрейсить с помошью USBTrace "разговор" STLink и среды, допустим STVD? Или ссылку, доку кто где ЭТО видел, читал. Буду весьма признателен.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 SWIM
СообщениеДобавлено: 17 фев 2011, 01:48 
Старожил

Зарегистрирован: 06 фев 2010, 17:22
Сообщения: 1557
Откуда: Иркутск
Я отлавливал синхропоследовательность, затем слал 0x0A0 в SWIM_CSR, ACK не получал(хотя должна быть, видать на этом месте у меня и есть ошибка).
Затем, чтобы получить доступ к FLASH нужно записать 0x56 и 0xAE in FLASH_PUKR. Писал, но ACK все равно не получал.
Где-то там ошибка. Вот теперь у меня есть осциллограф и могу в живую посмотреть, что там шлется:)
Как руки дойдут - озадачусь.

Подробнее про Unlocking MASS смотри тут(раздел 4): http://www.st.com/stonline/products/lit ... /14614.pdf


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 SWIM
СообщениеДобавлено: 31 май 2011, 08:51 
Здравствуйте!

Зарегистрирован: 31 май 2011, 08:47
Сообщения: 1
iv_s писал(а):
Я отлавливал синхропоследовательность, затем слал 0x0A0 в SWIM_CSR, ACK не получал(хотя должна быть, видать на этом месте у меня и есть ошибка).
Затем, чтобы получить доступ к FLASH нужно записать 0x56 и 0xAE in FLASH_PUKR. Писал, но ACK все равно не получал.
Где-то там ошибка. Вот теперь у меня есть осциллограф и могу в живую посмотреть, что там шлется:)
Как руки дойдут - озадачусь.

Подробнее про Unlocking MASS смотри тут(раздел 4): http://www.st.com/stonline/products/lit ... /14614.pdf


Здравствуйте!

Тоже занимаюсь программатором для stm8 и столкнулся с аналогичной проблемой с ack при записи SWIM_CSR. Притом стабильно ack не приходит при передачи второго байта адреса.

Удалось ли решить эту проблему? Если да, то поделитесь опытом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 SWIM
СообщениеДобавлено: 29 окт 2013, 17:48 
Заглядывает иногда

Зарегистрирован: 03 дек 2012, 17:12
Сообщения: 127
Доброго времени суток!

Может знает кто есть ли для СТМ-ов программатор промышленный?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 SWIM
СообщениеДобавлено: 30 окт 2013, 00:25 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 11:56
Сообщения: 2666
Откуда: Винница
Да вот первый попавшийся: http://www.phyton.ru/pages/page93.html
А точно нужен?

_________________
Китайская комплектация - европейское качество!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 SWIM
СообщениеДобавлено: 30 окт 2013, 20:11 
Заглядывает иногда

Зарегистрирован: 02 дек 2011, 01:12
Сообщения: 57
AnatolTz писал(а):
iv_s писал(а):
Я отлавливал синхропоследовательность, затем слал 0x0A0 в SWIM_CSR, ACK не получал(хотя должна быть, видать на этом месте у меня и есть ошибка).
Затем, чтобы получить доступ к FLASH нужно записать 0x56 и 0xAE in FLASH_PUKR. Писал, но ACK все равно не получал.
Где-то там ошибка. Вот теперь у меня есть осциллограф и могу в живую посмотреть, что там шлется:)
Как руки дойдут - озадачусь.

Подробнее про Unlocking MASS смотри тут(раздел 4): http://www.st.com/stonline/products/lit ... /14614.pdf


Здравствуйте!

Тоже занимаюсь программатором для stm8 и столкнулся с аналогичной проблемой с ack при записи SWIM_CSR. Притом стабильно ack не приходит при передачи второго байта адреса.

Удалось ли решить эту проблему? Если да, то поделитесь опытом.


Завидую я Вам, можете тратить время на создание программатора ( для души ), потратить несколько дней за 300руб. непозволительная роскошь.
http://www.aliexpress.com/item/NEW-Mini-ST-Link-V2-stlink-Emulator-Downloader-STM8-STM32-free-shipping/1396983663.html


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 SWIM
СообщениеДобавлено: 31 окт 2013, 14:15 
Заглядывает иногда

Зарегистрирован: 03 дек 2012, 17:12
Сообщения: 127
Нужен) только с экраном, собственной памятью на кучу программ и соответственно чтоб без компа работал..
Что-то типа программатора Тритон V5.6.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 SWIM
СообщениеДобавлено: 29 окт 2017, 12:34 
Старожил
Аватара пользователя

Зарегистрирован: 07 июн 2010, 21:00
Сообщения: 550
Тоже планирую запилить что то похожее

_________________
Надежность оборудования обратно пропорциональна числу и положению лиц, за ним наблюдающих


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 SWIM
СообщениеДобавлено: 07 ноя 2017, 01:00 
Здравствуйте!

Зарегистрирован: 19 окт 2017, 21:41
Сообщения: 2
Когда-то заморачивался с самодельным программатором, правда до полноценного изделия так и не довел. Проект во вложении.
Программатор собран на at90usb162.
Схема и плата в формате PCAD_2002;
Прошивка МК - AVR Assembler.
Софт для PC написан на VB_6, тестировался только под win_XP.
База данных по "memory map" отсутствует, потому контроль за границами
записи/чтения и размером записываемого блока лежит на пользователе.


Вложения:
SWIM_usb.rar [208.83 Кб]
Скачиваний: 33
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 SWIM
СообщениеДобавлено: 26 дек 2017, 14:00 
Старожил
Аватара пользователя

Зарегистрирован: 07 июн 2010, 21:00
Сообщения: 550
chel50rus писал(а):
Когда-то заморачивался с самодельным программатором, правда до полноценного изделия так и не довел. Проект во вложении.
Программатор собран на at90usb162.
Схема и плата в формате PCAD_2002;
Прошивка МК - AVR Assembler.
Софт для PC написан на VB_6, тестировался только под win_XP.
База данных по "memory map" отсутствует, потому контроль за границами
записи/чтения и размером записываемого блока лежит на пользователе.

жаль не на си. пока не смог найти внятную информацию как протокол запилить...

_________________
Надежность оборудования обратно пропорциональна числу и положению лиц, за ним наблюдающих


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 22 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB