|
ATTINY10, Программирование, прошивка |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 26)
|
Apr 5 2011, 17:44
|

Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 8-12-09
Пользователь №: 54 138

|
Цитата(nicks80 @ Apr 5 2011, 12:51)  Уважаемые кто имел дело с этим контроллером? Планируется реализовать простой 1 проводной протокол. и программный ШИМ на 3 канала. и программировать на С а не на ASM. Я сделал диммер на tiny10 (ASM), правда у меня всего один PWM используется. Там ножек, которыми можно подрыгать всего 4, так что Вам попасть надо с первого раза, тк прийдется отключить reset. Разумно будет отладить на tiny2313, а потом уже портировать, или делайте сразу программатор с подачей 12V на reset. Родной AVRISPmkII равно как и JTAGICEmkII этого не могут, и надо слепить специальный адаптер. На фриксе есть схемка и обсуждение http://www.avrfreaks.net/index.php?name=PN...ic&p=679616 - может пригодится. Я себе пока не делал, нет нужды, но максик 622 на всякий случай прикупил  Вот тока у меня одна проблема: где бы ZIF панельку под такой чип раздобыть, а то при массовом производстве припаивать сопли както напрягает  Вы об этом не думали? Может есть идеи? Ставить разъем для внутрисхемного программирования както не хочется - он ведь больше контроллера получается, вся прелесть миниатюрности теряется Еще один ньюанс замечен - если использовать вывод reset как выход, амплитуда на нем почти на 1V меньше (при питании +3.3V). Для меня это было не критично, но имейти ввиду. Если есть вопросы, вопрошайте. Макетка еще не разобрана, могу даже ченить проверить.
|
|
|
|
|
Apr 7 2011, 23:21
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(nicks80 @ Apr 5 2011, 12:51)  Уважаемые кто имел дело с этим контроллером? Планируется реализовать простой 1 проводной протокол. и программный ШИМ на 3 канала. и программировать на С а не на ASM. Советую использовать tiny13A. tiny10 давненько снят с производства (вот смотрю AVR Technical Library за 2006-й год, его уже там нет). В tiny13 есть встроенный debugWire и памяти 64 байта, плюс более быстрый internal oscillator (9.6Mhz), поддерживается в IAR и в WinAvr. возможно если отдать почти всю память под стеки и аккуратно промониторить глубину вызовов, то может быть что-то и получится на C.... Иначе пишите лучше на ASM, это как раз тот случай когда ASM более уместен чем Си, если взвесить все за и против. Цитата Разумно будет отладить на tiny2313, а потом уже портировать с толстого контроллера переходить на более мелкий - часто чревато огромным разочарованием, когда как не крути код не укладывается.. На мой взгляд когда речь идет о программировании таких крошек как tiny10 - Си надо забыть и программу писать исключительно на ASM и сразу под целевой МК. В контроллере всего __512 слов__ памяти программ, какие компиляторы? какие Си?!
|
|
|
|
|
Apr 7 2011, 23:33
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(defunct @ Apr 8 2011, 03:21)  Советую использовать tiny13A. tiny10 давненько снят с производства (вот смотрю AVR Technical Library за 2006-й год, его уже там нет). А это ничего, что в 2009-м году даташит на него еще был premilinary ? Цитата На мой взгляд когда речь идет о программировании таких крошек как tiny10 - Си надо забыть и программу писать исключительно на ASM и сразу под целевой МК. В контроллере всего __512 слов__ памяти программ, какие компиляторы? какие Си?! А в первую очередь - исходя из задачи. Три канала программного PWM - только asm, с оптимизацией каждого такта, и лишь тогда получится хоть что-то более-менее съедобное...
|
|
|
|
|
Apr 8 2011, 00:03
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(rx3apf @ Apr 8 2011, 02:33)  А это ничего, что в 2009-м году даташит на него еще был premilinary ? Приношу извинения, я его спутал с tiny11. tiny10 действительно был анонсирован только в 2009-м, поэтому его и нет в AVR Tech Library за 2006-й год. Цитата(rx3apf @ Apr 8 2011, 02:33)  А в первую очередь - исходя из задачи. Три канала программного PWM - только asm, с оптимизацией каждого такта, и лишь тогда получится хоть что-то более-менее съедобное... Там (и в tiny10 и в tiny13) есть таймер с OCRA и OCRB т.е. вполне реально сделать 3 канала и даже больше каналов на Си с высокой точностью и без особого напряга для проца - методом сортировки событий программируя OCRA / OCRB поочередно на следующий event. В одной из тем такой способ уже приводил. Меня здесь больше настораживает "простой" 1-wire протокол. Из практики, как раз реализация, как по-началу кажется "простого" протокола управления может занимать до 9/10 кода проекта.
|
|
|
|
|
Apr 8 2011, 04:05
|

Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 8-12-09
Пользователь №: 54 138

|
Цитата(defunct @ Apr 8 2011, 03:03)  Приношу извинения, я его спутал с tiny11. Там (и в tiny10 и в tiny13) есть таймер с OCRA и OCRB т.е. вполне реально сделать 3 канала и даже больше каналов на Си с высокой точностью и без особого напряга для проца - методом сортировки событий программируя OCRA / OCRB поочередно на следующий event. В одной из тем такой способ уже приводил. Вы даташит хоть посмотрите. Корпус SOT23-6 = всего 6 ног, из которых -2 земля+питание = остается 4. Одна для однопроводного управления = в сухом остатке 3 ножки. Вопрос: как Вы сможете сделать больше 3-х каналов PWM? Даже для 3-х каналов прийдется "отрубить" reset, что пртводит к трудностям, о которых я уже писАл.
|
|
|
|
|
Apr 8 2011, 07:45
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(defunct @ Apr 8 2011, 04:03)  Там (и в tiny10 и в tiny13) есть таймер с OCRA и OCRB т.е. вполне реально сделать 3 канала и даже больше каналов на Си с высокой точностью и без особого напряга для проца - методом сортировки событий программируя OCRA / OCRB поочередно на следующий event. Не реально, на самом деле. Когда речь идет о управлении LED, разрядность должна быть высокая, частота большая, и ничего хорошего не получается. Я пробовал - оказалось, что один обработчик и три программных PWM работают быстрее. Цитата Меня здесь больше настораживает "простой" 1-wire протокол. Из практики, как раз реализация, как по-началу кажется "простого" протокола управления может занимать до 9/10 кода проекта. Тривиально. Я, например, применил самосинхронизирующееся бифазное кодирование (что позволяет в очень широких пределах варьировать битовую скорость). Синхробайт, адресат, содержание, CRC.
|
|
|
|
|
Apr 8 2011, 13:26
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(nk@ @ Apr 8 2011, 07:05)  Вы даташит хоть посмотрите. Смотрел, и как это влияет на мой пост о производительности? Цитата Вопрос: как Вы сможете сделать больше 3-х каналов PWM? Даже для 3-х каналов прийдется "отрубить" reset, что пртводит к трудностям, о которых я уже писАл. Очевидно буду использовать все имеющиеся 4 в tiny10 или все 6 в tiny13 GPIO. Вообще не надо приплетать ножки когда речь идет о производительности и вылизывании кода программного PWM "до такта" на асм, либо использования более продвинутого алгоритма на C. Цитата(rx3apf @ Apr 8 2011, 10:45)  Не реально, на самом деле. Когда речь идет о управлении LED, разрядность должна быть высокая, частота большая, и ничего хорошего не получается. Я пробовал - оказалось, что один обработчик и три программных PWM работают быстрее. для управления яркостью LED хватит 60Гц, какую вам надо разрядность? 10 бит -> 66kHz, 12bit -> 246kHz. Заметьте, прерывания в системе по моему способу будут идти с частотой в 60Гц * (Fd / разрядность таймера), где Fd/разрядность таймера не меньше 1, Fd - частота PWM (66kHz 10bit, 246kHz 12bit и т.д.). для МК на 9.6Mhz с прерываниями только от одного таймера это как семечки пощелкать. МК будет курить 99% процентов веремени на 3-х каналах.
|
|
|
|
|
Apr 8 2011, 15:48
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(defunct @ Apr 8 2011, 17:26)  для управления яркостью LED хватит 60Гц, Это только так кажется. Тому, кто никогда не пробовал. Реально - и 200 Hz маловато (при малой яркости). 60 - ну это примерно как лампочка через диод, стробоскоп для дискотеки. Цитата какую вам надо разрядность? 10 бит -> 66kHz, 12bit -> 246kHz. Это что за альтернативная арифметика такая, что с ростом разрядности частота дискретизации растет ? Цитата Заметьте, прерывания в системе по моему способу будет идти с частотой в 60Гц * (Fd / разрядность таймера), где Fd/разрядность таймера не меньше 1, Fd - чатота PWM (66kHz 10bit, 246 12bit и т.д.). для МК на 9.6Mhz с прерываниями только от одного таймера это что семечки пощелкать. МК будет курить 99% процентов веремени на 3-х каналах. Ну вот когда попробуете сделать реально, там и увидите, кто и что будет курить. На tiny10 чуть проще, потому как таймер 16-битный, на tiny13 с 8-битным - получилось очень грустно. Намекну, что шкала логарифмическая, на начальном участке разрешение критично, и если отчесты для разных каналов близки, но не равны, будет совсем плохо.
|
|
|
|
|
Apr 8 2011, 16:02
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(rx3apf @ Apr 8 2011, 18:48)  Это только так кажется. Тому, кто никогда не пробовал. Реально - и 200 Hz маловато (при малой яркости). 60 - ну это примерно как лампочка через диод, стробоскоп для дискотеки. 50 гц уже не видно на глаз, 60 тем более. Не надо сказок про 200 hz. Плюс никто не мешает поставить ФНЧ на выходе шима. Цитата что с ростом разрядности частота дискретизации растет ? Естессно растет. 60Hz * 2^10, и 60Hz * 2^12. 66kHz / 1024 = 60Hz, 246kHz / 4096 = 60Hz. Цитата Намекну, что шкала логарифмическая, на начальном участке разрешение критично, и если отчесты для разных каналов близки, но не равны, будет совсем плохо. Это я в курсе, но лично мне выше 8-битной разрядности для светодиодов пока было не нужно. Табличка в 256 элементов рулит.
|
|
|
|
|
Apr 8 2011, 16:24
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(defunct @ Apr 8 2011, 20:02)  50 гц уже не видно на глаз, 60 тем более. Не надо сказок про 200 hz. Включите лампочку накаливания через диод и посмотрите, как оно "не видно". 50 Hz при половинной яркости. А 200 Hz при 10-процентной яркости с безинерционным светодиодом - очень даже видно. Я сделал порядка 270 Hz (OSCCAL на максимум) - и все равно боковым зрением заметно при малой яркости. Цитата Плюс никто не мешает поставить ФНЧ на выходе шима. Ню-ню... Цитата Естессно растет. 60Hz * 2^10, и 60Hz * 2^12. 66kHz / 1024 = 60Hz, 246kHz / 4096 = 60Hz. Это растет _требуемая_ частота дискретизации. А реально достижимая (при ограниченной тактовой) - падает. При тактовой 9.6 MHz 8-битный PWM - меньше 40 kHz. Цитата Это я в курсе, но лично мне выше 8-битной разрядности для светодиодов пока было не нужно. Табличка в 256 элементов рулит. Вообще бред. 8-битная разрядность хорошо если 16 градаций яркости обеспечит, зачем там 256 элементов ?
|
|
|
|
|
Apr 9 2011, 04:20
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(rx3apf @ Apr 8 2011, 19:24)  Это растет _требуемая_ частота дискретизации. А реально достижимая (при ограниченной тактовой) - падает. При тактовой 9.6 MHz 8-битный PWM - меньше 40 kHz. Говорим про одно и то же только с разных сторон. Я говорю про требуемую частоту дискретизации для заданной частоты шим и заданной разрядности, потому как обычно у меня выполняется не только ШИМ, точнее ШИМ это как правило второстепенная задачка, которой позволено пользовать не более 5% ресурса МК.. Вы же подходите с другой стороны - "какая частота шим получится при заданной тактовой", вероятно кроме ШИМ ваш МК больше ничего не делает. В атаче набросал пример программного 8-ми канального PWM с профайлером (под mega16 на STK500, порт B подключен к светодиодам - которые зажигаются низким уровнем) В примере задан 11-ти битный PWM, но разрядность можно легко поменять, см. параметры функции pwm_Init(). Код писан без особых оптимизаций, баги тоже вероятно все не отловил, глубину прерываний оценивал вообще на глаз +/- 100 тактов. При этом работает прекрасно. При тактировании МК 8Mhz - частота PWM в примере будет ~60Гц, если заметите мерцания - поздравляю, можете записываться в космонавты, т.к. ваше зрение явно лучше 1.0. Профайлер показывает 7.6млн свободных циклов в секунду, т.е. как и говорил ранее МК более 90% времени просто курит. Удачи.
|
|
|
|
|
Apr 9 2011, 09:24
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(defunct @ Apr 9 2011, 08:20)  Вы же подходите с другой стороны - "какая частота шим получится при заданной тактовой", вероятно кроме ШИМ ваш МК больше ничего не делает. Хватает ресурсов, чтобы принимать еще и управляющие команды. А на большее - там просто уже ничего нет... Цитата При тактировании МК 8Mhz - частота PWM в примере будет ~60Гц, если заметите мерцания - поздравляю, можете записываться в космонавты, т.к. ваше зрение явно лучше 1.0.  Посмотрите на китайские светодиодные гирлянды (фазовое управление на 100 Hz) - если не видите мерцание при малых яркостях - надо обратиться к окулисту. Аналогично с дешевыми светодиодными с емкостным балластом - мерцание совершенно дикое. Что же до "набросков" - совершенно не интересно. Вот когда попробуете реализовать "железе", поймете, что теория теорией, а вот к реальной жизни это отношения не имеет.
Сообщение отредактировал rx3apf - Apr 9 2011, 09:27
|
|
|
|
|
Apr 9 2011, 15:45
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(rx3apf @ Apr 9 2011, 12:24)  Вот когда попробуете реализовать "железе", поймете, что теория теорией, а вот к реальной жизни это отношения не имеет. Пример сделан и проверен в железе. 8 живых каналов - с индивидуальным управлением работают, просто залейте проект в m16 на STK500 и убедитесь. Если что-то непонятно - спрашивайте, т.к. почистить и откоментировать все не было времени. PS: говорить "теория теорией" когда в атаче живой проект, кроме неуважения к чужому труду больше ничего не показывает. Цитата Что за профайлер? Позвольте полюбопытствовать. Измеряет количетство холостых циклов.
|
|
|
|
|
Apr 11 2011, 18:48
|
Частый гость
 
