Перейти к содержанию
    

_lukash_

Свой
  • Постов

    126
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о _lukash_

  • Звание
    Частый гость
    Частый гость
  • День рождения 15.03.1990

Контакты

  • Сайт
    Array

Информация

  • Город
    Array

Посетители профиля

1 507 просмотров профиля
  1. Программатор таки ожил, правда еще хотелось бы уточнить один вопрос - по работе линии TDI.. Сейчас сигнал по линии TDI проходит только если замкнуть ноги 4 и 5 на микросхеме MAX3379 (точнее на перемычках, которые запаяны вместо микросхемы) Возможно вылетел выделенный на рисунке элемент..., т.к. один из выходов этого элемента звонится на 4 ногу MAX3379 и еще один выход звонится на ногу 5 MAX3379.. Фото плохого качества, с телефона... Тут нашел фото такого же программатора в хорошем качестве http://microsin.ru/content/view/1073/1/ Подскажите пожалуйста, что это за элемент?
  2. Собрал тестовую платку на 162 меге, питание 5В.. Подключил к ней программатор, в ISP режиме.. Осциллографом просмотрел линии... на линии SCK сигнал проходит корректно, а вот линии MISO и MOSI молчат.. Но потом, держа плату программатора рукой, попытался определить 162-ю, и вдруг она была найдена программатором! Экспериментальным путем выяснилось, что если прикаснуться пальцем к 4-м перемычкам, которые запаяны вместо max3379, программатор начинает видеть 162-ю мегу, на линиях MISO и MOSI идут сильно искаженные от наводок сигналы.. Но резисторов подтяжки на этих линиях не нашел.. Подскажите плз, с чем это связано, как можно поправить этот момент?
  3. Похоже что вылетели все 3 МАХа.. - только если выпаять все 3, то гаснет индикатор VTarget - все 3 пропускают напряжение с ноги VCC на ногу VL - поэтому и горел VTArget.. Сейчас для теста вместо МАХов запаял перемычки (по 4 линии вместо каждой микросхемы) - т.е. по идее должно работать с 5В платой.. Но отладочная плата на 3.3В... ( Подключал к отлаживаемой плате с резисторными делителями на линиях TCK TDI TMS, но чип на плате не определяется.. Возможно также не работают MAX4712 - там их 2, через них проходят сигнальные линии от разьема до MAX33..
  4. Просмотрел все 3 преобразователя осциллографом (к программатору подключил отлаживаемую платку на xmega128A1, анализировал сигналы на преобразователях при попытке достучаться к xmega через AVRStudio).. все 3 преобразователя вродь как работают (проходят короткие импульсы - выходы к шлейфу на 3.3В, к чипу в программаторе 5В уровни).. Попробую поочередно заменить преобразователи на новые ,как только найду нужные чипы.. Еще вопрос - при каком условии загорается индикатор "Target power"? Т.е. только когда подключаем линию программатора VTarget к питанию на отлаживаемой плате, или на других линиях также должны измениться уровни сигнала? Сейчас на не подключенной к отлаживаемой плате линии VTarget 5В, при подключении разъема к плате - 3.3В
  5. подскажите, пожалуйста, или есть в сети схема этого программатора.. пока найти ее не могу..
  6. Перезагрузка не помогла.. также подключал программатор к другой машине - та же ошибка и горит "Target power"... Было произведено обновление ПО из AVRStudio, результат тот же..
  7. Не работает jtagice mkII

    Здравствуйте! После очередной прошивки xmega128A1 и переключения jtagice mkII на другую плату при попытке связаться с xmega AVRStudio (4.16) выдает ошибку "One or more JTAG lines appear to be stuck"... Сам программатор студией обнаруживается корректно, подключен через USB. Также на программаторе постоянно горит индикатор "Target power" - даже если отсоеденить разьем от xmega.. Может кто сталкивался с такой проблемой, подскажите плз, как ее устранить..
  8. Здравствуйте! Пытаюсь связать между собой HCS200 и HCS515, но пока безуспешно.. Т.е. имеется HCS515 подключенный к AVR, и купленный брелок с HCS200. Програма для AVR была взята с аппноута AN714 - там есть все функции для работы с 515 кроме программирования мануфактурника с конф. байта. Для теста были взяты следующие значения (получены программой KeeloqTool): Manufacturer's Code - 0x0123456789ABCDEF Serial Number - 0x1234567 Encryption Key - 0x0516FBE989074278 На данный момент программирование мануфактурника выглядит следующим образом: byte manuf_key[] = {0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01}; char Command_Mode( char decoder_command, char cmd_byte1, char cmd_byte2 ) { byte bit_counter; byte temp_buffer; treq_timeout = 0x0000; // initialize union variable (integer element) TRISDATA_IN; // ensure data direction pin state is input HCSCLK_HIGH; // set clock high to initiate command TRISCLK_OUT; // ensure data direction pin state is output do // loop until HCS515 responds (1 loop = 33uS) { // or until ~500mS expires (total loop 660mS) delay_us(100); // ~24uS delay treq_timeout++; // increment response wait timer if ( GET_HCSDATA ) // has HCS515 responded ? treq_timeout = TREQ +1; // if so then set timeout expiration } while ( treq_timeout <= TREQ ); if ( GET_HCSDATA == 0 ) // is data line still low? return ( TREQ_ERR ); // return with error code // At this point the HCS515 has responded by asserting data line high // so bring the clock low delay_us(100); // (Tresp, spec-20uS(min)) ~42uS delay HCSCLK_LOW; // bring clock low, ack to decoder // At this point, HCS515 has acknowledged PICmicro by negating data line (low) delay_us(100); // Tstart (20uS min) ~ 41.50uS delay TRISDATA_OUT; // ensure data direction pin state is output bit_counter = 8; // initialize bit counter temp_buffer = decoder_command; // assign command to temp_buffer do { if (temp_buffer & 1) // test if carry bit set HCSDATA_HIGH; // set data line high else HCSDATA_LOW; // set data line low temp_buffer >>= 1; // rotate LSB HCSCLK_HIGH; // set clock high delay_us(100); // ~23.5uS delay HCSCLK_LOW; // set clock low( data sampled on falling edge ) delay_us(100); // ~23.5uS delay (also provides for required Tds) } while ( --bit_counter ); // decrement counter and test if complete if ( cmd_byte2 == PROGRAM ) // test if Write EE is using command mode function return ( NO_ERROR ); bit_counter = 8; // initialize bit counter temp_buffer = cmd_byte1; // 1st byte after command byte to temp_buffer do { if (temp_buffer & 1) // test if carry bit set HCSDATA_HIGH; // set data line high else HCSDATA_LOW; // set data line low temp_buffer >>= 1; // rotate LSB HCSCLK_HIGH; // set clock high delay_us(100); // ~20uS delay HCSCLK_LOW; // set clock low ( data sampled on falling edge ) delay_us(100); // ~20uS delay ( also provides for required Tds) } while ( --bit_counter ); // decrement counter and test if complete if ( cmd_byte2 == WRITE ) // test if Write EE is using command mode function return ( NO_ERROR ); bit_counter = 8; // initialize bit counter temp_buffer = cmd_byte2; // 2nd byte after command byte to temp_buffer do { if (temp_buffer & 1) // test if carry bit set HCSDATA_HIGH; // set data line high else HCSDATA_LOW; // set data line low temp_buffer >>= 1; // rotate LSB HCSCLK_HIGH; // set clock high delay_us(100); // ~20uS delay HCSCLK_LOW; // set clock low( data sampled on falling edge ) delay_us(100); // ~20uS delay ( also provides for required Tds) } while ( --bit_counter ); // decrement counter and test if complete return ( NO_ERROR ); // return with no error } char Learn( void ) { byte tack_timeout; byte temp; //flag1.learn_entered = 0; // reset learn entered flag temp = Command_Mode( ACTIVE_LRN, DUMMY, DUMMY ); // initiate command mode if ( temp != 0 ) return ( temp ); // return with error code // At this point Command Mode for Learn has been sent to HCS515, wait for acknowledge // HCS515 should respond within 20uS (max) after clock line is asserted TRISDATA_IN; // ensure data direction pin state is input delay_us(50); // wait for ~ 40uS (Tlrn-20uS(min) Tlrn ) HCSCLK_HIGH; // set clock high, begin TACK period tack_timeout = 0x00; // initialize variable do // loop until HCS515 responds with { // data line high or until time expires // loop time ~8uS (total: 5*8us= 40uS) delay_us(10); tack_timeout++; // increment timeout counter if ( GET_HCSDATA == 1 ) // has HCS515 responded and entered learn mode ? tack_timeout = TACK_LRN +1;// if so then set timeout expiration } while ( ( GET_HCSDATA != 1 ) && ( tack_timeout <= TACK_LRN ) ); if ( GET_HCSDATA != 1 ) // is DATA line still low after TACK return ( TACK_LRN_ERR ); // return with error code delay_us(25); // ~22uS delay (Tresp spec 20-1000uS) HCSCLK_LOW; // set clock low delay_us(25); // ~22uS delay (TACK2 spec 10uS max) //flag1.learn_entered = 1; // set flag learn entered mode return ( NO_ERROR ); // return with no error condition } char Program(byte * manuf_key, byte conf_byte ) { byte temp; byte bit_counter; byte temp_buffer; byte tack_timeout; byte i; byte buff[9]; buff[0] = conf_byte; for (i=1; i<9; i++) buff[i] = manuf_key[i-1]; temp = Command_Mode( PROGRAM, DUMMY, PROGRAM ); // initiate command mode if ( temp != 0 ) return ( temp ); // return with error code for(i=0; i<9; i++) { TRISDATA_OUT; // ensure data direction pin state is output bit_counter = 8; // initialize bit counter temp_buffer = buff[i]; // assign data to temp_buffer do { if (temp_buffer & 1) // test if carry bit set HCSDATA_HIGH; // set data line high else HCSDATA_LOW; // set data line low temp_buffer >>= 1; // rotate LSB HCSCLK_HIGH; // set clock high delay_us(50); // ~22uS delay HCSCLK_LOW; // set clock low ( data sampled on falling edge ) delay_us(50); // ~22uS delay ( also provides for required Tds ) } while ( --bit_counter ); // decrement counter and test if complete HCSDATA_LOW; // set data line low delay_us(100); // wait for ~ 20uS } TRISDATA_IN; // set pin direction for input HCSCLK_HIGH; // set clock high, begin TACK period delay_us(3000); // wait here 3mS to start //delay_us(100); tack_timeout = 0;//0x40; // initialize variable do // loop until HCS515 responds (1 loop = 48uS) { // or until ~9mS expires delay_us(3000); //~41uS delay //delay_us(1000); tack_timeout++; // increment timeout counter if ( GET_HCSDATA == 1 ) // has HCS515 responded ? tack_timeout = TACK_WR +1;// if so then set timeout expiration } while ( tack_timeout <= TACK_WR ); delay_us(25); // ~20uS delay (Tresp) HCSCLK_LOW; // set clock low delay_us(25); // ~20uS delay (TACK2 wait) //manuf_key++; // increment data pointer TRISDATA_IN; // ensure data direction pin state is input delay_us(1000); return ( NO_ERROR ); // return with no error condition } void Prog_test(void) { Program(manuf_key, 0 ); } Связь с HCS151 в норме - по крайней мере удалось корректно записать/вычитать User EEPROM ////////////////////////////////////// Теперь по части HCS200. EEPROM шью с помощью программатора ChipProg-2. При прошивке программатор говорит что все ок. Структура EEPROM HCS200 имеет следующий вид: WORD ADDRESS MNEMONIC DESCRIPTION 0 KEY_0 64-bit crypt key (word 0) LSb’s 1 KEY_1 64-bit crypt key (word 1) 2 KEY_2 64-bit crypt key (word 2) 3 KEY_3 64-bit crypt key (word 3) MSb’s 4 SYNC 16-bit synchronization value 5 Reserved Set to 0000H 6 SER_0 Device Serial Number (word 0) LSb’s 7 SER_1 Device Serial Number (word 1) MSb’s 8 SEED_0 Seed Value (word 0) 9 SEED_1 Seed Value (word 1) 10 Reserved Set to 0000H 11 CONFIG Configuration Word Исходя из этого, подготовил следующий файл для программатора: /////////////////// 1.hex 0x78, 0x42, 0x07, 0x89, 0xE9, 0xFB, 0x16, 0x05, 0x00, 0x00, 0x00, 0x00, 0x67, 0x45, 0x23, 0x01, 0x4D, 0x3C, 0x2B, 0x1A, 0x00, 0x00, 0x67, 0x05 После прошивки брелка, в HCS515 посылается комманда Learn, после чего несколько раз нажимаю одну из кнопок на брелке, но HCS515 никак не реагирует на эту посылку (должна дергать линией DATA, после чего AVR должна принять описание запомненого енкодера). Также в stand-alone режиме обучения никаких успехов (подтягиваем CLOCK к верхнему уровню, 2 секунды горит светодиод подключенный к DATA, когда светодиод гаснет отпускаем кнопку и жмем несколько раз на кнопку брелка). Подскажите плз в чем может быть ошибка.
  9. Понял, вопросов больше не должно быть, спасибо.
  10. Насколько понимаю в данном случае без внешнего мультиплексора не обойтись? Т.е. для чтения сперва через MOSI передаем первые 8 бит, затем любым незадействованным GIO процессора переключаем внешний мультиплексор (подключаем MISO к SDA), затем читаем следующие 8 бит. И между записью и чтением CS не дергаем. Правильно?
  11. 2 zltigo Понял, спасибо. С таким вариантом подключения еще не сталкивался, показалось странным чуть.. 2 blackfin Тож так сперва решил)
  12. Здравствуйте! Пытаюсь подключить драйвер дисплея HX5116-A к DSP dm355 Есть неясный момент по части SPI интерфейса... У самого контроллера дисплея под SPI выделены следующие ноги NCS - Serial Interface chip enable pin. (Normally pull high) SCL - Serial Interface clock input pin. (Normally pull high) SDA - Serial Interface data line. (Normally pull high) Т.е. линии MISO и MOSI каким-то образом мультиплексируются в одну линию SDA... Вот тут http://www.mpc-data.co.uk/barnacle-oled-ex...ents-dm355-evm/ есть уже пример подключенного дисплея к dm355, подключен через SPI, но схемы там не нашел В самом User Manual к вышеуказанной плате (Barnacle Board User Manual) по этому вопросу написано только: "The OLED will output data on the last 8 bits (D7-D0) if bit 8 is high. Since there is only one data pin on the OLED the I/O data is multiplexed onto MISO & MOSI SPI lines. This limits the maximum SPI clock speed to the OLED. " Также нашел в описании SPI на gaw.ru упоминание о 3-проводном интерфейсе компании Maxim "Отличие этого интерфейса состоит в том, что вместо полнодуплексной передачи по двум однонаправленным линиям здесь выполняется полудуплексная передача по одной двунаправленной линии DQ. " Более подробной информации пока не нашел..( Подскажите плз, как правильно подключить HX5116-A к SPI шине..
  13. 2 rezident, bill_vs, archip >У этого параллельный интерфейс. Топикстартер что-то напутал? Модуль BR320240A также подключается по "параллельному" интерфейсу - т.е. за один клок передаются все 8 бит данных. Но т.к. цвета RGB передаются последовательно (не параллельно - если параллельно то шина на 24/18/16 бит - т.е. все цвета RGB сразу), то я и называю интерфейс, использовавшийся в BR320240A последовательным. В документации на dm355 этот формат вывода данных тоже называют "serial RGB" А сейчас ищу OLED модуль для подключения к dm355 (использования аппаратного вывода изображения на граф модуль) dm355 поддерживает след. форматы вывода цифрового видео - YCC16, YCC8 / REC656, PRGB (паралельный шириной в 18 бит), SRGB (последовательный шириной в 8 бит) OLED хочу подключить по последнему - SRGB Сейчас сравниваю диаграммки из даташита да дисплей и диаграммки на dm355 Насколько понял - дисплей с интерфейсом 8080/6800 на dsp подключить не удастся...(
  14. Подскажите плз, где хорошо описаны интерфейсы 8080 и 6800 (передача данных контроллеру графического дисплея) Раньше работал с BR320240A - там последовательный RGB интерфейс - 8 бит данных, вертикальная, горизонтальная синхронизация и клок. А сейчас в модулях по типу BL160128A уже интерфейсы 8080 и 6800 Насколько они совместимы с последовательным RGB? Т.е. к примеру, возможно подключение BL160128A к DSP dm355 (VPBE )?
  15. Еще вопросик по поводу сенсоров. Подскажите плз, кто какие корпуса использовал и где их можно заказать нужен корпус с ИК подсветкой и системой линз... Максимум что удалось найти с линзой - это MLX75007 Нашел много корпусных миниатюрных камер, но все уже с выходом PAL, к примеру, - а с цифровым выходом найти не могу...
×
×
  • Создать...