Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Infineon C16x/ST10/XC16x
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
RZLtd
Кто пользуется, нужна инфа по работе XC167 в связке c дебугером от Keila
через Jtag?
желательно на русском...
Alexandr
Более полного описания С167-ого скорее всего не найдете
RZLtd
и за это спасибо, но такое ощущение что никто не пользуется этим мкр-м,
хотя он ориентирован на использовании в автомобилях.
san822
Да, документация довольно обьёмная. Жаль про CAN-интерфейс там практически ничего нет. rolleyes.gif
msa
У меня похожее ощущение! Есть небольшой опыт, полученный, в основном, методом инженерного тыка. Есть много тем для обсуждения. Работаю с контроллерами М168-3, М269-3 от Каскода под uKeil. В частости, очень хочу переписывать программу по RS-485. Может кто поможет?
spf
Цитата(RZLtd @ Jul 21 2005, 12:09) *
и за это спасибо, но такое ощущение что никто не пользуется этим мкр-м, хотя он ориентирован на использовании в автомобилях.

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

ИМХО, минусы:
- Ядро имеет ограничения.
- Семейство узковатое, имеет сильную ориентацию, нет "простых" МК.
- Не дешевый.
_Vladimir_
По ХС167 на сайте инфинеона есть подробнейшая дока и апп. ноте.
Сомневаюсь что на русском что-то найдете по ХС167.
На английском достаточно много, особенно по С167.
Для старта советую мануал от Hitex (могу выслать или выложить на ftp, если не найдете)
По программированию есть несколько сторонних программаторов, использую
самопальный для С167 (правда не универсальный а строго под свой аппарат) и поломаный FlashHit от hse-electronics (гуглом легко найти) для ХС167.
У него ограничение на демо, но легко ломается.
Для своего программатора руки так и не дошли.
По программировани много материалов и быстро сделать свой программатор труда большого не составляет. Это может окупится при саппорте у заказчика.
У меня заказчики сами перепрошивают upgrade, но не все наверное догадываются об этом smile.gif .
JTAG и отладку никогда для них не использовал (в С167 не было JTAG).
Код большой и специфичный, что оптимально только программная трассировка в лог по RS232.
Не буду дискутировать насчет "ограниченности" архитектуры, просто нравится процессор и его архитектура.
У него конечно есть довольно узкая специализация, и по моему не так авто, как управление силовой электроникой. Это ведь Сименс, а у него силовая электроника существенная часть.
На борту море таймеров, PWM и прочей аппаратной заточки под импульсное управление.
Которая тщательно проработана и задокументирована.
То что есть для этого в ХС167, наверное нет ни у кого другого.
ИМНО его делали как CPU для управления силовой электроникой КРИТИЧНЫХ приложений.
Единственно могу сказать, что очень надежная штука.
И для экстремальных условий наверное мало кто может конкурировать.
Аналоговый модуль - ничего выдающегося, но действительно всегда обеспечивает то что заспецифицировано, а это ведь далеко не у всех производителей.
Вообще - чисто "немецкий продукт".
Используем также готовые модули с этим процессором.
http://www.fsforth.de, рассматривался и другой, более изящный, но сокет миниатюрный.
Дороговато (в конце 2004 были по 180 евро без платы toolkit-a), но очень удобно - миниатюрный, мегабайты FLASH и RAM. Если делать плату, то вряд-ли будет существенно дешевле плюс большие затраты времени. Модуль миниатюрен, хорошо становится на материнскую платку.
Но архитектура модуля fsforth мне не нравится.
Что касается прошивки через RS485, если архитектура старая (С167), то все зависит как Вы можете/хотите переводить процессор в режим загрузки кода (bootstrap).
Если возможно/допустимо руками, то нет проблем - CPU не знает по какому каналу к нему на ASC порт идет. Возможен более красивые варианты, но это аппаратно должно быть обеспечено на плате.
Это хорошо описано в мануале от Hitex.
В ХС167 загрузка существенно усовершенствована, но принцип тот же.
Доки по модулю могу выслать или на ftp, если надо. Неплохой Reference design.
spf
Цитата(_Vladimir_ @ Jan 21 2006, 17:20) *
На борту море таймеров, PWM и прочей аппаратной заточки под импульсное управление.
Которая тщательно проработана и задокументирована.
То что есть для этого в ХС167, наверное нет ни у кого другого.

