Difference between revisions of "Lbcontrol Ru"
(описание ключей программатора для версии 333 камеры.) |
|||
(8 intermediate revisions by 2 users not shown) | |||
Line 4: | Line 4: | ||
Для программирования используются сигналы | Для программирования используются сигналы | ||
− | | плата объектива | + | плата камеры | плата объектива |
− | | Разъем Сигнал Порт Пин | + | Разъем Сигнал | Разъем Сигнал Порт Пин |
− | + | 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 [опции] | lbcontrol [опции] | ||
− | -wf file записать образ из файла во flash (память программ) | + | -wf file записать образ из файла во flash (память программ) |
− | -rf file прочитать память программ и записать образ в файл | + | -rf file прочитать память программ и записать образ в файл |
-we file записать образ из файла в EEPROM (энергонезависимая память данных) | -we file записать образ из файла в EEPROM (энергонезависимая память данных) | ||
− | -re file прочитать EEPROM и записать образ в файл | + | -re file прочитать EEPROM и записать образ в файл |
− | -e стереть МК, стираются и flash и EEPROM | + | -e стереть МК, стираются и flash и EEPROM |
-RE addr прочитать байт из EEPROM по адресу addr | -RE addr прочитать байт из EEPROM по адресу addr | ||
− | -WE addr byte записать байт в EEPROM по адресу addr | + | -WE addr byte записать байт в EEPROM по адресу addr |
− | -rl прочитать lock биты | + | -rl прочитать lock биты |
− | -wl byte записать lock биты (0xFF - разрешить программирование и чтение МК (по умолчанию); 0xFE - запретить программирование, чтение разрешено; 0xFC - программирование запрещено, чтение запрещено) | + | -wl byte записать lock биты (0xFF - разрешить программирование и чтение МК (по умолчанию); 0xFE - запретить программирование, чтение разрешено; 0xFC - программирование запрещено, чтение запрещено) |
− | -rc прочитать байт калибровки внутреннего RC генератора | + | -rc прочитать байт калибровки внутреннего RC генератора |
-rs прочитать опознавательную сигнатуру МК | -rs прочитать опознавательную сигнатуру МК | ||
-ruh прочитать старший байт fuse | -ruh прочитать старший байт fuse | ||
− | -wuh byte записать старший байт fuse | + | -wuh byte записать старший байт fuse |
-rul прочитать младьший байт fuse | -rul прочитать младьший байт fuse | ||
− | -wul byte записать младьший байт fuse | + | -wul byte записать младьший байт fuse |
− | -h помощь | + | -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 42: | Line 68: | ||
Прошивка из МК читается из всей flash памяти (1К слов) и записывается в файл. | Прошивка из МК читается из всей 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, для устранения помех при программировании выставляю там низкий уровень, можно просто не подключать эту линию к плате, эффект тот же.