Первый пост темы: sw1972 Post: #281483 От:26.12.2010 (18:13) В этой теме речь пойдёт о микросхемах программируемой логики и устройствах для их программирования.
_________________________________________________________
Добавление от 4.05.2011:
В этой теме также речь пойдёт о микроконтроллерах и устройствах для их программирования.
psih Пост: 402360 От 27.Nov.2012 (14:09)
Если исходить из вашей логике, то весь функционал JTAG заключен в декодировании сериального USB сигнала в параллельный (соотв. ноги контроллера) код. Меня смутило, что кода в прошивку понапихано аж 64кб... В такие объемы можно запихать супер-мега-крутой функционал, который я запарюсь портировать. Но если все так-как вы говорите, то можно попробовать это все дело смеха ради дизассемблировать... Странно, что никто этого не сделал раньше в сети...
И если это тупой ключ, то почему сделано на ARM а не на тупом TINY за 10коп...?
А Вы не смущайтесь, а сделайте.
Для этого купите микросхему FT2232D и сделайте, например, клон Amontek JTAGkey или клон ещё более простого OOCDLinks.
Что Вы тогда получите в замен:
1) Возможность прошивки микроконтроллеров AVR с помощью программ avrdude или avreal,
2) Возможность прошивки микроконтроллеров с помощью программы CoFlash ( [ссылка] ) в ОС Windows,
3) Возможность прошивки (отладку не пробовал) с помощью OpenOCD в ОС Linux.
Скорость по сравнению с последовательным ПониПрогом при программировании AVR выросла на порядки.
Контроллер на плате STM32VLDISCOVERY можно перепрошивать с помощью программы CoFlash, она поддерживает встроенный в плату урезанный отладчик STLink, в этом случае прошивка осуществляется через шину SWD , а не через JTAG.
psih Пост: 402360 От 27.Nov.2012 (14:09)
почему сделано на ARM а не на тупом TINY за 10коп...?
Они умеют считать деньги.
Сколько стоит контроллер их не волнует- ты за него заплатишь.
А вот разработка кода для АРМА быстрее и дешевле чем выпендриваться на тини.
Опять же как бонус юсби можно влепить вместо лпт или кома.
Бизнес.
sw1972 Пост: 402363 От 27.Nov.2012 (14:35)
она поддерживает встроенный в плату урезанный отладчик STLink, в этом случае прошивка осуществляется через шину SWD , а не через JTAG.
Прошивать все более менее научились и шнурком от сотового тела.
А вот отладка.... это пока надо платить.
Кстати немного и даже более того очень немного, тебе еще и няшек за это дадут.
В виде бесплатных контроллеров для обучения впридачу к шнурку и программе.
psih Пост: 402360 От 27.Nov.2012 (14:09)
Если исходить из вашей логике, то весь функционал JTAG заключен в декодировании сериального USB сигнала в параллельный (соотв. ноги контроллера) код. Меня смутило, что кода в прошивку понапихано аж 64кб... В такие объемы можно запихать супер-мега-крутой функционал, который я запарюсь портировать. Но если все так-как вы говорите, то можно попробовать это все дело смеха ради дизассемблировать... Странно, что никто этого не сделал раньше в сети...
И если это тупой ключ, то почему сделано на ARM а не на тупом TINY за 10коп...?
А Вы не смущайтесь, а сделайте.
Для этого купите микросхему FT2232D и сделайте, например, клон Amontek JTAGkey или клон ещё более простого OOCDLinks.
Что Вы тогда получите в замен:
1) Возможность прошивки микроконтроллеров AVR с помощью программ avrdude или avreal,
2) Возможность прошивки микроконтроллеров с помощью программы CoFlash ( [ссылка] ) в ОС Windows,
3) Возможность прошивки (отладку не пробовал) с помощью OpenOCD в ОС Linux.
Скорость по сравнению с последовательным ПониПрогом при программировании AVR выросла на порядки.
Из этого хотелось бы организовать JTAG для [ссылка]
как видите по идее никакой FT2232D не нужно. Нужен только софт...
Спасибо за поддержку... Если вдруг жестко понадобится внутрисхемная отладка, то попробую прикрутить. Просто сижу и репу чешу... Сразу JTAG к этой плате заказать или помучаться малость...
_____
Извините, случайно добавил свое сообщение, после чего за собой прибрал.
sw1972
dedivan Пост: 402362 От 27.Nov.2012 (14:29)
Ты можешь сделать житаг из пяти проводков.
Через лпт порт посылаешь любой байт и контроллер тебе чего то ответит.
Что посылать и что он отвечает- все написано в даташитах.
Можешь написать програмульку которая будет переводить это тебе на понятный язык.
Лень писать? Так фирма уже написала за тебя эту програмку.
Но они забесплатно не любят работать- поэтому надо платить,
но они знают что ты хитрый, можешь переписать програмку у соседа,
поэтому к програмке нужен ключик, вот он и зашит в том мелком контроллере,
который висит на шнурке.
И примерно прикинули что взломать этот ключик должно стоить дороже
чем просто заплатит за програмку.
А ты хочешь все таки взломать? Денег много?
Можно и через LPT, но можно уже и через USB, который есть даже на любом самом слабеньком нетбуке.
Споры о том, что же лучше LPT или USB уже не злободневны, так как LPT уходит с современных устройств ввиду его громоздкости и относительно малой скорости передачи данных.
Могу привести пример из жизни.
У нас на работе уже столкнулись с похожими трудностями. Один из моих коллег спроектировал пульт для проверки одного из серийно выпускаемых приборов. Он думал, что применение платы для сбора данных, помещаемой внутрь компьютера на слот PCI - это круто, современно и очень просто. Ему же предлагали использовать микроконтроллер внутри пульта и связь с ЭВМ через последовательный порт или через USB. На дворе был 2006 год. Мой коллега от последовательных каналов передачи данных отказался и сделал ставку на плату для слота PCI. Плата стала морально устаревать спустя несколько лет, прогораммное обеспечение, которое создавалось под эту плату становится несовместимым с новыми ЭВМ и новыми версиями ОС. И не в каждой новой ЭВМ на материнской плате есть разъём PCI, вот и "приехали". Появился новый "геморройчик". А если бы он пошёл по пути использования последовательного канала передачи данных или шины USB, можно было бы сейчас применить ЛЮБОЙ современный портативный ноутбук и пульт сделать предельно компактным.
С похожей проблемой сталкиваются те, кто проектирует НКИА, которые обменивается данными через LPT. Если надо делать совместные испытания и пульт перевозят на другое предприятие, то сегодня тоже возникнет проблема с поиском подходящей ЭВМ, на большинстве ЭВМ уже давно нет LPT. А если и есть, то операционная система на найденной ЭВМ может быть не совместима с ПО, написанным несколько лет назад.
Такие вот дела.
Я хотел взломать нахаляву. Если взлом стоит дороже устройства, то мне это не нужно. LPT порта у меня уже нету даже в материнской плате на стационарном компьютере... Покупать устаревшую плату тоже смысла нет.
Насчет предлагаемого контроллера. Уже выбрал другой. Нужны DAC'и на борту... Т.е. тот-же класс устройств, только фарш чуть другой и непонятно было сразу брать JTAG или нет...
psih Пост: 402360 От 27.Nov.2012 (14:09)
Если исходить из вашей логике, то весь функционал JTAG заключен в декодировании сериального USB сигнала в параллельный (соотв. ноги контроллера) код. Меня смутило, что кода в прошивку понапихано аж 64кб... В такие объемы можно запихать супер-мега-крутой функционал, который я запарюсь портировать. Но если все так-как вы говорите, то можно попробовать это все дело смеха ради дизассемблировать... Странно, что никто этого не сделал раньше в сети...
И если это тупой ключ, то почему сделано на ARM а не на тупом TINY за 10коп...?
А Вы не смущайтесь, а сделайте.
Для этого купите микросхему FT2232D и сделайте, например, клон Amontek JTAGkey или клон ещё более простого OOCDLinks.
Что Вы тогда получите в замен:
1) Возможность прошивки микроконтроллеров AVR с помощью программ avrdude или avreal,
2) Возможность прошивки микроконтроллеров с помощью программы CoFlash ( [ссылка] ) в ОС Windows,
3) Возможность прошивки (отладку не пробовал) с помощью OpenOCD в ОС Linux.
Скорость по сравнению с последовательным ПониПрогом при программировании AVR выросла на порядки.
Из этого хотелось бы организовать JTAG для [ссылка]
как видите по идее никакой FT2232D не нужно. Нужен только софт...
Спасибо за поддержку... Если вдруг жестко понадобится внутрисхемная отладка, то попробую прикрутить. Просто сижу и репу чешу... Сразу JTAG к этой плате заказать или помучаться малость...
А Вы уточните, предусмотрено ли подключение внешнего устройства JTAG на плату.
Вы также можете начинать сами создавать свои программы, если осилите. Но определить, осилите Вы или нет, можно только опытным путём, не иначе.
Хотя поддержка JTAG и заявлена для atmega1280, но нужного разъёма не вижу на плате [ссылка] .
Поддержка JTAG (есть 20-контактный разъём) и SWD заявлены для этой платы [ссылка] . Но уточните, можно ли загрузку программ в stm32f103 осуществлять через USB. Загрузка программ через разъём USB на плате может потребовать специализированное программное обеспечение. А внешнее JTAG-устройство можно подключать любое, лишь бы отладчики могли работать с ним, уточните это.
dedivan Пост: 402370 От 27.Nov.2012 (15:01)
Для ST дешевле купить отладочный набор Дискавери.
Там и шнурок, и готовая плата и куча софта для разработки.
и контроллер впридачу [ссылка]
С помощью CooCox (http://www.coocox.org/) можно работать с этой платой, проверено.
Можно собрать работающую программу и с помощью CoFlash можно прошить контроллер на плате без применения внешнего JTAG-устройства.
Внешнее JTAG-устройство тоже можно подключить к этой плате, как показано на фотографии ниже, но для этого понадобиться один из разъёмов BH-10 или BH-20, гнёзда от старого военного разъёма и проволочные перемычечки, которые соединяют разъёмы с гнёздами. Такой способ тоже опробован и подтверждаю работоспособность.
Насчет предлагаемого контроллера. Уже выбрал другой. Нужны DAC'и на борту...
Так это не проблема. Этот же шнурок пойдет и для твоего.
Просто к нему бесплатная няшка или бесплатный сыр- как хочешь.
Прикольно! Такая платка стоит 18$ и там есть спец. таракан для реализации ST-Link. Такого таракана нету в моей плате. Т.е. этот вариант наверное можно рассматривать как ST-LINK+STM32 по цене одного ST-LINK... Т.е. если есть куда девать еще один контроллер, то покупка такого комплекта будет выгодной. Да это как я люблю, если бы я знал о такой взможности ДО покупки ATMega1280. А так бы эта платка заменила бы мегу вполне.
Поддержка JTAG (есть 20-контактный разъём) и SWD заявлены для этой платы [ссылка] . Но уточните, можно ли загрузку программ в stm32f103 осуществлять через USB. Загрузка программ через разъём USB на плате может потребовать специализированное программное обеспечение. А внешнее JTAG-устройство можно подключать любое, лишь бы отладчики могли работать с ним, уточните это.
Специально искал инфу по этому вопросу. Вроде как может, но определенно спросить об этом не у кого, если честно...
С помощью CooCox (http://www.coocox.org/) можно работать с этой платой, проверено.
В описании CooCox не заявлено о поддержке моего МК (кстати еще не купленого)
Хотя поддержка JTAG и заявлена для atmega1280, но нужного разъёма не вижу на плате [ссылка] .
На ATMega пока вроде как JTAG не нужен. Она была куплена для имплементации прототипа, который был спаян вообще на ATTINY2313 и отлажен без JTAG'а... Просто экономически оказалось более выгоднее и быстрее купить отладочную плату, чем переразводить и переизготавливать прототип...
Поддержка JTAG (есть 20-контактный разъём) и SWD заявлены для этой платы [ссылка] . Но уточните, можно ли загрузку программ в stm32f103 осуществлять через USB. Загрузка программ через разъём USB на плате может потребовать специализированное программное обеспечение. А внешнее JTAG-устройство можно подключать любое, лишь бы отладчики могли работать с ним, уточните это.
Специально искал инфу по этому вопросу. Вроде как может, но определенно спросить об этом не у кого, если честно...
С помощью CooCox (http://www.coocox.org/) можно работать с этой платой, проверено.
В описании CooCox не заявлено о поддержке моего МК (кстати еще не купленого)
Хотя поддержка JTAG и заявлена для atmega1280, но нужного разъёма не вижу на плате [ссылка] .
На ATMega пока вроде как JTAG не нужен. Она была куплена для имплементации прототипа, который был спаян вообще на ATTINY2313 и отлажен без JTAG'а... Просто экономически оказалось более выгоднее и быстрее купить отладочную плату, чем переразводить и переизготавливать прототип...
Ничего страшного в том, что купили плату с навороченным AVR. Программировать их легче, чем ARM. Тем более, если с ними имеешь дело многие годы. И работа с прерываниями в AVR более понятная.
Насчет предлагаемого контроллера. Уже выбрал другой. Нужны DAC'и на борту...
Так это не проблема. Этот же шнурок пойдет и для твоего.
Просто к нему бесплатная няшка или бесплатный сыр- как хочешь.
Прикольно! Такая платка стоит 18$ и там есть спец. таракан для реализации ST-Link. Такого таракана нету в моей плате. Т.е. этот вариант наверное можно рассматривать как ST-LINK+STM32 по цене одного ST-LINK... Т.е. если есть куда девать еще один контроллер, то покупка такого комплекта будет выгодной. Да это как я люблю, если бы я знал о такой взможности ДО покупки ATMega1280. А так бы эта платка заменила бы мегу вполне.
Но у контроллеров STM32 и ATMega1280 разные напряжения питания 3,3В и 5В соответственно. Если у Вас уже сделаны платы с напряжением питания 5В, то для совмещения с STM32 могут понадобиться преобразователи уровней. А вот ATMega1280 как раз сможет работать с такими схемами без преобразователей уровней, что является преймуществом в ряде случаев. Ни один ARM не выдержит напряжение питания 5В, только 3,3В и меньше.
Но у контроллеров STM32 и ATMega1280 разные напряжения питания 3,3В и 5В соответственно.
В любом случае присоединения к контроллеру (это мой случай с моими кривыми схемами) осуществляются через цифровые изоляторы.На них же делается и level shifting.
Если у Вас уже сделаны платы с напряжением питания 5В, то для совмещения с STM32 могут понадобиться преобразователи уровней. А вот ATMega1280 как раз сможет работать с такими схемами без преобразователей уровней, что является преймуществом в ряде случаев. Ни один ARM не выдержит напряжение питания 5В, только 3,3В и меньше.
Бюджетно STM32 может быть заменен на xMega... Но там тоже 3.3 и при одинаковой цене девелоперской платы характеристики STM32 круче. Проблемой для меня является то, что я ни с тем, ни с другим не работал. Я знаю, только AVR компиляторы и симуляторы до ATMega и у меня есть программатор PonyProg - т.е. инфраструктуры нет ни для того, ни для другого. Один хрен все по новой...
Но у контроллеров STM32 и ATMega1280 разные напряжения питания 3,3В и 5В соответственно.
В любом случае присоединения к контроллеру (это мой случай с моими кривыми схемами) осуществляются через цифровые изоляторы.На них же делается и level shifting.
Если у Вас уже сделаны платы с напряжением питания 5В, то для совмещения с STM32 могут понадобиться преобразователи уровней. А вот ATMega1280 как раз сможет работать с такими схемами без преобразователей уровней, что является преймуществом в ряде случаев. Ни один ARM не выдержит напряжение питания 5В, только 3,3В и меньше.
Бюджетно STM32 может быть заменен на xMega... Но там тоже 3.3 и при одинаковой цене девелоперской платы характеристики STM32 круче. Проблемой для меня является то, что я ни с тем, ни с другим не работал. Я знаю, только AVR компиляторы и симуляторы до ATMega и у меня есть программатор PonyProg - т.е. инфраструктуры нет ни для того, ни для другого. Один хрен все по новой...
Ничего страшного, всё равно когда-то надо начинать, сейчас микроконтроллеры с архитектурой ARM пользуются популярностью и некоторые даже дешевле аналогичных по навороченности AVR, что при крупносерийном производстве может иметь значение.
ДедИван посоветовал плату STM32VLDISCOVERY, на которой есть микроконтроллер и программатор к нему(но программатор поддерживает SWD, JTAG не поддерживает), можете для начала купить её. Затем докупить JTAG-устройство или сделать его самостоятельно.
Я для себя делал JTAG-устройство сам на микросхеме FT2232D (микросхема FT2232D должна работать совместно с микросхемой памяти 93C46). Иногда бывает дешевле купить готовое JTAG-устройство по стоимости комплектующих, платы и потраченного времени.
sw1972 Пост: 402407 От 27.Nov.2012 (20:32)
Иногда бывает дешевле купить готовое JTAG-устройство по стоимости комплектующих, платы и потраченного времени.
Ну ему то для отладки нужно.
А отладка и по СВ идет.
Так что полный комплект.
Кстати и Атмел тоже сейчас во все новые контролеры СВ ставит для отладки.
ДедИван посоветовал плату STM32VLDISCOVERY, на которой есть микроконтроллер и программатор к нему(но программатор поддерживает SWD, JTAG не поддерживает)
STM32VLDISCOVERY - это очень хороший вариант, но DAC'ов нету...
Объясню для чего мне нужна та плата, которую я выбрал. Мне нужны два канала, на котором я могу формировать (полу)синусоиду, порядка 0-40кгц с хорошим усилением и управлением. Изначально я планировал для этих целей использовать ШИМ+Мост+Фильтр. Но в процессе исследования выяснилось
несколько моментов. Что слабые контроллеры не потянут такое преобразование. Потом оказалось что все это уже реализовано в аудио-усилителя D-Class'а и стоят они дешевле, чем я потрачу на разработку, реализацию и поиск комплектующих. Короче, чтобы привязаться к усилку мне нужно два аналоговых выхода, иначе придется усилок колхозить самому на шиме, а на ARM есть уже 2 DAC'а которые можно повесить на DMA. В STM32VLDISCOVERY DAC'ов нету... Если вешать внешние DAC'и, то это удорожание до уровня готовой платы с даками + разработка и пайка и потеря возможности работать через DMA.
При этом я еще не уверен что внутрисхемная отладка мне понадобится, так-как часто ее заменяю отладочной печатью в лог. В данном случае на USB порт. Предполагаю, что есть возможность поймать эту отладочную печать терминальной утилитой на стационарном компьютере. Но я этого никогда не делал, поэтому заранее не уверен... Т.е. пока критическая функция это отладка, а программирование через усб и бутлоадер. Но это все в теории...
В общем я уже смирился, что халявы не будет, тем не менее решил отложить покупку LINK'а... Куплю, когда приспичит... Плохо только то, что если приспичит, то после этого еще месяц ждать, когда доставят...
Я для себя делал JTAG-устройство сам на микросхеме FT2232D (микросхема FT2232D должна работать совместно с микросхемой памяти 93C46). Иногда бывает дешевле купить готовое JTAG-устройство по стоимости комплектующих, платы и потраченного времени.
Может кинете ссылку на разработку? Чтобы хотя-бы посмотреть список поддерживаемых устройств? Я так понял, что для моей платы нужен более современный и функциональный JTAG...
Прошу прощения. Прочитал более внимательно про STM32VLDISCOVERY. Откуда-то DAC'и обнаружились совершенно случайно 😀 поэтому судя по всему ее и буду заказывать.
Хорошо, что меня перебаламутили... из-за этого не успел вчера заказать тот вариант, который я присмотрел ранее...
При этом я еще не уверен что внутрисхемная отладка мне понадобится, так-как часто ее заменяю отладочной печатью в лог. В данном случае на USB порт. Предполагаю, что есть возможность поймать эту отладочную печать терминальной утилитой на стационарном компьютере. Но я этого никогда не делал, поэтому заранее не уверен... Т.е. пока критическая функция это отладка, а программирование через усб и бутлоадер. Но это все в теории...
Я Вас расстрою. На плате установлен STM32VLDISCOVERY контроллер STM32F100, у которого нет встроенного контроллера USB. Последовательные ТТЛ-совместимые последовательные порты будут, но они выведены на штырьки. На них Вы сможете выдавать сведения о состоянии программы. А отправлять в ЭВМ - через внешний преобразователь уровней RS-232 (ADM232, MAX232, ST232...) или виртуальный последовательный порт через USB (FT232R, FT232H, FT2232D, FT2232H, CP2103....).
Поэтому плата и дешёвая.
Контроллер USB есть в микросхеме STM32F103, которая задействована под программатор. Но она задействована только под SWD (отладка и программирование).
Модуль на микросхеме STM32F103 можно задействовать как отладчик вместо JTAG для основной микросхемы STM32F100, но позволят это сделать только некоторые небезплатные средства разработки.
А программировать внутрисхемно через STM32F103 можно с помощью CoFlash.
psih Пост: 402458 От 28.Nov.2012 (09:17)
Прошу прощения. Прочитал более внимательно про STM32VLDISCOVERY. Откуда-то DAC'и обнаружились совершенно случайно 😀 поэтому судя по всему ее и буду заказывать.
Хорошо, что меня перебаламутили... из-за этого не успел вчера заказать тот вариант, который я присмотрел ранее...
psih Пост: 402455 От 28.Nov.2012 (05:58)
.................
Может кинете ссылку на разработку? Чтобы хотя-бы посмотреть список поддерживаемых устройств? Я так понял, что для моей платы нужен более современный и функциональный JTAG...
Мне довелость делать клон OOCDLink-s на микросхеме FT2232D (самый простой из всех известных, из тех деталей,что были в наличии)
главная станица: [ссылка]
схемы и платы: [ссылка]
Может работать с утилитой для программирования CoFlash и отладчиком OpenOCD.
Есть ещё Amontek JTAGkey тоже на микросхеме FT2232D, но с ним дело не имел. Он широко известен и список поддерживаемых сред разработок намного длиннее.