Можно чуть подробнее, интересно, все же за ARM кинулись, а тут такое wink.gif

Наверное у каждого семейства МК есть что-то такое, чего нет у других.

Есть ХС167, к которому можно напрямую шаговик цеплять?
Сколько потребляет в спящем режиме?
Какое максимальное потребление и при какой частоте?
Какой самый маленький/большой МК?
Можно ссылкой ответить, если для поиска ответов на эти вопросы не придется слишком углубляться в дебри документации...

Цитата
Единственно могу сказать, что очень надежная штука.
И для экстремальных условий наверное мало кто может конкурировать.

Могут, MB9X.

Цитата
Вообще - чисто "немецкий продукт".

Было давненько, но у меня осадок остался от "немцев". Может мне не повезло...
Заказал небольшое количество в инфинеоне, через несколько недель - "отказываем, рекомендуем замену из ST10, но не прямую", харашо, заказал ST10, срок был 8 недель, плату развел, доки распечатал и проштудировал, под конец срока поставки - "ST10 не будет неопределенное время, у нас запарки по производству, крупные клиенты нам важнее... " - фтопку!
Как сейчас обстоят дела с приобретением отдельных МК ХС167? Какими партиями? Если не секрет...
_Vladimir_
To spf.
Sorry, не могу сообразить как цитаты вставлять, поэтому просто копирую Ваши вопросы.

"Можно чуть подробнее, интересно, все же за ARM кинулись..."

Не понял о чем подробнее?
Если Вас это очень интересует посмотрите
xc167ci_um_system_v1.1_2002_12.pdf
Возможно и у других есть, но такие навороченные формирователи я не встречал.
Далеко не часто и не всем это надо.


"Наверное у каждого семейства МК есть что-то такое, чего нет у других"
Вы справедливо отметили, поэтому есть смысл говорить только о конкретном, а
на тему XX vs. YY я не любитель говорить.

- Есть ХС167, к которому можно напрямую шаговик цеплять?
Шаговик - это токи как правило от сотен милиампер (в сысле наиболее часто).
У 167 ток пина маленький, кажется до 10 мА.
И напрямую - как смотреть. В step режиме подключал, но через силовые ключи.
Как правило шаговик интересует в более мелком stepe (а это наполовину аналог), поэтому в последнем проекте поставил миниатюрную платку с драйвером (которую выпускает тот же производитель) что и двигатели).
Если задачка простая, в центре ее шаговик - тогда и PIC может быть прекрасным решением, зачем 16 бит и прочее?

Sorry, за неимением времени на подробные вопросы не отвечу.
Лучше скачайте с инфинеона брайф шиты, (на ХС даташиты два штуки по 500 стр - CPU и периферия).
Реч шла о 167, а он отнюдь не микромощный (на это есть другие - С161-С165, в их ряду точно есть с малым потреблением).
У меня плата с внешим быстрым RAM, периферия и флэш берет 120-180 мА.
CPU без флэш на борту.
Спящий режим не использовал, цифр не помню.

С167 заказывали и получали в Германии от какого-то дистрибютора, не от Инфинеона.
У нас штучный выпуск - приборы, поэтому может и не показатель.
Партиии были разные, первые по 3-5 штук, потом более 50 не знаю точно.
Цена вполне приемлема (относительно всего прибора), первые тогда былои около 30 или 40 евро.
Конечно были и ARMы тогда - но по ряду причин выбрал 167 и совсем не жалею.
Армы уважаю smile.gif
Но сравнивать их на лучше/хуже и прочее нет смысла - просто разные и все.
Скажу только что писать софт для 167 просто приятно.

