Итак, для начала рассмотрим изменения, сделанные в прошивке микроконтроллера.
Во-первых, теперь тактовая частота сигнала SCK не 1 МГц, как это было ранее, а 250 кГц. Это на самом деле удобно для работы с контроллерами, которые идут с завода, поскольку для них тактовая частота по умолчанию составляет 1 МГц. Так что теперь не нужно делать лишних "Автоопределений".
Во-вторых, теперь по завершению программирования выводы программатора MOSI, MISO и SCK переводятся в высокоимпедансное состояние, что не препятствует использованию их в качестве обычных портов ввода-вывода при подключенном программаторе.
Теперь что касается программной оболочки. Тут изменения более значительные.
Рассмотрим обновленное главное окно программы:
Итак, что же изменилось?
1. Частота сигнала SCK, как было сказано, теперь по умолчанию составляет 250 кГц.
2. Добавлена галочка "Автоматически стирать кристалл перед программированием". Название ее говорит само за себя. В большинстве случаев я строго рекомендую ее устанавливать во избежание непредвиденных результатов, но если вы твердо знаете, что делаете, то можете ее убрать, но, повторюсь, в этом случае за последствия я не ручаюсь.
3. В блоке "Программирование", как вы заметили, появились новые кнопки. Вместо кнопки "Чтение" стало две кнопки "Чтение в файл" и "Чтение на экран". Также появилась кнопка "Показать содержимое".
Функции кнопки "Чтение в файл" остались точно такими же, что и были у кнопки "Чтение" в предыдущей версии.
При нажатии на кнопку "Чтение на экран" содержимое памяти не сохраняется в выбранный файл, а выводится в специальное окно, которое показано на рисунке ниже
Содержимое показывается в стандартном формате Intel HEX. Данное окно предназначено для отображения как Flash, так и EEPROM памяти. Тип памяти показан в названии окна (в приведенном примере отображено содержимое Flash-памяти).
Ну и раз уж мы начали рассматривать это окно, рассмотрим его до конца. Как вы видите, в нижней части его есть 4 кнопки.
Кнопка "Сохранить" позволяет сохранить содержимое окна в файл с расширением *.hex или *.eep (в зависимости от вида выводимой памяти).
Кнопка "Открыть" позволяет открыть имеющийся на компьютере файл с расширением *.hex или *.eep и просмотреть его содержимое.
При нажатии кнопки "Записать в память" происходит запись в память микроконтроллера содержимого файла, который в данный момент отображается в окне. То есть, перед записью содержимого окна, если оно было прочитано из контроллера, необходимо сохранить его в файл.
Нажатие на кнопку "Прочитать из памяти" дублирует функцию кнопки "Чтение на экран" главного окна.
4. Кнопка "Показать содержимое" открывает приведенное выше окно, в котором отображается содержимое имеющегося на компьютере файла прошивки, название которого указано в текстовой строке над кнопкой.
5. Ну и, наконец, самое приятное обновление. Теперь работа программы не зависит от момента подключения программатора. То есть теперь можно извлекать или подключать программатор в любой момент без перезапуска программы, что позволяет сберечь не только время, но и нервы (знаю по себе :) )
Вот, в принципе, и все. Если у вас возникнут какие-то вопросы, пожелания, предложения, буду рад их выслушать и постараюсь учесть. Кроме того, пишите обо всех найденных вами багах, если таковые обнаружатся в процессе эксплуатации.
Здравствуйте, Сергей. Очень вам благодарен за данный программатор (на ATtiny 2313), правда, получилось у меня со второй микросхемой, первую похоже угробил программированием ... . Программировал прогой PonyProg 2000, начал с русской версии, где мк Attini 2313 нет в списке программируемых, а после неожиданно обнаружил, что в английской версии он присутствует ..., но было уже поздно!! После замены мк запрограммировал последней версией прошивки, и ... о чудо программатор опознался как положено, и установился драйвер - у меня Windows 7. И всё бы ничего, но скачанный мной файл с обновлённой программой MicroProg v. 2.0 русская версия не хотит открываться - система пишет что программа не совместима с ОС, хотя английская версия нормально открывается, хотелось попросить вас проверить ссылку или перезалить ... . Всё же русская версия есть русская ... . Заранее вам благодарен!
так проггер НЕРАБОЧИЙ! Чего зря радоваться. Подводные камни начнутся когда реально захотите зашить какой нибудь контроллер. А автор куда то слинял ...не хочет походу косяки исправлять...Собирай TinyProg и будет тебе щастье
Автор никуда не "слинял", автор сейчас очень занят. Почему такой способ подключения, автор выяснил, и все там нормально. Просто изначально идея была несколько странная, а по неопытности сразу не углядел. И тем не менее программатор имеет вполне нормальную скорость, сравнимую с USBAsp, может, немного медленней.
вот ссылка http://microsin.net/programming/avr-working-with-usb/vusbtiny-avr-programmer.html там есть всё про этот проггер. Переделка минимальная ... меняй местами 2 и 3 ноги тиньки 45 и MISO и MOSI лей прошивку с того сайта и радуйся отличной работе микропрога. Лучший софт под него SinaProg проверенно на личном опыте.
Файл я пересобрал и перезалил. Попробуйте заново. Насчет того, что программатор "нерабочий", это не так. Я сам им пользовался долгое время, пока занимался программированием AVR, и фатальных сбоев не было. Да, мелкие погрешности есть, но все функционирует.
Спорить не буду. Но себя знаю ошибок допустить не мог. Стаж радиолюбителя 40 лет! Знаменитый ПК Синклер и ПК рождённый в СССР из приложения к Журналу ЮТ, собрал одним из первых. Собирал всё тупо на гетинаксе.. проводами. О нормальных платах тогда и мечтать не стоило И оба ПК стартанули сразу. Так я не понял со способом подключения? Что там нормально? Как подключать правильно? В чём косяк был что читалось и писалось с ошибками?
Синклеры я помню, застал их в детстве, их тогда многие собирали, для себя и на продажу. Ошибку, конечно, в таком программаторе допустить сложно. А чем Вы его прошивали? У Вас высоковольтный программатор есть? Способ подключения странный, но тем не менее для данной прошивки контроллера правильный. Я писал уже, что за основу взял конвертер USB-SPI, как он назывался автором. Вот этот: http://www.recursion.jp/avrcdc/cdc-spi.html Насколько я понял, автор зачем-то сделал программатор не мастером, а слэйвом. В чем тут профит, я не особо понял, но тем не менее при таком подходе как раз перекрестное подключение и нужно. Так что это не косяк, а скорее фишка. А почему писало с ошибками - этого вот сказать пока не могу. Мне же нет резона Вас или кого-то еще обманывать, я пару лет им пользовался без всяких проблем.
Прграмматоров у меня дофига. Тиньку прошивал родным Тритоном, есть такой умный прогер разработанный нашим советским парнем Есть ещё http://www.rlocman.ru/shem/schematics.html?di=107017 запустился сразу и работает как часы. Есть и USBASP из поднебесной перешитый нормальной прошивкой. С вашим вариантом я так и не понял где косяки.
Если б у меня был программатор наподобие Тритона, я бы наверное и не заморачивался созданием новых Я так понял, он может спокойно программировать микроконтроллеры, у которых вывод RESET сконфигурирован как обычный вывод? Вообще я уже года три как перешел на микроконтроллеры MSP430 фирмы Texas Instruments. Они мне больше нравятся как-то, чем AVR или PIC.
Тритон действительно достойный девайс и поддержка есть всегда и прошивает почти все микрухи..и по SPI может ..только это не всегда удобно..доставать и подключать его .. Иногда нужно быстро и когда мало места на рабочем столе. Иногда нужно далеко и автономно ..не таскать же с собой всё оборудывание.
странно, если в тиньке аппаратный SPI, то как вообще она может работать в вашем варианте с перекрестием MISO и MOSI ? И смысл лезть в аппаратный SPI и менять местами данные? Спорить не буду, я верю что у вас работает всё нормально. У меня криво, возможно из за эмуляции COM порта . Я много использую разных девайсов подключаемых по USB с эмуляцией COM и есно много разных драйверов стоит. Возможно конфликт был на их уровне. Винда 7 может тоже влияет. Но не суть, разбираться больше не хочу, жалко убивать дольше время. А вам удачи!
Насколько я понял, контроллер программатора сконфигурирован как slave, так же, как и программируемый контроллер. А вот управление сигналом SCK осуществляется программным путем. Видимо, автор так задержку придумал делать, чтоб менять скорость программирования. В общем, такой вот Франкенштейн... Извините, что потратили столько времени впустую. Вам также удачи и всех благ!
ещё раз всё проверил и так, такое соединение не работает тинька 45 нога 5 с 17 меги 8 ...6 с 18 ...7 с 19..ну и есно ресет...так вроде правильно как всегда соединяют все ....но не работает....делаю так тинька 45 нога 5 с 18 меги 8...6 с 17 ...7 с 19 ...сразу автоопределяется правильно и читается и пишется....но! что читает хз ...50% верно 50% ошибок...сравнивал считанный нех с нех других проггеров с этой же меги 8...Короче всё криво работает. Щас попробую залить прошивку из темы что я давал выше ...
Работает как часы! Всё по правильному, как и везде подключаются одноимённые выводы. Без всяких перекрестий. Правда скорость медленная. Но у этого проггера выводы USB порта D+ и D- поменяны местами в отличии от твоего. Мож в этом засада если ты за основу брал его? Хотя твой в компе определился и дрова встали. Значит с портом USB у тебя порядок. В итоге так и оставил USBASP на меге 8 он в разы быстрее. А этот пусть в запасе будет.
спасибо за ответ...но увы потратив несколько часов сегодня на сборку сего чуда....в итоге тестов получил полнейшее разочарование...тупо черепаха а не программатор...чтение флешки 8 меги с 4 Мгц на борту 65 сек!!! запись 20 сек!!! тактовая 250 кгц...Походу зря понизили частоту тиньки ....на тактовой программатора 1МГц вообще молчит. Мне не понятна ваша фраза в начале статьи
Цитата
Во-первых, теперь тактовая частота сигнала SCK не 1 МГц, как это было ранее, а 250 кГц
тут о чём речь? о клоке проца или клоке программатора? На какой частоте тогда у вас работает проц? Если 1 Мгц, то зачем тогда выбор в программе клока программатора 1 Мгц? если верить вашему заключению о максимуме 250 кгц? Либо я что то не понимаю? И какой разговор может быть с такими скоростями программирования о меге 328....полдня ждать когда прошьётся и верефицируется? Жаль что так всё кривовато и сыровато ..идея то была хорошая...Кста вот http://www.rlocman.ru/shem/schematics.html?di=107017 этот проггер мегу 8 прошивает и верефицирует за 4 сек! при клоке 500 кГц...что то у вас совсем не так...не пойму где такие тормоза толи в совте толи в самом проггере...
Извините за потраченное время. Идея была в создании как можно более маленького и дешевого программатора. И увы, не обошлось без недостатков. Это уже сказываются ограничения эмуляции USB-интерфейса этим контроллером. В присланной Вами ссылке контроллер читает файл непосредственно из карты памяти, там конечно все намного быстрее. Насчет частоты сигнала SCK 1 МГц, ее можно использовать, если частота контроллера выше 4 МГц. Например, 8 или 16. Тогда будет прирост в скорости, попробуйте. В первой версии программатора по умолчанию была частота SCK 1МГц, и контроллеры определялись только после выбора более низкой частоты. Так что приходилось лишнее телодвижение делать.
отлично что вы хоть отвечаете ..мож чего и решим...:) первое с чем был косяк ...это MOSI и MISO...зачем вы их перекрещиваете когда прошиваете прогеер? Вроде всегда было MOSI на MOSI и MISO на MISO? вот доказательство http://microsin.net/programming/avr-working-with-usb/vusbtiny-avr-programmer.html и так вроде всегда и везде было MOSI проггера на MOSI прошиваемого контроллера.....ни каких перекрестий как в 232 порту..и мало того вы в прошивке самого чипа их перевернули зачем то...при включении как везде прогер не работает ..а если MOSI на MISO и MISO на MOSI то работает..мож отсюда и тормоза?
Так, что-то Вы меня совсем запутали. Завтра попробую на свежую голову разобраться. Что-то Вы говорите не то, но что - не пойму... Или и вправду я где-то ошибся.
да ошиблись! погуглите в сетке в ISP шине нет перекрестий как в 232 порту..тут всегда соединяются одноимённые выводы..да и ссылку я вам на похожий проггер давал вот ещё раз http://microsin.net/programming/avr-working-with-usb/vusbtiny-avr-programmer.html нету там перекрестий...а вы программно в прошивке контроллера перевернули.. в итоге порт контроллера MISO выполняет функцию MOSI а порт контролера MOSI выполняет функцию MISO. В этом я лично убедился когда игрался вашим проггером с мегой 8...если соединяю одноимённые как положенно везде то не работает...перекрещиваю MOSI и MISO работает...так что перепутали вы батенька..:) отсюда и тормоза...и не суть что USB порт эмулируется...в USBASP на меге 8 тоже эмулятор и ни чего нет таких жутких тормозов
Да, Вы правы. Но как же тогда оно вообще работает? Тогда не должно по идее... И при этом работает. Я посмотрел прошивку, там обычный аппаратный SPI без программной эмуляции. Вы не пробовали MISO и MOSI местами поменять? Не работает так?
В этом я лично убедился когда игрался вашим проггером с мегой 8...если соединяю одноимённые как положенно везде то не работает...перекрещиваю MOSI и MISO работает
Извините, сейчас у меня небольшой цейтнот наметился, не было вчера времени. Я залез в прошивку контроллера, там обычный аппаратный SPI без особых намеков на то, что он должен работать с перекрестием. Как будет время (я думаю - через неделю), попробую разобраться более детально, что не так. Дело в том, что я брал за основу устройство, разработанное Осаму Тамура, и особо не изменял его прошивку, только добавил возможность изменения скорости программирования.
собрал на тиньке 45 ...заработал сразу ...но пришло разочарование когда понял что мега 328 не поддерживается Странное упущение ..один из самых ходовых контроллеров на сегодня и нет его поддержки. Сделайте доброе дело добавьте МЕГУ328 пожалуйста. Не понятно с тактовой раньше была 1МГц щас 250кГц. на такой тактовой медленновато шиться будут весомые контроллеры. Хотя вы пишите что с завода контроллеры идут с тактовой 1 МГц ..не пойму в чём хитрость в 250 кГц? И потом в выпадающем списке тактовой частоты я смогу поменять на любую из тех что там есть? Или тактовая во второй версии жёстко прописана в тиньке 45?
Я когда этот программатор делал, о меге328 только еще слышали, но в глаза его не видели. Тогда самым ходовым был мега 8 Вы уже не первый, кто просит добавить, видимо таки придется тряхнуть стариной и снова залезть в этот жуткий программный код Насчет тактовой частоты. Вы путаете тактовую частоту процессора, которая действительно равна 1 МГц с тактовой частотой сигнала SCK, которая по спецификации должна быть в несколько раз ниже частоты процессора, так что 250 кГц - это максимально возможная стабильная частота программирования для процессора, работающего на 1 МГц. Из выпадающего списка можно выбрать любую доступную частоту, тут все по-честному. Но опять же, учтите, что Вы выбираете частоту сигнала SCK. Тактовую частоту процессора можно поменять при помощи фьюзов.
Здравствуйте! Я один и тот же контроллер атмеа 2313 прошивал Вашим программатором, понипрогом и AVR910. В дампе хекса, считанного с контроллера после программирования Вашим программатором видны ошибки и не хватает нескольких последних строк. Ко разьему программатора не подключено ничего, кроме пустой панельки на 28 ног (параллельно панельке на 20 ног)
Честно говоря, в таком случае я даже не знаю, что тут может быть, не приходилось сталкиваться. А такая проблема возникает на всех скоростях прошивки? Попробуйте снизить частоту тактового сигнала до 250-50 кГц.
Здравствуйте! Сделал Ваш программатор. Он нормально определился и я поставил дрова к нему. Но, к сожалению, почему-то он в микроконтроллер флеш- программу пишет с ошибками. Может быть, Вы подскажете, в чем может быть причина?
Здравствуйте! А другими программаторами пробовали прошивать тот же контроллер? Может, Вы подключили какие-то элементы к выводам MOSI, MISO или SCK, которые вносят ошибки?
А почему главное окно микропрога зависает в процессе программирования? Хотя программирование продолжается, после окончания которго оно снова оживает. Этого не происходит при первом программировании после запуска программы, а начиная со второго программирования без перезапуска программы - стабильно повторяется.
Вроде это не было бы проблемой, но есть одно очень, на мой взгляд неудобное "НО" в процессе отладки прошивок, когда чип приходится перешивать десятки раз - маленькое окошечко с сообщением об успешном программировании прячется где-то за главным окном и до него надо докапываться, поскольку чип начинает работать только после закрытия этого маленького окошечка, что не всегда даже удается т.к. иногда и само главное окно куда-то исчезает, следовательно приходится его закрывать через диспетчер процессов.
Как с этим бороться на WIN7? Пробовал запускать в режиме администратора - не помогает.
Вообще необходимости в этом маленьком окошечке на мой взгляд вообще нет, если чип благополучно прошился, так пусть прямо тут-же и запускается, а сообщение о результате можно вывести гденибудь в статусбаре, или еще где угодно.
И еще, нельзя ли сделать так, чтоб микропрог запоминал частоту и адрес файла, которые использовались в последний раз?
Простите что так долго не отвечал. Скажу честно, не знаю, что за глюк вызывает эту ошибку. Меня самого она раздражает. Хотя и проявляется не всегда на WinXP. Я уже приноровился вытаскивать маленькое окошко наверх при помощи Alt+Tab.
В WIN7 я с этой программой так и не работал. Специально держу у себя ХР для работы с контроллерами и программаторами.
Окошко убрать могу и совсем, это не проблема.
Насчет запоминания частоты и адреса файла. В принципе можно реализовать и это.
К сожалению, у меня сейчас совсем цейтнот, я как только разгребусь с делами, поисправляю эти баги.
С уважением, Сергей
P.S. Контроллер тоже добавить можно, если у него ничего не изменилось по сравнению с более старыми в реализации процесса программирования.