Группа: Участник
Сообщений: 168
Регистрация: 14-02-10
Пользователь №: 55 490

|
Цитата(nk@ @ Apr 10 2011, 18:23)  Может кто-нибудь просветИт нас насчет поддержки этих чипов другими, самодельными программаторами? Это будет по теме. там
--------------------
#define TRUE (4==(2*2))
|
|
|
|
|
Apr 14 2011, 15:52
|
Частый гость
 
Группа: Участник
Сообщений: 97
Регистрация: 18-10-07
Пользователь №: 31 485

|
Вот что сделал на ATtiny13 3 ноги под RGB шим 1 нога для приема и передачи + эмиттерный повторитель. Реализовал поиск устройств на 1проводной шине при условии что серийный номер уникальный. бинарный поиск. памяти всего хватает. 20-28 байт рам памяти. программа 800 байт. теперь надо под ATtiny10 заточить прграмма кстати на С) Цитата(nk@ @ Apr 10 2011, 19:23)  Мда, как ловко тема с tiny10 сползла на m16. Флуд абсолютно бессмысленный пошел. У топикстартера ни слова не было про светодиоды, а вы уже китайские гирлянды развесили Предлагаю обсудить новый интерфейс для программирования - TPI. У меня AVRISPmkII "заапгрейдился" студией и теперь умеет программить tiny4/5/9/10. Может кто-нибудь просветит нас насчет поддержки этих чипов другими, самодельными программаторами? Это будет по теме. Вот этот программатор? http://www.terraelectronica.ru/catalog.php...e=2&PageS=1как обгрейдить? и какие ноги у программатора в TPI интерфейсе используются. Можно поподробней уж очень надо. очень буду благодарен. ps...И пишите по теме в теме.
Сообщение отредактировал nicks80 - Apr 14 2011, 15:54
|
|
|
|
|
Dec 8 2011, 18:03
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 22-01-10
Из: Kiev
Пользователь №: 55 001