ХС167 даже не заказывали - стали использовать только модули.
Это платка 80х60 с XC167, внешняя флэш 2МВ, 1 МВ RAM, не считая того что в чипе,
немного "готового к употреблению" - RTC, CAN передатчик и .т .п.
Это в два раза дешевле и в три раза быстрее по разработке, чем делать свою плату (конечно плата нужна, но уже значительно проще).
Модуль голый от Форте стоил 180 евро, в комлекте с БП, платой и CD - около 300 евро.
Все это не реклама, Вы спрашивали smile.gif.

То что Инфинеон Вам не поставил, может и не удивительно.
Не все плотно работают с Sample, если Вы не декларировали серьезно крупные партии.
Но мне кажется его не очень трудно найти и у нас. В середине года встречал инфо с предложениями и по ХС167.
Lukashik
Ребята, кто работал с МК ST10F269,помогите!
Дали отладочную плату,установил на комп. uVision2+ Flasher,
прога загружается, пишется всё ОК,но после Reset не дышит.
Кто знает или догадывается в чём проблема, помогите.
Заранее благодарен.
Andrew-S
Цитата(_Vladimir_ @ Jan 21 2006, 13:20) *
.
Для своего программатора руки так и не дошли.
По программировани много материалов и быстро сделать свой программатор труда большого не составляет. Это может окупится при саппорте у заказчика.
У меня заказчики сами перепрошивают upgrade, но не все наверное догадываются об этом smile.gif .


Вы не могли поподробнее рассказать о внутрисхемном(ISP) и внутрипрограммном программировании(IAP) контроллеров XC167? Очень актуальна данная тема. Любые ссылки будут полезны.

При внутрипрограммном программировании как я понимаю в процессор первоначально в режиме загрузки (bootstrap loader) загружается программа "заргузчик". При следующем внутреннем старте запускается основная программа, а если ее нет осуществляется переход на собственный "загрузчик". Свой "загрузчик" прошивает основную программу без bootstrap-режима в процессе нормальной работы контроллера. Загрузчик и основная программа обе находятся во внутренней flash. Интересуют варианты реализации и возможно какие-то подводные камни в этой схеме.

При внутрисхемном программировании вопросов в принципе нет. Есть программа Memtool, которая по RS загружает HEX файл. Не очень понятно, bootstrap loader контроллера позволяет сразу принимать прошивку по RS или он только готовит ОЗУ, чтобы пользователь по RS загрузил свою программу загрузки в ОЗУ, которая затем будет порциями принимать прошивку и писать ее во FLASH? То есть интересует что делает Memtool. И можно ли его аппаратно эмулировать через другой контроллер, подключенный к программируемому через линии Tx Rx?
Shandy
Советую зайти на сайт Keil. Там есть appnote на эту тему:
http://www.keil.com/appnotes/docs/apnt_138.asp
Также у них на форуме этот вопрос несколько раз всплывал

Ну и на Infineon кое-что есть:

http://www.infineon.com/cgi-bin/ifx/portal...ageTypeId=17099
copov
2Lukashik
Надо не просто проект откомпилировать и залить, а расписать найстройки в startup файле и в проекте под вашу конфигурацию, распределение памяти и так далее.
khach
Киевский skylink http://www.rusar.net/ru/file/skylink.html который копия улинка должен уметь- если его раскрутить, то там внутри есть разъем и для С167. Вот только точно подтвердить это трудно- с сотовиками оно несовсем хочет работать ввиду несовместимости с 1.8 вольт ( надо переходник майстрячить), а подопытных кроликов на дискретке- нет. Если кто поделится настроенным проектом для отладчика под какую-то доступную аппаратную платформу- то проверим и сообщим результаты тестирования.
_Vladimir_
Цитата(Andrew-S @ Dec 18 2006, 14:52) *
Вы не могли поподробнее рассказать о внутрисхемном(ISP) и внутрипрограммном программировании(IAP) контроллеров XC167? Очень актуальна данная тема. Любые ссылки будут полезны.

Сорри, но XC167 у меня весьма поверхностно.

The startup behavior of the XC167 can be configured in three ways:
• apply a fixed default configuration (source = Startup ROM)
• read the configuration from user memory (ROM, Flash)
• read the configuration from configuration pins

