User Tag List

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 32

Тема: Программатор 1801РР1 к УКНЦ.

  1. #11

    Регистрация
    10.04.2019
    Адрес
    г. Фокино, Брянская обл.
    Сообщений
    401
    Спасибо Благодарностей отдано 
    52
    Спасибо Благодарностей получено 
    104
    Поблагодарили
    65 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    Ну, голубую пилюлю
    Не пойдет. Нет 16 толерантных к 5 вольтам пинов одного порта. Блекпил советую, GPIOA полностью 5в толерантен.
    Да и ловить на STMке связку SYNC - DIN/DOUT - RPLY нужен таки ассемблер, увы СИ не успеет.
    Вот кусочек кода который отрабатывает запись/чтение в порты ВП1-128 (177130,177132), прерывания вызываются диспетчером адресов собранном на 27с512 и 155ла3:

    Скрытый текст


    //----------------------------------------------
    // void EXTI4_IRQHandler(void)
    //----------------------------------------------
    .section .text.EXTI4_IRQHandler
    .align
    .global EXTI4_IRQHandler
    .type EXTI4_IRQHandler, %function
    EXTI4_IRQHandler:
    push {r0-r3,lr}
    ldr r0,=GPIO_BASE
    ldr r1,=MEM_BASE
    ldrh r2,[r1] //,#RSN_RDA] //load Status
    EXTI4_IRQHandler_start:
    READPORT_R0 r3,GPIOB
    and r3,#7
    eor r3,#7
    tbb [pc,r3]
    EXTI4_IRQHandler_table:
    .byte (EXTI4_IRQHandler_case_0 - EXTI4_IRQHandler_table)/2 //case 0 - exit
    .byte (EXTI4_IRQHandler_case_SYNC - EXTI4_IRQHandler_table)/2 //case 1 - only SYNC down
    .byte (EXTI4_IRQHandler_case_0 - EXTI4_IRQHandler_table)/2 //case 2 = case 0
    .byte (EXTI4_IRQHandler_case_DIN - EXTI4_IRQHandler_table)/2 //case 3 - SYNC|DIN down
    .byte (EXTI4_IRQHandler_case_0 - EXTI4_IRQHandler_table)/2 //case 4 = case 0
    .byte (EXTI4_IRQHandler_case_DOUT - EXTI4_IRQHandler_table)/2 //case 5 - SYNC|DOUT down
    .byte (EXTI4_IRQHandler_case_0 - EXTI4_IRQHandler_table)/2 //case 6 = case 0
    .byte (EXTI4_IRQHandler_case_0 - EXTI4_IRQHandler_table)/2 //case 7 = case 0

    .align
    EXTI4_IRQHandler_case_0:
    //reset exti port
    ldr r2,=(EXTI_PR1)
    ldr r3,=EXTI_LINE_4
    str r3,[r2]
    //release RPLY|VA87DIR
    SETGPIO_R0 r3,GPIOB,#(RPLY|VA87DIR)
    pop {r0-r3,lr}
    bx lr
    EXTI4_IRQHandler_case_SYNC:
    b EXTI4_IRQHandler_start
    //--------------get Status-----------------
    EXTI4_IRQHandler_case_DIN:
    RESETGPIO_R0 r3,GPIOB,#(VA87DIR)
    SETPORT_R0 r3,GPIOA,MODER,MODER_O
    SETODRPORT_R0 r2,GPIOA //Out status from r2
    RESETGPIO_R0 r3,GPIOB,#(RPLY)
    irq4_din_rsn_h_wait:
    READPORT_R0 r3,GPIOB
    tst r3,#(DIN)
    beq irq4_din_rsn_h_wait

    and r2,#0
    SETPORT_R0 r3,GPIOA,MODER,MODER_I
    //-----------end din-----------------
    //save operation
    strb r2,[r1,SET_OPA]
    //strh r2,[r1] //,#RSN_RDA] //RSN_RD=0
    //reset exti port
    ldr r2,=(EXTI_PR1)
    ldr r3,=EXTI_LINE_4
    str r3,[r2]
    //release RPLY|VA87DIR
    SETGPIO_R0 r3,GPIOB,#(RPLY|VA87DIR)
    pop {r0-r3,lr}
    bx lr
    //--------------set CMD-----------------
    EXTI4_IRQHandler_case_DOUT:
    RESETGPIO_R0 r3,GPIOB,#(RPLY)
    //SETPORT_R0 r3,GPIOA,MODER,MODER_I //may be delete?
    irq4_rsn_dout_h_wait:
    READPORT_R0 r3,GPIOA
    READPORT_R0 r2,GPIOB
    tst r2,#(DOUT)
    beq irq4_rsn_dout_h_wait

    strh r3,[r1,#RSN_WRA]
    tst r3,#0x100 //GOR?
    beq EXTI4_IRQHandler_case_DOUT_end
    ldrh r2,=0 //cmd
    strh r2,[r1,#RSN_RDA] //RSN_RD=0
    strh r2,[r1,#RDN_RDA] //RDN_RD=0
    //-----------end dout-----------------
    EXTI4_IRQHandler_case_DOUT_end:
    //reset exti port
    ldr r2,=(EXTI_PR1)
    ldr r3,=EXTI_LINE_4
    str r3,[r2]
    //release RPLY|VA87DIR
    SETGPIO_R0 r3,GPIOB,#(RPLY|VA87DIR)
    pop {r0-r3,lr}
    bx lr


    //----------------------------------------------
    // void EXTI9_5_IRQHandler(void)
    //----------------------------------------------
    .section .text.EXTI9_5_IRQHandler
    .align
    .global EXTI9_5_IRQHandler
    .type EXTI9_5_IRQHandler, %function
    EXTI9_5_IRQHandler:
    push {r0-r3,lr}
    ldr r0,=GPIO_BASE
    ldr r1,=MEM_BASE
    ldrh r2,[r1,#RDN_RDA] //load Data
    EXTI9_5_IRQHandler_start:
    READPORT_R0 r3,GPIOB
    and r3,#7
    eor r3,#7
    tbb [pc,r3]
    EXTI9_5_IRQHandler_table:
    .byte (EXTI9_5_IRQHandler_case_0 - EXTI9_5_IRQHandler_table)/2 //case 0 - exit
    .byte (EXTI9_5_IRQHandler_case_SYNC - EXTI9_5_IRQHandler_table)/2 //case 1 - only SYNC down
    .byte (EXTI9_5_IRQHandler_case_0 - EXTI9_5_IRQHandler_table)/2 //case 2 = case 0
    .byte (EXTI9_5_IRQHandler_case_DIN - EXTI9_5_IRQHandler_table)/2 //case 3 - SYNC|DIN down
    .byte (EXTI9_5_IRQHandler_case_0 - EXTI9_5_IRQHandler_table)/2 //case 4 = case 0
    .byte (EXTI9_5_IRQHandler_case_DOUT - EXTI9_5_IRQHandler_table)/2 //case 5 - SYNC|DOUT down
    .byte (EXTI9_5_IRQHandler_case_0 - EXTI9_5_IRQHandler_table)/2 //case 6 = case 0
    .byte (EXTI9_5_IRQHandler_case_0 - EXTI9_5_IRQHandler_table)/2 //case 7 = case 0

    .align
    EXTI9_5_IRQHandler_case_0:
    //reset exti port
    ldr r2,=(EXTI_PR1)
    ldr r3,=EXTI_LINE_5
    str r3,[r2]
    pop {r0-r3,lr}
    bx lr
    EXTI9_5_IRQHandler_case_SYNC:
    b EXTI9_5_IRQHandler_start
    EXTI9_5_IRQHandler_case_DIN:
    RESETGPIO_R0 r3,GPIOB,#(VA87DIR)
    SETPORT_R0 r3,GPIOA,MODER,MODER_O
    SETODRPORT_R0 r2, GPIOA
    RESETGPIO_R0 r3,GPIOB,#(RPLY)
    irq5_din_rdn_h_wait:
    READPORT_R0 r3,GPIOB
    tst r3,#(DIN)
    beq irq5_din_rdn_h_wait

    SETPORT_R0 r3,GPIOA,MODER,MODER_I
    SETGPIO_R0 r3,GPIOB,#(RPLY|VA87DIR)
    //-----------end din-----------------
    ldrh r3,[r1]//,#RSN_RDA] //eq 0
    bic r3,#0x80 // 7 bit (TR)
    strh r3,[r1]//,#RSN_RDA]
    //reset exti port
    ldr r2,=(EXTI_PR1)
    ldr r3,=EXTI_LINE_5
    str r3,[r2]
    pop {r0-r3,lr}
    bx lr
    EXTI9_5_IRQHandler_case_DOUT:
    RESETGPIO_R0 r3,GPIOB,#(RPLY)
    //SETPORT_R0 r3,GPIOA,MODER,MODER_I
    irq5_rdn_dout_h_wait:
    READPORT_R0 r3,GPIOA
    READPORT_R0 r2,GPIOB
    tst r2,#(DOUT)
    beq irq5_rdn_dout_h_wait

    strh r3,[r1,#RDN_WRA]
    SETGPIO_R0 r3,GPIOB,#(RPLY)
    //-----------end dout-----------------
    ldrh r3,[r1]//,#RSN_RDA] //eq 0
    bic r3,#0x80 // 7 bit (TR)
    strh r3,[r1]//,#RSN_RDA]
    //reset exti port
    ldr r2,=(EXTI_PR1)
    ldr r3,=EXTI_LINE_5
    str r3,[r2]
    pop {r0-r3,lr}
    bx lr
    //-----------end EXTI9_5_IRQHandler-------------
    [свернуть]
    Последний раз редактировалось ZPilot; 14.06.2020 в 16:11.

  2. #12

    Регистрация
    09.04.2009
    Адрес
    Зеленоград
    Сообщений
    449
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    429
    Поблагодарили
    196 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Это что получается, если у 1801РР1 уже прописан код о100000, то ее можно перезашить на адреса о120000, о140000, о160000. А если уже о160000, то никуда более?

  3. #13

    Регистрация
    20.04.2013
    Адрес
    г. Павловский Посад
    Сообщений
    4,246
    Спасибо Благодарностей отдано 
    498
    Спасибо Благодарностей получено 
    557
    Поблагодарили
    436 сообщений
    Mentioned
    42 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ynicky Посмотреть сообщение
    то никуда более?
    Так точно, Сэр !
    *
    В самых крайних случаях, при наличии аппаратных колодок-переходов, можно хитрить с перестановкой линий АД13, АД14, АД15 - т.е. из 100000 сделать 020000 ил 040000 ( 8 ).
    *
    Т.к. запоминающий элемент в 1801РР1 - конденсатор, можно для полной прочистки делать выдержку при +190 градусах цельсия часок - может быть, адрес таки утечет...
    Почему лучше не превышать +220 градусов - а выводы и крышечка корпуса припаяны припоем ПОС-40, с температурой плавления 238 градусов...
    Блог : http://collectingrd.kxk.ru/ . В ЛС прошу не писать, все сообщения MMTEMA@MAIL.RU

  4. #14

    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZPilot Посмотреть сообщение
    Не пойдет. Нет 16 толерантных к 5 вольтам пинов одного порта.
    Ну, в этом месте толерантность и необязательна. Внутренняя шина всех плат на 1801-х м/с весьма хилая, по крайней мере в высоких уровнях, и подтяжки там, обычно, 4.7 кОм. Просядет оно до +4В (+3.3 + 0.7В на диодах), никто и не заметит, оно там и так до +5 не дотягтвает. Вон, коллега Vslav склепал свой РЕ-мулятор на F303, а там GPIOB вообще ни разу не толерантный.
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  5. #15

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    Вон, коллега Vslav склепал свой РЕ-мулятор на F303, а там GPIOB вообще ни разу не толерантный.
    Коллега Vslav склепал РЕ-мулятор на stm32f205 и там все выводы GPIOB (адрес/данные МПИ) помечены в документации как FT (5V tolerant). То же самое относится к остальным входам на других портах (nSYNC, nDIN, etc). Толерантность относится только к режиму входа, поэтому когда нужен вывод данных - порт B переключается в режим открытый коллектор, чтобы верхние транзисторы в порту не открывались и на +3.3V через них не натекало.

  6. #16

    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Значит склероз таки подвел.

    Так вот почему я не мог найти тему про РЕ-мулятор. Она не на месте. Ее почему-то занесло в раздел "Отечественные компьютеры - разное", где обсуждают всякое барахло типа Крионн-128, Практик ПК8641 и прочие Роботроны 1715 и куда я, практически, не заглядываю. А поиск по нашему форуму - еще то чудо!.. Если что, вот она.

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

    Цитата Сообщение от Vslav Посмотреть сообщение
    Толерантность относится только к режиму входа, поэтому когда нужен вывод данных - порт B переключается в режим открытый коллектор, чтобы верхние транзисторы в порту не открывались и на +3.3V через них не натекало.
    Да много там натечет через подтяжку 4.7 кОм и разности потенциалов 1.7 В...
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

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

  8. #17

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    Ее почему-то занесло в раздел "Отечественные компьютеры - разное"
    Причешу проект и выложу на гитхаб.

    Цитата Сообщение от AFZ Посмотреть сообщение
    Да много там натечет через подтяжку 4.7 кОм и разности потенциалов 1.7 В...
    Это же универсальный модуль, может вставляться куда угодно, какие там подтяжки - неизвестно, что там и как на шину может эпизодически вылезти - неизвестно, поэтому - надо соответствовать.

    Этот пользователь поблагодарил Vslav за это полезное сообщение:

    hobot(15.06.2020)

  9. #18

    Регистрация
    20.04.2013
    Адрес
    г. Павловский Посад
    Сообщений
    4,246
    Спасибо Благодарностей отдано 
    498
    Спасибо Благодарностей получено 
    557
    Поблагодарили
    436 сообщений
    Mentioned
    42 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    Ее почему-то занесло в раздел "Отечественные компьютеры - разное", где обсуждают всякое барахло типа Крионн-128, Практик ПК8641 и прочие Роботроны 1715 и куда я, практически, не заглядываю.
    Есть 2 вида взглядов на ретро-ВТ :
    1. Профессиональный ( электронщика ) - по типу процессора ( с чем совместим ) - Интел, ДЕК, Моторола, др. Либо с чем обычно применялся ( например, 15-ИЭ-00-013 ).
    2. Музейщика - коллекционера - где и когда сделан - СССР, соцстраны, Запад, Япония, Китай.

    Я довольно давно продвигал здесь идею отделить DEC - ветку форума от Зилога и Интеля, по типу Барахолки , со своей регистрацией.
    Блог : http://collectingrd.kxk.ru/ . В ЛС прошу не писать, все сообщения MMTEMA@MAIL.RU

  10. #19

    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Это же универсальный модуль, может вставляться куда угодно, какие там подтяжки - неизвестно, что там и как на шину может эпизодически вылезти - неизвестно, поэтому - надо соответствовать.
    Оно-то, конечно, так. Только не следует забывать, что максимальный выходной ток в состоянии низкого уровня на выходе у оригинальных РР1 и РЕ2 всего 3.2 мА. Так, что абсолютный минимум подтяжки - 1.5 кОм. И это только в случае, если к шине не подключено никаких не-1801-х микросхем, ибо любая 1533-я м/с - это минус 150 мкА из этих 3.2 мА, а они там тоже встречаются...

    Цитата Сообщение от Vslav Посмотреть сообщение
    Причешу проект и выложу на гитхаб.
    Давно пора.

    Цитата Сообщение от Vslav Посмотреть сообщение
    Но народ чего-то РЕ-муляторы только ругает, то с монтажем проблемы, то залить сложно, то имадж построить, поэтому как-то оно без лишнего энтузиазма у меня.
    А это ты переоценил подготовку своих покупателей. Вон, СуперМакс продает наши AZ в комплекте с ST-link V2, для тех кто не специалист в МК. На страничке поддержки выложена подробнейшая инструкция по установке и настройке STM32 ST-link Utility, порядок выполнения процедуры перезаписи и т.п. Все это с картинками и пр. Для РЕ-мулятора надо только добавить процедуру сборки клиентских образов ПЗУ вместе с твоей софтиной в общий хекс-файл, и вперед! И жалобы покупателей волшебным образом прекратятся. А про монтаж я уже отписался...
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

    Этот пользователь поблагодарил AFZ за это полезное сообщение:

    hobot(15.06.2020)

  11. #20

    Регистрация
    09.04.2009
    Адрес
    Зеленоград
    Сообщений
    449
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    429
    Поблагодарили
    196 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Развел плату.



    Подкорректированная схема.
    https://cloud.mail.ru/public/4Rwt/2ZPAQYW56

    Эти 3 пользователя(ей) поблагодарили Ynicky за это полезное сообщение:

    hobot(24.06.2020), Hunta(24.06.2020), vwarlock(17.02.2021)

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя

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

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

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

Похожие темы

  1. РЕ-мулятор - внутрисхемный эмулятор 1801РЕ2/1801РР1
    от Vslav в разделе Разработка электроники
    Ответов: 152
    Последнее: 20.10.2025, 19:07
  2. Ответов: 247
    Последнее: 17.11.2024, 07:55
  3. Про 1801РР1
    от Andrey_Korabelev в разделе Разработка электроники
    Ответов: 7
    Последнее: 26.03.2021, 15:27
  4. Продам МС5310 блок дисководов к УКНЦ+КМД УКНЦ
    от Mad Killer/PG в разделе Барахолка (архив)
    Ответов: 7
    Последнее: 19.03.2012, 11:27

Ваши права

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