|
Для ISP слишком мало ножек! Atmel придумал новый интерфейс - TPI. Его поддерживают новые прошивки AVRISPmkII - это фирменный USB программатор за 50$, есть у любого дилера или в китайских магазинах за треть цены.
|
|
|
|
|
Dec 13 2011, 17:30
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 22-01-10
Из: Kiev
Пользователь №: 55 001

|
Что-то непонятна скорость SPI_RESET через 1мкФ, но БУРАТИНО, обязательно доложись! А я могу подарить парочку тини10 для опытов. (044) 458-8760 Юрий. Интересно, что там в описании - высоковольтный SPI для t13 - t24 получается?
|
|
|
|
|
Aug 30 2012, 13:42
|

Профессионал
    
Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215

|
Цитата(usav @ Dec 13 2011, 20:30)  Что-то непонятна скорость SPI_RESET через 1мкФ, но БУРАТИНО, обязательно доложись! А я могу подарить парочку тини10 для опытов. (044) 458-8760 Юрий. Интересно, что там в описании - высоковольтный SPI для t13 - t24 получается? Да, конденсатор 1мкФ там не нужен, и резистор также. Но справедливости ради скажу что контроллер шился  По теме: спаял девайс, прошил его, добавил стабилитроны на входы, но к сож. программатор не завелся  ((((((9 http://electronix.ru/forum/index.php?showtopic=96328Что касается 3х каналов ШИМ, то с тинькой десятой интересно получается: есть 2 аппаратных ШИМ канала, но блин для третьего нет никакой функциональности! Можно отказаться от аппаратных каналов и использовать таймер для хитрых алгоритмов используя этот один 16ти битный таймер (что-то там о сортировке событий вещали выше), но блин не правильно это как-то..
--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
|
|
|
|
|
Sep 6 2012, 06:08
|

Профессионал
    
Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215

|
Программирование ATtyny10 Купил клон USBasp. Продавец по моей просьбе прошил девайс новой прошивкой с сайтаСкачал AVRDUDE последнюю, убедился в программной поддержке отдельно программатора USBasp, и отдельно в поддержке TPI интерфейса ,однако достоверной информации по поводу поддержки цепочки AVRDUDE-USBasp-TPI у меня нет. Спаял на макетке ус-во, подключил MOSI на ТPI_DATA, SCK на TPI_SCK, Reset на Reset. Земли программатора и ус-ва связаны. Запитал 5ю вольтами контроллер, подключил программатор и вижу вот это: Где я ошибся? Спасибо!
Эскизы прикрепленных изображений
--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|