Использую только последний вариант (у меня всегда используется внешняя ФЛЭШ и для С167 и для ХС167), процедура входа в bootstrap выглядит так.

1. Для входа в ISP необходимо притянуть пин P0L.4 к земле через резистор до 10ком, расчетное 8,2к.
2. Выполнить РЕСЕТ процессора.
3. Передать на CPU байт 0 (скорость использую 57600, а CPU по этому байту фиксирует скорость).
3. CPU переходит в bootstrap режим о чем и сообщает передачей на UART ID кода процессора по UART.
4. CPU переходит в режим ожидания 32 байт кода на UART, т. е. сидит в цикле пока не примет 32 байта.
Эти 32 байта есть начальный загрузчик. Один из вариантов, которые я использую для С167:

?PR?BSL SECTION CODE; WORD 'NCODE'

main PROC NEAR
org 0FA40h
mov r0, #0FA60h
LOOP:
jnb S0RIR, $
movb [r0], S0RBUF
bclr S0RIR
movb S0TBUF, [r0]
jnb S0TIR, $
bclr S0TIR
cmpi1 R0, #(0FA60h + CODESIZE - 1)
jmpr cc_NE, LOOP
nop

main ENDP
?PR?BSL ENDS

Возможны и модификации, примеров достаточно в аппл. нотах.
грузить надо уже в машинном коде конечно. И главное выровнять по размеру на 32 байта.
Назначение этого кода - загрузить основной загрузчик. с достаточным "интеллектом" и передать ему управление.
CODESIZE - размер его кода.
Ну а основной загрузчик уже примет и запустит код самой программирующей процедуры,
которая будет прошивать ФЛЭШ.
Все это справедливо и для XC167.

Цитата(Andrew-S @ Dec 18 2006, 14:52) *
При внутрипрограммном программировании как я понимаю в процессор первоначально в режиме загрузки (bootstrap loader) загружается программа "заргузчик". При следующем внутреннем старте запускается основная программа,

Не совсем так.
Не "При следующем внутреннем старте",
а Куда и как стартует процессор определится состоянием "Reset Configuration Register" на момент сброса процессора и только.

Цитата(Andrew-S @ Dec 18 2006, 14:52) *
а если ее нет осуществляется переход на собственный "загрузчик". Свой "загрузчик" прошивает основную программу без bootstrap-режима в процессе нормальной работы контроллера. Загрузчик и основная программа обе находятся во внутренней flash. Интересуют варианты реализации и возможно какие-то подводные камни в этой схеме.

Посмотрите AP163703 от Инфинеон.
Поскольку для ХС1657 отдельно ничего внятно не описано (я в свое время не нашел), думаю это справедливо и для него.

Цитата(Andrew-S @ Dec 18 2006, 14:52) *
При внутрисхемном программировании вопросов в принципе нет. Есть программа Memtool, которая по RS загружает HEX файл. Не очень понятно, bootstrap loader контроллера позволяет сразу принимать прошивку по RS или он только готовит ОЗУ, чтобы пользователь по RS загрузил свою программу загрузки в ОЗУ, которая затем будет порциями принимать прошивку и писать ее во FLASH? То есть интересует что делает Memtool. И можно ли его аппаратно эмулировать через другой контроллер, подключенный к программируемому через линии Tx Rx?

Я думаю уже ответил.
Может я и не прав, но мне кажется что не получится выполнить код программирования ФЛЭШ, из самой ФЛЭШ.
Обычно он перемешается в RAM и исполняется оттуда.
У Кейла есть соответствующие аппл. ноте для С.
Но я делал эти процедуры на ассемблере - так легче управлять линкером.
В ХС167 уже есть специальная область PSRAM для кода, не спроста наверное.

То что Вы хотите, я не видел внятного описания.
что такое "8K Start up ROM" так и не опеделил.
Возможно, это может быть custom исполнения.

ИМНО, стоит ли заморачиваться на внутрипрограммном программировании, какая от этого польза в данном процессоре.
Я имею ввиду смену прошивки кода, а не запись во ФЛЭШ констант.
Вариант когда приложение по специальной команде готовит (конфигурирует) процессор к переходу в
бутстрап лодер режим не считаю IAP.

