Важная информация

User Tag List

Страница 1 из 17 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 170

Тема: Программатор микросхем программируемой логики(CPLD)

  1. #1
    Moderator Аватар для Mick
    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    9,911
    Спасибо Благодарностей отдано 
    177
    Спасибо Благодарностей получено 
    695
    Поблагодарили
    368 сообщений
    Mentioned
    19 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Программатор микросхем программируемой логики (CPLD)

    В теме, где обсуждалась моя видеокарта http://zx-pk.ru/showthread.php?t=108...l=1#post844672 , затронули вопрос - как разлочивать заблокированный JTAG режим в микросхемах серии EPM. В частности интересен вопрос так называемой разлочки наиболее распространенных EPM7032(64) и EPM3032(64).
    Поскольку данная тема является тайной за семью печатей и в открытом доступе информации совсем как бы и нет, то нет, как я считаю зазорного в том, чтобы так сказать исследовать этот вопрос на благо общества и на зло жадным "буржуям".
    Так вот, в процессе обсуждения выяснили что программатор "Chipprog+" умеет разлочивать и прошивать серию EPM7032(64). Был собран соответствующий адаптер и опытная залоченная микросхема успешна выдержала испытание, т.е. JTAG снова вернулся и микросхема готова была к повторному использованию.
    Конечно понятно, что этот подход интересен для тех, кто обладает этим программатором. Но что делать, у кого его нет. Тут остается казалось бы только одно, снимать эпюры происходящих процессов с реального программатора, но набрел я у себя на жестком диске на одну папку. Как то давно уже искал ответ на этот вопрос и попалась информация о программаторе Hilo-All 03. Я что смог выкачать, скачал. Так вот этот программатор тоже умеет программировать эти серии микросхем и я как понял тоже в высоковольтном режиме.
    Он хоть и рассчитан на работу под DOS, но в принципе можно разобраться как и что он дергает в процессе работы с CPLD, тем более что есть схема от него.
    Так вот установил что там на каждый тип микросхемы свой исполнительный модуль и файлы A70X.EXE, A70XE.EXE отвечают за работу с этими микрухами. Иными словами, если их попробовать дизассемблировать и провести соответствия со схемой, то возможно и можно получить искомый результат.

    Вот ссылка на архив, то что я выкачивал. https://yadi.sk/d/LZKLwB3rmdTjY

    Вообщем, тема для обсуждения кому интересно.
    Последний раз редактировалось Mick; 02.01.2016 в 11:37.
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,395
    Спасибо Благодарностей отдано 
    304
    Спасибо Благодарностей получено 
    594
    Поблагодарили
    440 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я тоже выкачивал здесь все, что мог. И даже скормил Иде А7074.ЕХЕ. Но там слишком много мишуры + в программе будут команды железке, а не микросхеме. Отсюда вывод: скан процесса все же актуален.

    PS ЕХЕ там запакованы PKLite'ом.

    PPS А тебе еще не пришел логик? Я бы очень быстро замутил ресторер по эпюрам.
    Последний раз редактировалось HardWareMan; 02.01.2016 в 10:54.

  4. #3
    Moderator Аватар для Mick
    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    9,911
    Спасибо Благодарностей отдано 
    177
    Спасибо Благодарностей получено 
    695
    Поблагодарили
    368 сообщений
    Mentioned
    19 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Я тоже выкачивал здесь все, что мог. И даже скормил Иде А7074.ЕХЕ. Но там слишком много мишуры + в программе будут команды железке, а не микросхеме. Отсюда вывод: скан процесса все же актуален.

    PS ЕХЕ там запакованы PKLite'ом.
    Да, команды к железке. Но если поглядишь схему железки, то там нет ни одного микроконтроллера, чисто регистры, ЦАП, ключи. По крайней мере можно определить к каким он ногам долбится.
    Второе, да мишуры в программе много, но там можно определить какие процедуры относятся к взаимодействию с программером, изучить так сказать сам алгоритм.
    Да и на некоторые адаптеры там есть схемы.

    И кстати, если правильно понимаю схему адаптера ADP7064AE и

    for Altera EPM3032ALC44/TC44, EPM3064ALC44/TC44 and EPM7064AELC44/TC44
    This is only for ALL07 (executable is A7064.exe) as ALL03 does NOT know any MAX7000AE nor MAX3000A.
    This Adapter is necessary to program CPLDs with locked JTAG pins, so not a simple ISP Adapter.
    Schematic contains pinout for all available packages.


    то вроде для них не нужен сложный алгоритм для разлочки микрух.
    Последний раз редактировалось Mick; 02.01.2016 в 11:00.
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  5. #4
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,395
    Спасибо Благодарностей отдано 
    304
    Спасибо Благодарностей получено 
    594
    Поблагодарили
    440 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Железка тупая, согласен. Но даже тупая железка может иметь хитрожопое управление, будучи подключена к такому интерфейсу как LPT. Например, BiDi имеет 2 ВВ55, и там есть команды настройки их. Железка тупая, но управление дикое, никакой прозрачности. Посему я все же стараюсь собрать инфу со всех доступных мест.

    Вот вам дизасс, чтобы не мучится с анпакерами. Использован С, так что много стандартного кода, те кто ковырял кишки С программ смогут разобраться быстрее меня.

    Цитата Сообщение от Mick Посмотреть сообщение
    вроде для них не нужен сложный алгоритм для разлочки микрух.
    Насколько не сложный?


    PS В твоих доках на адаптер указан только JTAG. Т.е., он вроде как JTAGом и стирается как обычно, нужно только разблокировать его Vpp на ноге OE. Но я так пробовал через кактус - не проканывало. Либо Кактус перед стиранием делает чтение ID а оно запрещено: логично что в этом режиме микра должна принимать только стирание согласно безопасности.
    Последний раз редактировалось HardWareMan; 02.01.2016 в 11:13.

  6. #5
    Moderator Аватар для Mick
    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    9,911
    Спасибо Благодарностей отдано 
    177
    Спасибо Благодарностей получено 
    695
    Поблагодарили
    368 сообщений
    Mentioned
    19 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение

    Насколько не сложный?
    Этот адаптер предназначен для EPM7032LC44, тоесть просто для MAX7000, а не для MAX7000S. У первого нет JTAG как и у MAX7000E, хотя китайцы могут абсолютно любую маркировку нанести.
    У меня есть EPM7064LC44, которая вроде бы обычная MAX7000, а шьется как обычная EPM7064SLC44 через JTAG.

    - - - Добавлено - - -

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    PPS А тебе еще не пришел логик? Я бы очень быстро замутил ресторер по эпюрам.
    30 декабря пришлепал. Только один фиг программатор на работе.
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  7. #6
    Veteran Аватар для vfiuchcikicshuusrch
    Регистрация
    01.07.2013
    Адрес
    г. Иваново
    Сообщений
    1,029
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    блин у меня до сих пор валяются залоченные epm7128 там про них что нибудь есть ?

  8. #7
    Moderator Аватар для Mick
    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    9,911
    Спасибо Благодарностей отдано 
    177
    Спасибо Благодарностей получено 
    695
    Поблагодарили
    368 сообщений
    Mentioned
    19 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vfiuchcikicshuusrch Посмотреть сообщение
    блин у меня до сих пор валяются залоченные epm7128 там про них что нибудь есть ?
    Файл A70XE.EXE умеет 128 шить

    Код:
    dseg:0042 aEpm7128elc84En db 'EPM7128ELC84 (Enhanced)',0
    dseg:005A aEpm7128elc84Co db 'EPM7128ELC84 (Compatibility)',0
    dseg:0077 aEpm7128eqc100E db 'EPM7128EQC100 (Enhanced)',0
    dseg:0090 aEpm7128eqc100C db 'EPM7128EQC100 (Compatibility)',0
    dseg:00AE aEpm7160elc84En db 'EPM7160ELC84 (Enhanced)',0
    dseg:00C6 aEpm7160elc84Co db 'EPM7160ELC84 (Compatibility)',0
    dseg:00E3 aEpm7160eqc100E db 'EPM7160EQC100 (Enhanced)',0
    dseg:00FC aEpm7160eqc160E db 'EPM7160EQC160 (Enhanced)',0
    dseg:0115 aEpm7160eqc160C db 'EPM7160EQC160 (Compatibility)',0
    dseg:0133 aEpm7128slc84_0 db 'EPM7128SLC84',0
    dseg:0140 aEpm7128sqc10_0 db 'EPM7128SQC100',0
    Я лично пока ковырялся с файлом A7064.EXE, так как хочется для начала с мелкими разобраться
    Выделял там функции меню, вот одна из них Erase, по сути она небольшая.
    Код:
    ; ---------------------------------------------------------------------------
    ;
    ; Erase
    ;
    
    sub_4D5_2364:    	proc far
    seg002:2364 
    seg002:2364 var_4	    = byte ptr -4
    seg002:2364 var_2	    = byte ptr -2
    seg002:2364 
    seg002:2364		    push    bp
    seg002:2365		    mov	    bp,	sp
    seg002:2367		    mov	    ax,	4
    seg002:236A		    call    __aFchkstk
    seg002:236F		    mov	    [bp+var_2],	0
    seg002:2373		    mov	    ax,	4Fh ; 'O'
    seg002:2376		    push    ax
    seg002:2377		    mov	    cx,	17h
    seg002:237A		    push    cx
    seg002:237B		    mov	    dx,	28h ; '('
    seg002:237E		    push    dx
    seg002:237F		    mov	    bx,	0Bh
    seg002:2382		    push    bx
    seg002:2383		    call    sub_876_135A
    seg002:2388		    add	    sp,	8
    
    seg002:238B		    mov	    ax,	3Fh ; '?'
    seg002:238E		    push    ax
    seg002:238F		    mov	    ax,	4Fh ; 'O'
    seg002:2392		    push    ax
    seg002:2393		    mov	    ax,	17h
    seg002:2396		    push    ax
    seg002:2397		    mov	    ax,	28h ; '('
    seg002:239A		    push    ax
    seg002:239B		    mov	    ax,	0Bh
    seg002:239E		    push    ax
    seg002:239F		    call    sub_876_14F6
    seg002:23A4		    add	    sp,	0Ah
    
    seg002:23A7		    mov	    ax,	1Fh
    seg002:23AA		    push    ax
    seg002:23AB		    mov	    ax,	34h ; '4'
    seg002:23AE		    push    ax
    seg002:23AF		    mov	    ax,	0Bh
    seg002:23B2		    push    ax
    seg002:23B3		    mov	    cx,	2Ch ; ','
    seg002:23B6		    push    cx
    seg002:23B7		    push    ax
    seg002:23B8		    call    sub_876_14F6
    seg002:23BD		    add	    sp,	0Ah
    
    seg002:23C0		    mov	    ax,	2Ch ; ','
    seg002:23C3		    push    ax
    seg002:23C4		    mov	    ax,	0Bh
    seg002:23C7		    push    ax
    seg002:23C8		    call    sub_876_1930
    seg002:23CD		    add	    sp,	4
    
    seg002:23D0		    mov	    ax,	aErase			;1AC2h
    seg002:23D3		    push    ax
    seg002:23D4		    call    print_string
    seg002:23D9		    add	    sp,	2
    seg002:23DC 
    seg002:23DC loc_4D5_23DC:			    ; CODE XREF: sub_4D5_2364+D0j
    seg002:23DC					    ; sub_4D5_2364+1DEj ...
    seg002:23DC		    mov	    ax,	4Eh ; 'N'
    seg002:23DF		    push    ax
    seg002:23E0		    mov	    ax,	0Ch
    seg002:23E3		    push    ax
    seg002:23E4		    mov	    cx,	29h ; ')'
    seg002:23E7		    push    cx
    seg002:23E8		    push    ax
    seg002:23E9		    call    sub_876_197E
    seg002:23EE		    add	    sp,	8
    
    seg002:23F1		    mov	    ax,	29h ; ')'
    seg002:23F4		    push    ax
    seg002:23F5		    mov	    ax,	0Ch
    seg002:23F8		    push    ax
    seg002:23F9		    call    sub_876_1930
    seg002:23FE		    add	    sp,	4
    seg002:2401		    mov	    ax,	aReadyToEraseYC		;1ACCh
    seg002:2404		    push    ax
    seg002:2405		    call    print_string
    seg002:240A		    add	    sp,	2
    
    seg002:240D		    call    sub_DD8_1296
    seg002:2412		    mov	    [bp+var_4],	al
    seg002:2415		    cmp	    al,	0Dh
    seg002:2417		    jz	    loc_4D5_2421
    seg002:2419		    cmp	    al,	0Ah
    seg002:241B		    jz	    loc_4D5_2421
    seg002:241D		    cmp	    al,	1Bh
    seg002:241F		    jnz	    loc_4D5_242A
    seg002:2421 
    seg002:2421 loc_4D5_2421:			    ; CODE XREF: sub_4D5_2364+B3j
    seg002:2421					    ; sub_4D5_2364+B7j
    seg002:2421		    call    sub_DD8_126E
    seg002:2426		    jmp	    loc_4D5_25C8
    seg002:2429 ; ---------------------------------------------------------------------------
    seg002:2429		    nop	    
    seg002:242A 
    seg002:242A loc_4D5_242A:			    ; CODE XREF: sub_4D5_2364+BBj
    seg002:242A		    cmp	    [bp+var_4],	59h ; 'Y'
    seg002:242E		    jz	    loc_4D5_2436
    seg002:2430		    cmp	    [bp+var_4],	79h ; 'y'
    seg002:2434		    jnz	    loc_4D5_23DC
    seg002:2436 
    seg002:2436 loc_4D5_2436:			    ; CODE XREF: sub_4D5_2364+CAj
    seg002:2436		    mov	    al,	[bp+var_4]
    seg002:2439		    sub	    ah,	ah
    seg002:243B		    push    ax
    seg002:243C		    call    sub_876_1BE8
    seg002:2441		    add	    sp,	2
    
    seg002:2444		    mov	    ax,	4Eh ; 'N'
    seg002:2447		    push    ax
    seg002:2448		    mov	    ax,	16h
    seg002:244B		    push    ax
    seg002:244C		    mov	    ax,	29h ; ')'
    seg002:244F		    push    ax
    seg002:2450		    mov	    cx,	0Dh
    seg002:2453		    push    cx
    seg002:2454		    call    sub_876_197E
    seg002:2459		    add	    sp,	8
    
    seg002:245C		    mov	    ax,	3Fh ; '?'
    seg002:245F		    push    ax
    seg002:2460		    mov	    ax,	4Fh ; 'O'
    seg002:2463		    push    ax
    seg002:2464		    mov	    cx,	17h
    seg002:2467		    push    cx
    seg002:2468		    mov	    cx,	28h ; '('
    seg002:246B		    push    cx
    seg002:246C		    mov	    cx,	0Ch
    seg002:246F		    push    cx
    seg002:2470		    call    sub_876_14F6
    seg002:2475		    add	    sp,	0Ah
    
    seg002:2478		    call    sub_DD8_1398
    seg002:247D		    dec	    ax
    seg002:247E		    jnz	    loc_4D5_24B2
    seg002:2480		    call    sub_0_15A6
    seg002:2485		    dec	    ax
    seg002:2486		    jnz	    loc_4D5_24B2
    seg002:2488		    mov	    ax,	29h ; ')'
    seg002:248B		    push    ax
    seg002:248C		    mov	    cx,	0Dh
    seg002:248F		    push    cx
    seg002:2490		    call    sub_876_1930
    seg002:2495		    add	    sp,	4
    seg002:2498		    mov	    ax,	aThePacInsert_5		;1AE5h
    seg002:249B		    push    ax
    seg002:249C		    call    print_string
    seg002:24A1		    add	    sp,	2
    
    seg002:24A4		    mov	    ax,	4Fh ; 'O'
    seg002:24A7		    push    ax
    seg002:24A8		    mov	    ax,	4Ah ; 'J'
    seg002:24AB		    push    ax
    seg002:24AC		    mov	    ax,	0Dh
    seg002:24AF		    jmp	    loc_4D5_257F
    seg002:24B2 ; ---------------------------------------------------------------------------
    seg002:24B2 
    seg002:24B2 loc_4D5_24B2:			    ; CODE XREF: sub_4D5_2364+11Aj
    seg002:24B2					    ; sub_4D5_2364+122j
    seg002:24B2		    cmp	    word_1F45_3290, 0
    seg002:24B7		    jz	    loc_4D5_24C2
    seg002:24B9		    mov	    ax,	0AFh ; 'ï'
    seg002:24BC		    push    ax
    seg002:24BD		    mov	    ax,	aEraseNow____3		;1B07h
    seg002:24C0		    jmp	    short loc_4D5_24C9
    seg002:24C2 ; ---------------------------------------------------------------------------
    seg002:24C2 
    seg002:24C2 loc_4D5_24C2:			    ; CODE XREF: sub_4D5_2364+153j
    seg002:24C2		    mov	    ax,	0F0h ; '¨'
    seg002:24C5		    push    ax
    seg002:24C6		    mov	    ax,	aEraseNow____4		;1B15h
    seg002:24C9 
    seg002:24C9 loc_4D5_24C9:			    ; CODE XREF: sub_4D5_2364+15Cj
    seg002:24C9		    push    ax
    seg002:24CA		    mov	    ax,	29h ; ')'
    seg002:24CD		    push    ax
    seg002:24CE		    mov	    ax,	0Dh
    seg002:24D1		    push    ax
    seg002:24D2		    call    sub_876_3370
    seg002:24D7		    add	    sp,	8
    seg002:24DA		    push    cs
    seg002:24DB		    call    near ptr sub_4D5_25FE
    seg002:24DE		    mov	    [bp+var_2],	al
    seg002:24E1		    cmp	    word_1F45_3290, 0
    seg002:24E6		    jz	    loc_4D5_24F2
    seg002:24E8		    mov	    ax,	3Fh ; '?'
    seg002:24EB		    push    ax
    seg002:24EC		    mov	    ax,	aEraseNow____5		;1B23h
    seg002:24EF		    jmp	    short loc_4D5_24F9
    seg002:24F1 ; ---------------------------------------------------------------------------
    seg002:24F1		    nop	    
    seg002:24F2 
    seg002:24F2 loc_4D5_24F2:			    ; CODE XREF: sub_4D5_2364+182j
    seg002:24F2		    mov	    ax,	7
    seg002:24F5		    push    ax
    seg002:24F6		    mov	    ax,	aEraseNow____6		;1B31h
    seg002:24F9 
    seg002:24F9 loc_4D5_24F9:			    ; CODE XREF: sub_4D5_2364+18Bj
    seg002:24F9		    push    ax
    seg002:24FA		    mov	    ax,	29h ; ')'
    seg002:24FD		    push    ax
    seg002:24FE		    mov	    ax,	0Dh
    seg002:2501		    push    ax
    seg002:2502		    call    sub_876_3370
    seg002:2507		    add	    sp,	8
    seg002:250A		    mov	    ax,	29h ; ')'
    seg002:250D		    push    ax
    seg002:250E		    mov	    ax,	0Eh
    seg002:2511		    push    ax
    seg002:2512		    call    sub_876_1930
    seg002:2517		    add	    sp,	4
    
    seg002:251A		    cmp	    [bp+var_2],	0
    seg002:251E		    jnz	    loc_4D5_255A
    seg002:2520		    mov	    ax,	aEraseOk_0		;1B3Fh
    seg002:2523		    push    ax
    seg002:2524		    call    print_string
    seg002:2529		    add	    sp,	2
    
    seg002:252C		    call    sub_DD8_1246
    seg002:2531		    dec	    word_1F45_2E40
    seg002:2535		    js	    loc_4D5_2546
    seg002:2537		    mov	    bx,	word_1F45_2E3E
    seg002:253B		    mov	    byte ptr [bx], 7
    seg002:253E		    inc	    word_1F45_2E3E
    seg002:2542		    jmp	    loc_4D5_23DC
    seg002:2545 ; ---------------------------------------------------------------------------
    seg002:2545		    nop	    
    seg002:2546 
    seg002:2546 loc_4D5_2546:			    ; CODE XREF: sub_4D5_2364+1D1j
    seg002:2546		    mov	    ax,	2E3Eh
    seg002:2549		    push    ax
    seg002:254A		    mov	    ax,	7
    seg002:254D		    push    ax
    seg002:254E		    call    __flsbuf
    seg002:2553		    add	    sp,	4
    seg002:2556		    jmp	    loc_4D5_23DC
    seg002:2559 ; ---------------------------------------------------------------------------
    seg002:2559		    nop	    
    seg002:255A 
    seg002:255A loc_4D5_255A:			    ; CODE XREF: sub_4D5_2364+1BAj
    seg002:255A		    cmp	    [bp+var_2],	1
    seg002:255E		    jnz	    loc_4D5_2596
    seg002:2560		    push    word_1F45_3298
    seg002:2564		    push    word_1F45_3296
    seg002:2568		    mov	    ax,	aEraseErrorAt_0		;1B4Ah
    seg002:256B		    push    ax
    seg002:256C		    call    print_string
    seg002:2571		    add	    sp,	6
    seg002:2574		    mov	    ax,	4Fh ; 'O'
    seg002:2577		    push    ax
    seg002:2578		    mov	    ax,	3Eh ; '>'
    seg002:257B		    push    ax
    seg002:257C		    mov	    ax,	0Eh
    seg002:257F 
    seg002:257F loc_4D5_257F:			    ; CODE XREF: sub_4D5_2364+14Bj
    seg002:257F					    ; sub_4D5_2364+262j
    seg002:257F		    push    ax
    seg002:2580		    mov	    cx,	29h ; ')'
    seg002:2583		    push    cx
    seg002:2584		    push    ax
    seg002:2585		    call    sub_876_14F6
    seg002:258A		    add	    sp,	0Ah
    seg002:258D		    call    sub_876_1624
    seg002:2592		    jmp	    loc_4D5_23DC
    seg002:2595 ; ---------------------------------------------------------------------------
    seg002:2595		    nop	    
    seg002:2596 
    seg002:2596 loc_4D5_2596:			    ; CODE XREF: sub_4D5_2364+1FAj
    seg002:2596		    cmp	    [bp+var_2],	2
    seg002:259A		    jz	    loc_4D5_259F
    seg002:259C		    jmp	    loc_4D5_23DC
    seg002:259F ; ---------------------------------------------------------------------------
    seg002:259F 
    seg002:259F loc_4D5_259F:			    ; CODE XREF: sub_4D5_2364+236j
    seg002:259F		    mov	    ax,	29h ; ')'
    seg002:25A2		    push    ax
    seg002:25A3		    mov	    cx,	16h
    seg002:25A6		    push    cx
    seg002:25A7		    call    sub_876_1930
    seg002:25AC		    add	    sp,	4
    seg002:25AF		    mov	    ax,	aIncorrectDev_7		;1B61h
    seg002:25B2		    push    ax
    seg002:25B3		    call    print_string
    seg002:25B8		    add	    sp,	2
    seg002:25BB		    mov	    ax,	4Fh ; 'O'
    seg002:25BE		    push    ax
    seg002:25BF		    mov	    ax,	3Ah ; ':'
    seg002:25C2		    push    ax
    seg002:25C3		    mov	    ax,	16h
    seg002:25C6		    jmp	    short loc_4D5_257F
    seg002:25C8 ; ---------------------------------------------------------------------------
    seg002:25C8 
    seg002:25C8 loc_4D5_25C8:			    ; CODE XREF: sub_4D5_2364+C2j
    seg002:25C8		    mov	    ax,	4Fh ; 'O'
    seg002:25CB		    push    ax
    seg002:25CC		    mov	    cx,	17h
    seg002:25CF		    push    cx
    seg002:25D0		    mov	    dx,	28h ; '('
    seg002:25D3		    push    dx
    seg002:25D4		    mov	    bx,	0Bh
    seg002:25D7		    push    bx
    seg002:25D8		    call    sub_876_197E
    seg002:25DD		    add	    sp,	8
    seg002:25E0		    mov	    ax,	7Fh ; ''
    seg002:25E3		    push    ax
    seg002:25E4		    mov	    ax,	4Fh ; 'O'
    seg002:25E7		    push    ax
    seg002:25E8		    mov	    ax,	17h
    seg002:25EB		    push    ax
    seg002:25EC		    mov	    ax,	28h ; '('
    seg002:25EF		    push    ax
    seg002:25F0		    mov	    ax,	0Bh
    seg002:25F3		    push    ax
    seg002:25F4		    call    sub_876_14F6
    seg002:25F9		    mov	    sp,	bp
    seg002:25FB		    pop	    bp
    seg002:25FC		    retf    
    seg002:25FC sub_4D5_2364    endp
    
    aErase:	  		db ' Erase : ',0
    aReadyToEraseYC:	db 'Ready to erase (Y/<CR>)?',0
    aThePacInsert_5:	db 'The PAC inserted is not correct !',0
    aEraseNow____3:  	db 'Erase now ...',0
    aEraseNow____4:		db 'Erase now ...',0
    aEraseNow____5:		db 'Erase now ...',0
    aEraseNow____6:		db 'Erase now ...',0
    aEraseOk_0:	  	db 'Erase ok !',0
    aEraseErrorAt_0:	db 'Erase error ! at %04hX',0
    aIncorrectDev_7:	db ' incorrect Device ',0
    Последний раз редактировалось Mick; 02.01.2016 в 12:23.
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  9. #8
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,395
    Спасибо Благодарностей отдано 
    304
    Спасибо Благодарностей получено 
    594
    Поблагодарили
    440 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    2Mick В общем, у меня на 4х EPM3032ALC44 (взятых с игрового автомата FairPlay) JTAG используется так, что на TDI имеем CLK/4. По панельке я проверил, там стандартное включение и JTAG+HV_OE. Простая подача 12В (по идее 11 надо но мне пофигу было) не прекращает генерацию на выводе TDI. Самое паскудное то, что этот TDI используется именно для передачи данных в CPLD. Если верить в восстановление JTAG (полным стиранием?) конкретно этой схемой, то получается нужна комбинация на TMS/TCK+HV_OE. Посканишь?

  10. #9
    Veteran Аватар для Tronix
    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,929
    Спасибо Благодарностей отдано 
    78
    Спасибо Благодарностей получено 
    230
    Поблагодарили
    114 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Тема то интересная. Но как по мне - проще снять все-таки эпюры с программатора умеющего шить альтеры с залоченным JTAG. У меня правда нет таких альтер, все что есть - все с JTAG. Но порой не хватает 2-3 свободных пинов как раз, приходится выносить снаружи и городить на мелко-логике. То есть если бы была возможность потом такие альтеры перепрошивать, я бы сам постоянно юзал JTAG как gpio.

    По поводу досовой софтины - можно в эмуляторе записать все обращения к LPT-порту. Только я не знаю, как софт отреагирует на отсутствие железки.

  11. #10
    Moderator Аватар для Mick
    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    9,911
    Спасибо Благодарностей отдано 
    177
    Спасибо Благодарностей получено 
    695
    Поблагодарили
    368 сообщений
    Mentioned
    19 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Tronix Посмотреть сообщение
    По поводу досовой софтины - можно в эмуляторе записать все обращения к LPT-порту. Только я не знаю, как софт отреагирует на отсутствие железки.
    Он вроде при запуске определяет наличие программатора.

    - - - Добавлено - - -

    Цитата Сообщение от Tronix Посмотреть сообщение
    Тема то интересная. Но как по мне - проще снять все-таки эпюры с программатора умеющего шить альтеры с залоченным JTAG. У меня правда нет таких альтер, все что есть - все с JTAG. Но порой не хватает 2-3 свободных пинов как раз, приходится выносить снаружи и городить на мелко-логике. То есть если бы была возможность потом такие альтеры перепрошивать, я бы сам постоянно юзал JTAG как gpio.
    Чтобы сделать свою железку аля программатор альтер, нужно еще и с форматом файла pof как минимум тоже разобраться. Тоесть один фиг перелопатить надо софтинку.
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

Страница 1 из 17 12345 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Как прошить CPLD ALTERA???
    от ILoveSpeccy в разделе Несортированное железо
    Ответов: 3
    Последнее: 25.05.2007, 10:48
  2. ТЕСТЕР микросхем логики
    от Mikka_A в разделе Оборудование
    Ответов: 29
    Последнее: 19.03.2007, 22:46

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •