реклама на сайте
подробности

 
 
> микро бутлоадер для ATtiny. Существует ли такое?
pt200
сообщение Jun 25 2009, 06:37
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 19-05-09
Пользователь №: 49 263



Перемудрил атмел с интерфейсом программирования для тинек( слишком много ног требуется -> большой разьем для программирования).

Хочется чегото более удобного, например по 1му проводу.

А то сейчас приходится пользоваться тиньками в дип корпусе и перетыкивать программатор<->устройство.
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 21)
GDI
сообщение Jun 25 2009, 06:50
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



На avrfreaks видел такой проект, только повторно найти мне его не удалось, может у вас получится.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
forever failure
сообщение Jun 25 2009, 06:56
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 256
Регистрация: 6-03-05
Из: Екатеринбург
Пользователь №: 3 112



Сериальный программатор считается использовать [CENSORED] ? -Это раз.
О каких тиньках идёт речь, некотроые их виды имеют только HV режим программирования, так что кроме как через панельку - больше никак. - Это два.
Ну и сколько кода отъест более-менее вменяемый загрузчик, и сколько останется под приложение, если общий объем флэша 1 кБ ? - Это три.

Сообщение отредактировал IgorKossak - Jun 25 2009, 11:50
Причина редактирования: Грубое выражение
Go to the top of the page
 
+Quote Post
pt200
сообщение Jun 25 2009, 07:06
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 19-05-09
Пользователь №: 49 263



Цитата(forever failure @ Jun 25 2009, 10:56) *
Сериальный программатор считается использовать фпадлу по морально-этическим-религиозным соображениям ? -Это раз...

ISP чтоли?
Если да то 4 пина из 6 доступных использовать проблематично становится + разьем на 5-6 пин тоже немаленький
Цитата(forever failure @ Jun 25 2009, 10:56) *
...О каких тиньках идёт речь, некотроые их виды имеют только HV режим программирования, так что кроме как через панельку - больше никак. - Это два...

13, 25 ... 8ми ногие корпуса. А как выйдет 10я так вообще караул будет все ноги под программирование smile.gif
Цитата(forever failure @ Jun 25 2009, 10:56) *
...Ну и сколько кода отъест более-менее вменяемый загрузчик, и сколько останется под приложение, если общий объем флэша 1 кБ ? - Это три.

Вменяемость разная бывает. Навскидку подозреваю что и в 256 байт может влезть.

Сообщение отредактировал pt200 - Jun 25 2009, 07:09
Go to the top of the page
 
+Quote Post
ARV
сообщение Jun 25 2009, 07:14
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



вот мне давали ссылку http://caxapa.ru/thumbs/135932/AVRootloader_v2.0.zip
если отключить криптографию и всякие навороты типа чтения/записи EEPROM, то компилируется в 340 байт кода - 33,2% от памяти attiny13. поддерживается прошивка по одной линии. UART программный. всего поддерживается очень много МК. рекомендую smile.gif
для нормальной меги я проверял - работает отлично smile.gif

P.S. да, может подкатить небольшая трабла: т.к. используется UART, то желателен кварц для тактирования, а у тини не так много ног для этого. а с тактированием от встроенного RC могут быть проблемы.


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
dimka76
сообщение Jun 25 2009, 07:17
Сообщение #6


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



Цитата(pt200 @ Jun 25 2009, 11:06) *
ISP чтоли?
Если да то 4 пина из 6 доступных использовать проблематично становится + разьем на 5-6 пин тоже немаленький

13, 25 ... 8ми ногие корпуса. А как выйдет 10я так вообще караул будет все ноги под программирование smile.gif

Вменяемость разная бывает. Навскидку подозреваю что и в 256 байт может влезть.


у тинек есть интерфейс debug-WIRE, он однопроводный


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
pt200
сообщение Jun 25 2009, 07:24
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 19-05-09
Пользователь №: 49 263



Цитата(dimka76 @ Jun 25 2009, 11:17) *
у тинек есть интерфейс debug-WIRE, он однопроводный

А шить то по нему можно?
Go to the top of the page
 
+Quote Post
muravei
сообщение Jun 25 2009, 07:27
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(pt200 @ Jun 25 2009, 11:06) *
ISP чтоли?
Если да то 4 пина из 6 доступных использовать проблематично

А поставить резисторы , 0,5-1,5 кОм тоже проблематично?
А разъмы тут народ уменьшал до полного отсутствия их. smile.gif
Go to the top of the page
 
+Quote Post
Visor
сообщение Jun 25 2009, 07:42
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 240
Регистрация: 23-03-07
Пользователь №: 26 428



Про FUSE не забудьте, их загрузчиком не зашьёшь.
Go to the top of the page
 
+Quote Post
dimka76
сообщение Jun 25 2009, 08:08
Сообщение #10


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



Цитата(pt200 @ Jun 25 2009, 11:24) *
А шить то по нему можно?