Как пример, простейший вариант (но со своими минусами), то что используется в некоторых программаторах (и у меня), хорошо описан в мануале дл FLASHhit от HSE.
Можно это делать и не от линий RS а програмно, управляя из приложения, через внешние регистры.
Работает очень хорошо, за три года не зафиксировано ни одного сбоя, пользователи сами меняют прошивку прибора, не осозновая что они делают :-).
ИМНО, это наименее трудозатратный механизм - аппаратно или спец. командой из хост программы на РС переводите процессор в бутстрап лодер, грузите из хоста в RAM загрузчики и потом сам код прошивки.
Затем "освобождаете" процессор от бутстрап конфигурации и программный ресет - приложение будет запущено.
И последнее, ресурс внутренней ФЛЭШ у инфинеон весьма мал (гарантированный), поэтому
"много не наперешиваешь", так стоит ли городить.
Andrew-S
Vladimir_, спасибо! прояснили кое-что для меня. Application note как я понимаю - AP1603703. Это про ресет. Программирование флеш из самой флеш возможно. На сайте кейла есть пример когда загрузчик и основная программа представляют собой два отдельных приложения во флеш. Они лежат по разным адресам и не знают друг о друге (первый раз загрузчик пишется во флеш через bootstrap). При внутреннем старте запускается загрузчик и по команде на линии связи переход на запуск приложения. Сам загрузчик в системе никогда меняться не будет. Смысл IAP - смена прошивки без перевода в режим bootstrap loader c помощью пина. А задача такая стоит из за невозможности физического доступа к контроллеру в системе при наличии только штатной линии связи (SPI), по которой предполагается иметь полный доступ к управлению микроконтроллером (в том числе и смену основной программы). PSRAM используется наверно для перезаписи целиком всей флеш. И туда же еще надо код положить. Все-таки Bootstrap получается самый надежный метод. И я так понимаю, Вашим пользователям ручками не надо дергать сигнал на пине P0L.4.
_Vladimir_
Цитата(Andrew-S @ Dec 29 2006, 12:48) *
Vladimir_, спасибо! прояснили кое-что для меня. Application note как я понимаю - AP1603703. Это про ресет.

Не только, в основном как конфигурируется старт-ар режим. Это важно.

Цитата(Andrew-S @ Dec 29 2006, 12:48) *
Программирование флеш из самой флеш возможно. На сайте кейла есть пример когда загрузчик и основная программа представляют собой два отдельных приложения во флеш. Они лежат по разным адресам и не знают друг о друге (первый раз загрузчик пишется во флеш через bootstrap).

Похоже что возможно, но с оговорками, как говорит даташит:
Flash memory locations or that writes
data to the page assembly register can be executed also from internal Flash, supposed
that directly after the move instruction for the last command cycle of programming or
erase operations a jump to memory outside the on-chip Flash memory (on-chip RAM or
external memory) is executed.

Если только этот jump не заставит изощрятся.
Т. е. похоже что надо "выключать" шины после каждого цикла.
И не обойтись без кода в RAM - получается после цикла надо обязательно перейти на RAM/extern based код. Правда не говорят на сколько минимально, скорее всего просто чтобы перещелкнуть page регистр.

Что касается app note от Кейла, если это app_186, то
-1. Используют JTAG
-2 Используют старый "FLASH OS" (а если новый, то не видел) и она предполагает расположение в RAM, о чем и говорили ранее, нет там кода, программирующего из флэш.
Да и вряд-ли будет у них другое решение - это пример универсального решения для всего семейства.
С любым набором внешней/внутренней флэш.

Цитата(Andrew-S @ Dec 29 2006, 12:48) *
При внутреннем старте запускается загрузчик и по команде на линии связи переход на запуск приложения. Сам загрузчик в системе никогда меняться не будет. Смысл IAP - смена прошивки без перевода в режим bootstrap loader c помощью пина. А задача такая стоит из за невозможности физического доступа к контроллеру в системе при наличии только штатной линии связи (SPI), по которой предполагается иметь полный доступ к управлению микроконтроллером (в том числе и смену основной программы). PSRAM используется наверно для перезаписи целиком всей флеш. И туда же еще надо код положить.

