Радио-86РК на SRAM 32K
Moderator: Shaos
- 
				alexcp  
- Senior
- Posts: 156
- Joined: 11 Jun 2012 07:30
Радио-86РК на SRAM 32K (2018)
Схема прототипа мало отличается от схемы 2012 года: удалены ROM-диск, адаптер PS/2 клавиатуры и источник питания на модулях, обеспечен запуск монитора с адреса F800 (а не E000, как в первоначальном варианте). К589ИР12 заменен на на ИР33/LS573 + инвертор, а К155ИР13 - на 2 шт. ИР11/LS194.
В феврале 2024 года Shaos добавил сюда вторую картинку для пущей понятности:
			
			
						В феврале 2024 года Shaos добавил сюда вторую картинку для пущей понятности:
You do not have the required permissions to view the files attached to this post.
							
					Last edited by alexcp on 02 Jan 2019 19:42, edited 8 times in total.
									
			
						
										
						- 
				Shaos  
- Admin
- Posts: 24397
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
- 
				alexcp  
- Senior
- Posts: 156
- Joined: 11 Jun 2012 07:30
Re: Радио-86РК на SRAM 32K
Да, иду на мировой рекорд   
 
Эмуляторы, конечно, существенно компактнее, как на ESP8266, так и на PIC32.
Кстати, существуют SMT версии для 8255 и 8085, так что можно еще ужаться по размерам, да и раскладывать SMT по плате существенно легче, чем паять каждую ногу. С другой стороны, я не вижу use case'а для суперкомпактного компьютера, которому нужны дисплей и клавиатура.
			
			
													 
 Эмуляторы, конечно, существенно компактнее, как на ESP8266, так и на PIC32.
Кстати, существуют SMT версии для 8255 и 8085, так что можно еще ужаться по размерам, да и раскладывать SMT по плате существенно легче, чем паять каждую ногу. С другой стороны, я не вижу use case'а для суперкомпактного компьютера, которому нужны дисплей и клавиатура.
					Last edited by alexcp on 15 Dec 2018 19:39, edited 2 times in total.
									
			
						
										
						- 
				newold86
- Devil
- Posts: 734
- Joined: 30 Nov 2013 11:08
- Location: WWW
Re: Радио-86РК на SRAM 32K
Красиво... Я давно сам думал сделать что-то подобное, но был занят другими проектами...
Насчет раскладывания SMT - я настолько обленился, что даже при отсутствии SMT версий каких-то микросхем, просто использую SMT панельки. Еще уменьшил базовый размер рассыпухи до 0603 (начинал с 1210, долгое время был на 0805), вообще красота - места почти не занимает. 0402 приходится использовать только в виде блокировочных конденсаторов питания для BGA корпусов - там между ногами бОльшие размеры не помещаются...
			
			
									
						
										
						Насчет раскладывания SMT - я настолько обленился, что даже при отсутствии SMT версий каких-то микросхем, просто использую SMT панельки. Еще уменьшил базовый размер рассыпухи до 0603 (начинал с 1210, долгое время был на 0805), вообще красота - места почти не занимает. 0402 приходится использовать только в виде блокировочных конденсаторов питания для BGA корпусов - там между ногами бОльшие размеры не помещаются...
- 
				alexcp  
- Senior
- Posts: 156
- Joined: 11 Jun 2012 07:30
Re: Радио-86РК на SRAM 32K
На мой взгляд, использование SMT в самоделках - это вопрос отчасти навыков, отчасти наличия соответствующего оборудования. 
Например, SOIC и 1210/1206 хорошо видно невооруженным глазом, их легко паять вручную, и только для контроля качества нужна лупа. SSOP и 0805/0603 без лупы паять неудобно, а 0402 и мельче, думаю, и невозможно. Удобен монтажный микроскоп, но его нужно купить и куда-то поставить. Пайка горячим воздухом решает часть проблем, в том числе ремонта/rework, но требует наличия фена. Reflow oven позволяет, например, уверенно использовать DFN/QFN, но опять же, требует денег и места, а также трафаретов, особенно для мелких (0603) и fine pitch (<=0.65мм) деталей.
Если все это оборудование иметь, то тогда можно быстро и удобно собирать довольно сложные вещи, но они оказываются недоступны для повторения тем, у кого нет соответствующего оборудования и опыта работы с ним, так что не все смогут приобщиться. Например, готовую плату под QFN с шагом выводом 0.4мм невозможно собрать без горячего воздуха и трудно - без трафарета. С другой стороны, многие современные компоненты существуют только в SMT, и навык работы с ними приходит с опытом.
Есть, наверное, какая-то золотая середина.
			
			
													Например, SOIC и 1210/1206 хорошо видно невооруженным глазом, их легко паять вручную, и только для контроля качества нужна лупа. SSOP и 0805/0603 без лупы паять неудобно, а 0402 и мельче, думаю, и невозможно. Удобен монтажный микроскоп, но его нужно купить и куда-то поставить. Пайка горячим воздухом решает часть проблем, в том числе ремонта/rework, но требует наличия фена. Reflow oven позволяет, например, уверенно использовать DFN/QFN, но опять же, требует денег и места, а также трафаретов, особенно для мелких (0603) и fine pitch (<=0.65мм) деталей.