Можно только FLASH и EEPROM.
FUSE он не шьет. Их придется по SPI. Но бутлоадер тоже первоначально по SPI надо грузить.


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
Deka
сообщение Jun 25 2009, 08:09
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 248
Регистрация: 18-07-06
Из: Сочи
Пользователь №: 18 890



Вот бут какой-то валялся в моих закромах. Как работает не разбирался. Сколько занимает места тоже. Скачано скорее всего с avrfreaks. Отзывы приветствуются.
P.S.
Мдя... архивчик-то не цепляется... Кому надо - в личку или асю.
Go to the top of the page
 
+Quote Post
pt200
сообщение Jun 25 2009, 08:48
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 19-05-09
Пользователь №: 49 263



Цитата(dimka76 @ Jun 25 2009, 11:17) *
у тинек есть интерфейс debug-WIRE, он однопроводный

Хороший вариан. Только дороговатый.

Загрузчики посмотрел. Неахти: 2 пина, высокая частота( желательно кварц)
Go to the top of the page
 
+Quote Post
777777
сообщение Jun 25 2009, 09:02
Сообщение #13


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(pt200 @ Jun 25 2009, 11:06) *
ISP чтоли?
Если да то 4 пина из 6 доступных использовать проблематично становится + разьем на 5-6 пин тоже немаленький

13, 25 ... 8ми ногие корпуса. А как выйдет 10я так вообще караул будет все ноги под программирование smile.gif

А откуда появился такой предрассудок, что ноги, используемые для программирования, больше ни для чего использовать нельзя? Программирование контроллера и его работа происходят в разное время и одно другому (почти) никак не мешает.

Если во время работы ноги, используемые для программирования, являются выходами, то следовательно подключены ко входам других микросхем и следовательно программатор ничем не помешает. Если же они подключены к выходам, то возможны варианты. Например, выходы некоторых микросхем переходят в третье состояние если на микросхему подать сброс; программатор его подает, следователно если этот сброс завести и на ту микросхему тоже, то она не помешает программированию. Если третье состояние отсутствует, то можно поставить джампер. Если не хочется, можно сигнал завести на контроллер через резистор достаточно большой, чтобы не нагрузить программатор. Даже вывод сброса можно использовать для работы - правда, запрограммировать тогда удастся только один раз.
Go to the top of the page
 
+Quote Post
pt200
сообщение Jun 25 2009, 09:42
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 19-05-09
Пользователь №: 49 263



Цитата(777777 @ Jun 25 2009, 13:02) *
А откуда появился такой предрассудок, что ноги, используемые для программирования, больше ни для чего использовать нельзя? Программирование контроллера и его работа происходят в разное время и одно другому (почти) никак не мешает.......

Так я ж написал что проблематично, а не низя.
Например бываю такие нагрузки которыми бездумно( при программировании) щелкать нельзя.
Про дополнительные микросхемы и джамперы т.д. см. выше( про размеры).
Go to the top of the page
 
+Quote Post
defunct
сообщение Jun 25 2009, 10:27
Сообщение #15


кекс
******

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



Цитата(pt200 @ Jun 25 2009, 10:24) *
А шить то по нему можно?

Можно, если предварительно запрограммировать фуз dwEn, ISP программатором.
Go to the top of the page
 
+Quote Post
777777
сообщение Jun 25 2009, 10:59
Сообщение #16


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(pt200 @ Jun 25 2009, 13:42) *
Так я ж написал что проблематично, а не низя.
Например бываю такие нагрузки которыми бездумно( при программировании) щелкать нельзя.

А если завести на них сброс?

...а резисторы бывают в SMD корпусах smile.gif

Сообщение отредактировал 777777 - Jun 25 2009, 11:00
Go to the top of the page
 
+Quote Post
ЛеонидК
сообщение Jun 25 2009, 11:52
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 27-01-09
Пользователь №: 44 027



