Difference between revisions of "Lbcontrol Ru"

From ElphelWiki
Jump to: navigation, search
(описание переменной LINEBUF_SIZE)
(описание ключей программатора для версии 333 камеры.)
 
(11 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
Описание на английском [[lbcontrol]]
 +
 
Внутрисхемный программатор для программирования платы объектива - lbcontrol
 
Внутрисхемный программатор для программирования платы объектива - lbcontrol
  
 
Для программирования используются сигналы  
 
Для программирования используются сигналы  
  |            плата объектива
+
      плата камеры |            плата объектива
  | Разъем        Сигнал      Порт        Пин
+
  Разъем Сигнал    | Разъем        Сигнал      Порт        Пин
| W301          RESET      PB7        11
+
  J2-3  EXT_RST  | W301          RESET      PB7        11
| W302          XTAL1      PB4          7
+
  J2-4  EXT_CLK  | W302          XTAL1      PB4          7
| W303          SCK        PB2        32
+
  J2-5  EXT_EXPOS | W303          SCK        PB2        32
| W304          MISO        PB1        31
+
  J2-1  EXT_SCL  | W304          MISO        PB1        31
| W305          MOSI        PB0        30
+
  J2-2  EXT_SDA  | W305          MOSI        PB0        30
 +
 
 +
/!\ Сигнал EXT_EXPOS который используется для синхронизации передаваемых данных, является инвертированным по выходу. Т.е. чтобы получить на выходе 1, в регистр надо писать чтобы установить 0 (пока нашел в чем проблема, потерял 1 день, спасибо логическому анализатору).
 +
Это верно для 313 модели, для 333 модели все работает без инверсии.
 +
 
 +
 
 +
Использование для 313 модели
 +
 
 +
  lbcontrol [опции]
 +
    -wf file      записать образ из файла во flash (память программ)
 +
    -rf file      прочитать память программ и записать образ в файл
 +
    -we file      записать образ из файла в EEPROM (энергонезависимая память данных)
 +
    -re file      прочитать EEPROM и записать образ в файл
 +
    -e            стереть МК, стираются и flash и EEPROM
 +
    -RE addr      прочитать байт из EEPROM по адресу addr
 +
    -WE addr byte  записать байт в EEPROM по адресу addr
 +
    -rl            прочитать lock биты
 +
    -wl byte      записать lock биты (0xFF - разрешить программирование и чтение МК (по умолчанию); 0xFE - запретить программирование, чтение разрешено; 0xFC - программирование запрещено, чтение запрещено)
 +
    -rc            прочитать байт калибровки внутреннего RC генератора
 +
    -rs            прочитать опознавательную сигнатуру МК
 +
    -ruh          прочитать старший байт fuse
 +
    -wuh byte      записать старший байт fuse
 +
    -rul          прочитать младьший байт fuse
 +
    -wul byte      записать младьший байт fuse
 +
    -h            помощь
 +
 
 +
Использование для 333 модели
 +
 
 +
  lbcontrol [опции]
 +
    --debug n или -d n    установка уровня детализации сообщений при отладке
 +
    --wf file              записать образ из файла во flash (память программ), старются FLASH и EEPROM
 +
    --rf file              прочитать память программ и записать образ в файл
 +
    --we file              записать образ из файла в EEPROM (энергонезависимая память данных)
 +
    --re file              прочитать EEPROM и записать образ в файл
 +
    --erase или -e        стереть МК, стираются и flash и EEPROM
 +
    --RE addr              прочитать байт из EEPROM по адресу addr
 +
    --WE addr --byte byte  записать байт в EEPROM по адресу addr
 +
    --rl                  прочитать lock биты - работает
 +
    --wl byte              записать lock биты (0xFF - разрешить программирование и чтение МК (по умолчанию); 0xFE - запретить программирование, чтение разрешено; 0xFC - программирование запрещено, чтение запрещено)
 +
    --rc                  прочитать байт калибровки внутреннего RC генератора
 +
    --rs                  прочитать опознавательную сигнатуру МК
 +
    --ruh                  прочитать старший байт fuse
 +
    --wuh byte            записать старший байт fuse
 +
    --rul                  прочитать младьший байт fuse
 +
    --wul byte            записать младьший байт fuse
 +
    --help или -h          помощь
 +
 
  
 
Имеет следующие ограничения:
 
Имеет следующие ограничения:
Line 18: Line 66:
 
   Прошивка EEPROM в бинарном виде, берутся только первые 128 байт.
 
   Прошивка EEPROM в бинарном виде, берутся только первые 128 байт.
 
   Прошивка flash в файле только непрерывная. С последоватальным увеличением адресов, без дырок и т.п.
 
   Прошивка flash в файле только непрерывная. С последоватальным увеличением адресов, без дырок и т.п.
 +
  Прошивка из МК читается из всей flash памяти (1К слов) и записывается в файл.
  
Не совсем понятен порядок байтов с слове в файле и флеше. По описанию первым  следует записывать первый байт, затем второй, если они хранятся в файле в  обратном порядке, надо будет переставлять местами, пока считаем что храняться как надо.
+
Не совсем понятен порядок байтов с слове в файле и флеше. По описанию первым  следует записывать младьший байт, затем старший, если они хранятся в файле в  обратном порядке, надо будет переставлять местами, пока считаем что храняться как надо. Все нормально, записывается и читается порядок байт правильный.
  
 
Переменная LINEBUF_SIZE определяет размер массива при чтении строк прошивки памяти программ, размер образа EEPROM, сам размер EEPROM-а как при чтении так и при записи его в МК. По умолчанию равна 128 байт.
 
Переменная LINEBUF_SIZE определяет размер массива при чтении строк прошивки памяти программ, размер образа EEPROM, сам размер EEPROM-а как при чтении так и при записи его в МК. По умолчанию равна 128 байт.
 +
 +
== Замеченые глюки ==
 +
 +
Глюки которые были замечены в процессе работы, однократные с непонятной причиной оных.
 +
 +
При программировании новой прошивки в плату объектива с подключенным объективом, начала сбоить чтение/запись, после отключение объектива такое продолжилось. Потом плата объектива вообще перестала переходить в режим программирования. После подключения ее к ПК и uisp выяснилось, что младьший байт FUSE стал 0x01, должен быть 0xE4. После установки FUSE нужного значения, плата стала работать нормально.
 +
 +
Данный глюк был из-за помех в кабеле на неиспользуемую линию XTAL1, для устранения помех при программировании выставляю там низкий уровень, можно просто не подключать эту линию к плате, эффект тот же.

Latest revision as of 18:32, 23 February 2006

Описание на английском lbcontrol

Внутрисхемный программатор для программирования платы объектива - lbcontrol

Для программирования используются сигналы

     плата камеры  |             плата объектива
 Разъем  Сигнал    | Разъем        Сигнал       Порт        Пин
  J2-3   EXT_RST   | W301           RESET       PB7         11
  J2-4   EXT_CLK   | W302           XTAL1       PB4          7
  J2-5   EXT_EXPOS | W303           SCK         PB2         32
  J2-1   EXT_SCL   | W304           MISO        PB1         31
  J2-2   EXT_SDA   | W305           MOSI        PB0         30

/!\ Сигнал EXT_EXPOS который используется для синхронизации передаваемых данных, является инвертированным по выходу. Т.е. чтобы получить на выходе 1, в регистр надо писать чтобы установить 0 (пока нашел в чем проблема, потерял 1 день, спасибо логическому анализатору). Это верно для 313 модели, для 333 модели все работает без инверсии.


Использование для 313 модели

 lbcontrol [опции]
   -wf file       записать образ из файла во flash (память программ) 
   -rf file       прочитать память программ и записать образ в файл 
   -we file       записать образ из файла в EEPROM (энергонезависимая память данных)
   -re file       прочитать EEPROM и записать образ в файл 
   -e             стереть МК, стираются и flash и EEPROM 
   -RE addr       прочитать байт из EEPROM по адресу addr
   -WE addr byte  записать байт в EEPROM по адресу addr 
   -rl            прочитать lock биты 
   -wl byte       записать lock биты (0xFF - разрешить программирование и чтение МК (по умолчанию); 0xFE - запретить программирование, чтение разрешено; 0xFC - программирование запрещено, чтение запрещено) 
   -rc            прочитать байт калибровки внутреннего RC генератора 
   -rs            прочитать опознавательную сигнатуру МК
   -ruh           прочитать старший байт fuse
   -wuh byte      записать старший байт fuse 
   -rul           прочитать младьший байт fuse
   -wul byte      записать младьший байт fuse 
   -h             помощь 

Использование для 333 модели

 lbcontrol [опции]
   --debug n или -d n     установка уровня детализации сообщений при отладке
   --wf file              записать образ из файла во flash (память программ), старются FLASH и EEPROM 
   --rf file              прочитать память программ и записать образ в файл 
   --we file              записать образ из файла в EEPROM (энергонезависимая память данных)
   --re file              прочитать EEPROM и записать образ в файл 
   --erase или -e         стереть МК, стираются и flash и EEPROM
   --RE addr              прочитать байт из EEPROM по адресу addr
   --WE addr --byte byte  записать байт в EEPROM по адресу addr 
   --rl                   прочитать lock биты - работает 
   --wl byte              записать lock биты (0xFF - разрешить программирование и чтение МК (по умолчанию); 0xFE - запретить программирование, чтение разрешено; 0xFC - программирование запрещено, чтение запрещено) 
   --rc                   прочитать байт калибровки внутреннего RC генератора 
   --rs                   прочитать опознавательную сигнатуру МК 
   --ruh                  прочитать старший байт fuse 
   --wuh byte             записать старший байт fuse 
   --rul                  прочитать младьший байт fuse
   --wul byte             записать младьший байт fuse 
   --help или -h          помощь 


Имеет следующие ограничения:

  Поддержка только ATtiny26
  Только постраничная запись flash памяти контроллера
  Нет поддержки сегментов в адресах, программируются ус-ва не более 64Кбайт flash памяти.
  Прошивка flash только Intel HEX format  
  Прошивка EEPROM в бинарном виде, берутся только первые 128 байт.
  Прошивка flash в файле только непрерывная. С последоватальным увеличением адресов, без дырок и т.п.
  Прошивка из МК читается из всей flash памяти (1К слов) и записывается в файл.

Не совсем понятен порядок байтов с слове в файле и флеше. По описанию первым следует записывать младьший байт, затем старший, если они хранятся в файле в обратном порядке, надо будет переставлять местами, пока считаем что храняться как надо. Все нормально, записывается и читается порядок байт правильный.

Переменная LINEBUF_SIZE определяет размер массива при чтении строк прошивки памяти программ, размер образа EEPROM, сам размер EEPROM-а как при чтении так и при записи его в МК. По умолчанию равна 128 байт.

Замеченые глюки

Глюки которые были замечены в процессе работы, однократные с непонятной причиной оных.

При программировании новой прошивки в плату объектива с подключенным объективом, начала сбоить чтение/запись, после отключение объектива такое продолжилось. Потом плата объектива вообще перестала переходить в режим программирования. После подключения ее к ПК и uisp выяснилось, что младьший байт FUSE стал 0x01, должен быть 0xE4. После установки FUSE нужного значения, плата стала работать нормально.

Данный глюк был из-за помех в кабеле на неиспользуемую линию XTAL1, для устранения помех при программировании выставляю там низкий уровень, можно просто не подключать эту линию к плате, эффект тот же.