Если все это оборудование иметь, то тогда можно быстро и удобно собирать довольно сложные вещи, но они оказываются недоступны для повторения тем, у кого нет соответствующего оборудования и опыта работы с ним, так что не все смогут приобщиться. Например, готовую плату под QFN с шагом выводом 0.4мм невозможно собрать без горячего воздуха и трудно - без трафарета. С другой стороны, многие современные компоненты существуют только в SMT, и навык работы с ними приходит с опытом.
Есть, наверное, какая-то золотая середина.
					Last edited by alexcp on 15 Dec 2018 19:39, edited 1 time in total.
									
			
						
										
						- 
				fifan  
- Devil
- Posts: 917
- Joined: 06 Oct 2006 03:17
- Location: г.Лянтор,Сургутского р-на,ХМАО
Re: Радио-86РК на SRAM 32K
Я всё таки не нашёл упоминание в постах - а плата разведена на двух слоях или более?
			
			
									
						
										
						- 
				alexcp  
- Senior
- Posts: 156
- Joined: 11 Jun 2012 07:30
Re: Радио-86РК на SRAM 32K
Плата четырёхслойная - в двух не развелось  
Дополнил свой пост выше, чтобы было понятно.
			
			
													
Дополнил свой пост выше, чтобы было понятно.
					Last edited by alexcp on 15 Dec 2018 18:06, edited 1 time in total.
									
			
						
										
						- 
				alexcp  
- Senior
- Posts: 156
- Joined: 11 Jun 2012 07:30
USB интерфейс
Еще две игрушки на ту же тему.
Первая - это USB интерфейс на базе FT245R, который можно воткнуть вместо ВВ55.
Со стороны хоста (PC) это выглядит как виртуальный последовательный порт (/dev/tty.usbserial-XXXXXXXX или COMx), а со стороны РК - как два порта, один двунаправленный для данных, второй, только на чтение, содержит два бита статуса очередей чтения/записи. Если воткнуть платку в РК вместо D14, то порт данных будет находиться по всем четным адресам 0xAxxx, а порт статуса - по всем нечетным. Их можно читать/писать даже из Монитора, директивами D или L и M или F, соответственно.
Пример использования из ассемблера:К сожалению, в схеме допущена ошибка - вывод 5 U4 подключен к A0, а должен бы к /A0. Из-за этого данных порт на запись/передачу расположен не по четному адресу, а по нечетному, по которому на чтение выдаются биты состояния FIFO. Исправлю в следующей редакции.
			
			
						Первая - это USB интерфейс на базе FT245R, который можно воткнуть вместо ВВ55.
Со стороны хоста (PC) это выглядит как виртуальный последовательный порт (/dev/tty.usbserial-XXXXXXXX или COMx), а со стороны РК - как два порта, один двунаправленный для данных, второй, только на чтение, содержит два бита статуса очередей чтения/записи. Если воткнуть платку в РК вместо D14, то порт данных будет находиться по всем четным адресам 0xAxxx, а порт статуса - по всем нечетным. Их можно читать/писать даже из Монитора, директивами D или L и M или F, соответственно.
Пример использования из ассемблера:
Code: Select all
;===========================================================================
;  FT245R use example
;  Created by @alexcp on 18 Dec 2018
;  
;
FT245R  equ     0A000h  ;  base address of FT245R FIFO
DATA    equ     0       ;  Data register
STAT    equ     1       ;  Status register
;
;  Define FIFO port
FIFO_DATA   equ   FT245R+DATA
FIFO_STATUS equ   FT245R+STAT
RXEMPTY equ     1       ; MASK FOR RX BUFFER EMPTY
TXFULL  equ     2       ; MASK FOR TX BUFFER FULL
;
;===========================================================================
;  Get a character to A
;
;  Return A=char, CY=0 if data received
;         CY=1 if timeout
;
;  Uses 4 bytes of stack including return address
;
GETCHAR:
        PUSH    D
        LXI     D,8000h       ;long timeout