Существует TinyLoader для загрузки по одному проводу.
Портированый для КПК (http://4pda.ru/forum/index.php?showtopic=70782&hl=AVR)
Go to the top of the page
 
+Quote Post
pt200
сообщение Jun 25 2009, 11:58
Сообщение #18


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 19-05-09
Пользователь №: 49 263



Вот набросал на досуге( правда нада отладить еще) для IARа. ( тактовая 128К)
Код
#define TB_BIT_IO    BIT0
#define TB_PIN_IO    PINB
#define TB_DDR_IO    DDRB
#define TB_PORT_IO   PORTB
#define TB_PASS      0xB63A
#pragma location="BootLoader"
uint8 __tinyBootloader_RX_bit( void)
{
  uint8 ret = 0;
  while( TB_PORT_IO & TB_BIT_IO){}                                              //Wait '0'
  __delay_cycles( 30);
  if( TB_PORT_IO & TB_BIT_IO)                                                   // RX = 1
    ret = 0x01;
  while( !( TB_PORT_IO & TB_BIT_IO)){}                                          //Wait '1'
  return ret;
}
#pragma location="BootLoader"
void __tinyBootloader_TX_bit( uint8 q)
{
  while( TB_PORT_IO & TB_BIT_IO){}                                              //Wait '0'
  if( !q)                                                                       // TX = 0
  {
    TB_PORT_IO &= ~TB_BIT_IO;
    TB_DDR_IO  |=  TB_BIT_IO;
    __delay_cycles( 50);
    TB_DDR_IO  &= ~TB_BIT_IO;
    TB_PORT_IO |=  TB_BIT_IO;
  }
  __delay_cycles( 30);
  while( !( TB_PORT_IO & TB_BIT_IO)){}                                          //Wait '1'
}
#pragma location="BootLoader"
void tinyBootloader( void)
{
  uint8 q;
  uint16 addr, data;

  __watchdog_reset();
  
//  if( MCUSR ... XXXXXXXXX) // IF reset || PORF
//    return;

  // Init IO pin
  TB_DDR_IO  &= ~TB_BIT_IO;
  TB_PORT_IO |=  TB_BIT_IO;
  __delay_cycles( 16);
  
// -------------------- Cheking START BootLoader ------------------------------- ???????????
  // Wait '0'                                                                    ???????????
  q = 128;                                                                    // ???????????
  while( TB_PORT_IO & TB_BIT_IO)                                              // ???????????
  {                                                                           // ???????????
    if( --q == 0) // TimeOut                                                  // ???????????
      return;                                                                 // ???????????
  }                                                                           // ???????????
// -------------------- Connecting ---------------------------------------------
  // Wait PASS
  __watchdog_reset();
  WDTCR |= BIT4 | BIT3;//( 1 << WDCE) | ( 1 << WDE);
  WDTCR  = BIT3 | BIT2;//( 1 << WDE); // ~0.25 s
  data = 0;
  do
  {
    data <<= 1;
    data |= __tinyBootloader_RX_bit();
  }
  while( data != TB_PASS);
  // Confirm PASS
  __watchdog_reset();
  for( q = 16; q; q--)
  {
    __tinyBootloader_TX_bit( ( data & 0x8000));
    data <<= 1;
  }
// -------------------- Programming --------------------------------------------
  // Program FLASH
  __watchdog_reset();
  for( addr = 0; addr < 0x300; addr += 2)
  {
    for( q = 16; q; q--)
    {
      data <<= 1;
      data |= __tinyBootloader_RX_bit();
    }
    __AddrToZWordToR1R0ByteToSPMCR_SPM( ( void __flash*)addr, data, 1);         // Fill Flash buffer
    if( ( ( addr & 0xFF) & 0x0F) == 0x0E) //Page
    {
      __AddrToZByteToSPMCR_SPM( ( void __flash*)addr, 3);                       // Erase Page
      __AddrToZByteToSPMCR_SPM( ( void __flash*)addr, 5);                       // Write Page
    }
    __watchdog_reset();
  }
}



Принцип 1Ware с другими таймингами. Программатор( железо) будет простое: TXD(TTL) через диод к пину, RXD(TTL) к нему же напрямую. Скорость порта 9600 по прикидкам.
Впринципе до 256 байт еще недотягивает, так что можно приделать подтверждение постраничное......
Подготовку таблицы векторов доверю программе на РС.

Люди, кто писал бутлоадеры, посоветуйте чего нибудь полезного.

Сообщение отредактировал pt200 - Jun 25 2009, 12:23
Go to the top of the page
 
+Quote Post
ЛеонидК
сообщение Jun 25 2009, 12:48
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 27-01-09
Пользователь №: 44 027



TinyLoader для желающих.
.exe для КПК.
В .pdf есть все для Delphi.
Прикрепленные файлы
Прикрепленный файл  Loader.zip ( 253.47 килобайт ) Кол-во скачиваний: 82
 
Go to the top of the page
 
+Quote Post
GDI
сообщение Jun 25 2009, 13:45
Сообщение #20


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Вот сказали название, так я и нашел тот проект http://tinyloader.kasperkp.dk/TinyLoaderBr10.zip


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jun 25 2009, 17:07
Сообщение #21


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(GDI @ Jun 25 2009, 09:50) *
На avrfreaks видел такой проект, только повторно найти мне его не удалось, может у вас получится.
Этот? Все то обсуждение не читал, просто название в глаза бросилось.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
GDI
сообщение Jun 26 2009, 06:31
Сообщение #22


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Цитата(Сергей Борщ @ Jun 25 2009, 21:07) *
Этот? Все то обсуждение не читал, просто название в глаза бросилось.

Нет, тут просто форум, причем, ветка начинается с вопроса, "есть ли в природе маленький бутлоадер".
Тот был оформлен в виде проекта и в описании была ссылка которую я выше приводил, в архиве есть описание и исходники для АВР и WIN32.
Цитата из описания:
Цитата
Code size is 48 words.
Works from the on-chip oscillator.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 00:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.01584 секунд с 7
ELECTRONIX ©2004-2016