Целиком флэш - понятие весьма условное.
Вот Кейл и давал примеры - как перемещать код в RAM.
Если Вам надо (или удобнее) без bootstrap - тогда задача совсем другая.

Цитата(Andrew-S @ Dec 29 2006, 12:48) *
Все-таки Bootstrap получается самый надежный метод. И я так понимаю, Вашим пользователям ручками не надо дергать сигнал на пине P0L.4.

P0L.4 дергает хост программа по линии управления модемом от RS232.
программа и обеспечивает прошивку и верификацию.
Если использовать для прошивки Bootstrap, то без аппаратной поддержки не обойтись.
Но управлять линией можно и программно через внешний аппаратный регистр, это широко применяется.
Без пина в Bootstrap просто не попасть.
Насчет надежности - безусловно. Да и проще.
Код загрузчик/монитор защищен аппаратно.

Конкретное решение сильно зависит от задачи. Если у Вас приложение стартует только по внешней команде, а не при включении устройства - это одно, а если должно уметь работать автономно - совсем другое.


Удачи Вам!
repairDV
Кстати, у этого микроконтроллера мне ещё нравится такая стабильно работающая функция, как инициализация через внешние резисторы. У него такая особенность - если ты неправильно задал конфигурацию в начале программы, которую он считывает после старта, то он работать не будет. Но конфигурацию можно задавать и не программно, а аппаратно - после старта он считывает состояние, кажется, порта 0, точно не помню. И там ты набором резисторов выставляешь каждый бит порта либо в 0, либо в 1. И тем самым делаешь конфигурацию. У меня, например, он работал в 8-битовом мультиплексном режиме, с тихоходной дешёвой флэш.
shems
Коллеги,
а где можно достать Keil IDE для етих микроконтроллеров? Кто-нибудь пользуется етим софтом?
Andrew-S
Цитата(shems @ Jan 11 2007, 08:32) *
Коллеги,
а где можно достать Keil IDE для етих микроконтроллеров? Кто-нибудь пользуется етим софтом?

Можно скачать с сайта www.keil.com, это будет версия с ограничением на размер исполняемого кода, которое снимается покупкой лицензии. Сейчас доступна uVision3, в инете можно найти uVision2 с ключом.
Если просто посмотреть что это такое - есть ссылка в ветке http://electronix.ru/forum/index.php?showt...0590&st=15# , но там компилятор не для 166.
repairDV
А можно ещё и нарушить закон об авторских правах и нелегально воспользоваться каскодовским ASM167. Правда, под DOS. Ох и ругались на меня.
Legotron
Цитата(_Vladimir_ @ Dec 28 2006, 12:11) *
И последнее, ресурс внутренней ФЛЭШ у инфинеон весьма мал (гарантированный), поэтому
"много не наперешиваешь", так стоит ли городить.

Нельзя ли уточнить какой именно этот ресурс, и желательно привести источник откуда эта цифра взята?
Shandy
Источник - www.infineon.com. Сейчас я эту информацию найти не смог, но пару лет назад там было 100 циклов стирания/записи. Впрочем, похоже ситуация улучшилась: в документе

http://www.infineon.com/upload/Document/AI...Guide_XC166.pdf,

в главе Flash Endurance упоминаются значения 1000 и больше циклов.
Legotron
Цитата
Any sector of the FLASH will be erased and written more than 20000 times in 5 years or 1000 times in
15 years as part of the normal operation of the product.


Для справки, как я понял:
Флэшка может быть перезаписана более 20000 раз, но при этом гарантийный срок сохранения данных сокращается до 5 лет!
Если нужно, чтобы хранилось 15 лет не стоит перезаписывать более 1000 раз.

Спасибо Shandy...
Для меня это весьма полезная информация - буду переходить на RAM debug.
Legotron
Кто может подсказать, где взять информацию по потребляемому току XC167?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.