gc10:   DCX     D
        MOV     A,D
        ORA     E
        JZ      gc90          ;exit if timeout
        LDA     FIFO_STATUS   ;read device status
        ANI     RXEMPTY
        JNZ     gc10          ;not ready yet.
;
;  Data received:  return CY=0. data in A
        XRA     A             ;cy=0
        LDA     FIFO_DATA     ;read data
        POP     D
        RET
;
;  Timeout:  return CY=1
gc90:   STC                   ;cy=1
        POP     D
        RET
;
;===========================================================================
;  Output character in A
;
;  Uses 4 bytes of stack including return address
;
PUTCHAR:
        PUSH    PSW           ;save byte to output
pc10:   LDA     FIFO_STATUS   ;read device status
        ANI     TXFULL        ;tx full ?
        JNZ     pc10
        POP     PSW
        STA     FIFO_DATA     ;transmit char
        RETYou do not have the required permissions to view the files attached to this post.
							
					Last edited by alexcp on 21 Dec 2018 11:53, edited 14 times in total.
									
			
						
										
						- 
				alexcp  
- Senior
- Posts: 156
- Joined: 11 Jun 2012 07:30
Re: Радио-86РК на SRAM 32K
Вторая игрушка - интерфейс I2C на базе PCF8584, тоже втыкается вместо ВВ55.
Пример программирования:
			
			
						Пример программирования:
Code: Select all
; PCF8584 use example
; Created by @alexcp on 20 Dec 2018
; 
; Define PCF8584 ports
PCF_BASE    EQU     0A000h
DATA_REG    EQU     0
CTRL_REG    EQU     1
PCF_DATA    EQU     PCF_BASE+DATA_REG
PCF_CTRL    EQU     PCF_BASE+CTRL_REG
;
; Define PCF8584 status bit masks
PCF_BBN     EQU     01h             ; bus busy, active low
PCF_PIN     EQU     80h             ; pending interrupt, active low
PCF_LRB     EQU     08h             ; last received bit (typically the ACK bit)
;
; Define slave address
SLAVE_ADDR  EQU     8
; Byte to send to the slave
DATA_BYTE   EQU     'A'
;
            ORG     0
; initialize PCF8584
PCF_INIT:
; program own slave address (this is required even if the address is not used)
            MVI     A, 80h          ; serial interface off; next byte will be loaded into register own address register
            STA     PCF_CTRL
            MVI     A, 55h          ; effective own address becomes 0AAh (55h<<1)
            STA     PCF_DATA
; program clock and I2C bus speed
            MVI     A, 0A0h         ; next byte will be loaded into the clock control register S2
            STA     PCF_CTRL
            MVI     A, 1Ch          ; system clock is 12 MHz; SCL = 90 kHz
            STA     PCF_DATA
; enable serial interface
            MVI     A, 0C1h         ; enable serial interface, set I2C-bus into idle mode
            STA     PCF_CTRL
;
; now actually send something to a slave
PCF_MASTER_TX:
; wait for bus availability
            LDA     PCF_CTRL        ; load status byte
            ANI     PCF_BBN         ; is bus available?
            JZ      PCF_MASTER_TX   ; JIF not available
; form the slave address with the R/W bit (R=1, W=0) at LSB
            XRA     A               ; Carry = 0
            MVI     A, SLAVE_ADDR   ; load slave address
            RAL                     ; shift address left, set R/W bit to 0 (write)
            STA     PCF_DATA
; generate START condition on the I2C bus and clock out the address byte
            MVI     A, 0C5h          
            STA     PCF_CTRL        ; transmit address + R/W bit
TX10:
; wait for the transmission to finish
            LDA     PCF_CTRL        ; poll for transmission finished
            MOV     B, A            ; store status byte for the later chack for acknowledgement
            ANI     PCF_PIN         ; is transmission complete?
            JNZ     TX10            ; not complete, keep waiting
            MOV     A, B
; check if the slave acknowledged the address
            ANI     PCF_LRB         ; slave acknowledged?
            JNZ     TXSTOP          ; JIF not acknowledged - maybe the slave is busy or not present at that address
; slave acknowledged the address, so send the data
            MVI     A, DATA_BYTE    ; byte to be transferred
            STA     PCF_DATA        ; send the data byte to the slave
TX20:
; wait for the transmission to finish
            LDA     PCF_CTRL        ; poll for transmission finished
            ANI     PCF_PIN
            JNZ     TX20            ; JIF not finished
; here one can check for acknowledgement and send the next byte, etc.
TXSTOP:
; generate STOP condition on the I2C bus
            MVI     A, 0C3h          
            STA     PCF_CTRL        ; generate STOP condition
;
            JMP     PCF_MASTER_TX   ; repeat sending sequence
You do not have the required permissions to view the files attached to this post.
							
					Last edited by alexcp on 21 Dec 2018 11:41, edited 2 times in total.
									
			
						
										
						- 
				Shaos  
- Admin
- Posts: 24397
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
- 
				newold86
- Devil
- Posts: 734
- Joined: 30 Nov 2013 11:08
- Location: WWW
Re: Радио-86РК на SRAM 32K
Пожалуй, это основной недостаток технологии, хотя, к сожалению, очень серьезный - и так понимаешь, что очень мало людей, кому интересно возиться с подобной фигней, а если еще практически гарантированно сама технология накладывает аграничения на тех, кто в принципе мог бы, но не может себе позволить соответствующее оборудование, то вообще энтузиазм теряетсяalexcp wrote:, но они оказываются недоступны для повторения тем, у кого нет соответствующего оборудования и опыта работы с ним, так что не все смогут приобщиться.

Но заставить себя возиться с паяльником тоже не могу... Да и объективно, осеовная зона моих интересов требует микросхемы с большим количеством ножек, которые есть только у BGA...
- 
				alexcp  
- Senior
- Posts: 156
- Joined: 11 Jun 2012 07:30
Re: Радио-86РК на SRAM 32K
Для питания теперь используется готовый адаптер на 5 вольт с разъемом MicroUSB. Напряжения +12 и -5 вольт для ВМ80 обеспечивает отдельный преобразователь - см. схему ниже. Работает отлично, но с оговоркой, что выходное напряжение многих адаптеров под нагрузкой (общий ток потребления для  РК86 и TFT дисплея составляет 850-900 мA) проседает, в зависимости от конкретного адаптера, на 0.5 вольта и больше, даже если максимальный ток нагрузки для адаптера заявлен 2А. Мне пришлось купить новый.
Преобразователь использует один boost converter для получения двух разнополярных напряжений. От аналогов, обсуждавшихся, например, в соседнем форуме, отличается схемой выпрямителя, фильтра и стабилизатора в канале -5 вольт. Кроме того, использование boost converter с высокой частотой переключения (1.6МГц) позволило применить малогабаритные компоненты и собрать все вместе на плате размером 32x26мм - см. фото. Преобразователь прекрасно себя чувствует под нагрузкой 120мА по каналу +12 вольт и 50 мА по каналу -5 вольт, это не считая светодиодов на плате самого конвертера. РК86 столько не нужно, конечно.
			
			
						Преобразователь использует один boost converter для получения двух разнополярных напряжений. От аналогов, обсуждавшихся, например, в соседнем форуме, отличается схемой выпрямителя, фильтра и стабилизатора в канале -5 вольт. Кроме того, использование boost converter с высокой частотой переключения (1.6МГц) позволило применить малогабаритные компоненты и собрать все вместе на плате размером 32x26мм - см. фото. Преобразователь прекрасно себя чувствует под нагрузкой 120мА по каналу +12 вольт и 50 мА по каналу -5 вольт, это не считая светодиодов на плате самого конвертера. РК86 столько не нужно, конечно.
You do not have the required permissions to view the files attached to this post.
			
						
										
						- 
				fifan  
- Devil
- Posts: 917
- Joined: 06 Oct 2006 03:17
- Location: г.Лянтор,Сургутского р-на,ХМАО
Re: Радио-86РК на SRAM 32K
Вопрос по преобразователю. Применяются не полярные конденсаторы, хотя судя по их ёмкости лучше применить электролиты (2.2 и 4.7 мкФ).
			
			
									
						
										
						- 
				alexcp  
- Senior
- Posts: 156
- Joined: 11 Jun 2012 07:30
Re: Радио-86РК на SRAM 32K
В связи с высокой частотой преобразования (1.6МГц), для LMR62014 рекомендованы (см. datasheet, стр. 9) как раз многослойные керамические - у них, по сравнению с электролитами, меньше ESR и выше собственная резонансная частота.
			
			
						You do not have the required permissions to view the files attached to this post.
			
						
										
						- 
				Shaos  
- Admin
- Posts: 24397
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Радио-86РК на SRAM 32K
Скопирую сюда тоже, а то может кто не заметить, что фотка всей конструкции в целом на предыдущей страничке появилась 

А от аккумуляторов пробовал питать? Это уже получается настоящий микроноутбук РК
			
			
									
						
										
						
А от аккумуляторов пробовал питать? Это уже получается настоящий микроноутбук РК

 
				