![]() |
Подключал ли кто SPI (25XXX FRAM) к ZX ?
Code:
Пытаюсь сделать программатор AAARGH подскажите чё |
"вобщем посылаю ему код считать конфиг - в ответ приходят нули ."
А что должно приходить? |
Quote:
поэтому дкмаю доллжен получать в ответ покрайней мере X00011X0 |
А линия подтянута? Если да, то весьма вероятно, что мс отвечает.
|
Quote:
ну вроде и порты в звуковухе внутри тоже подтянуты |
"ну вроде и порты в звуковухе внутри тоже подтянуты"
Как скажете ... А так - пишет/читает? |
Quote:
чтения конфиггурации в ответ получено 80H http://img141.imageshack.us/img141/6858/4lu4aur8.gif Синий SCK Желтый SO http://img213.imageshack.us/img213/1...elow5soor2.gif Желтый SI http://img174.imageshack.us/img174/9...elow2siyg0.gif Жетый CS http://img205.imageshack.us/img205/9...elow1csfv7.gif теперь буду смотреть , что у меня происходит ... |
Извинямте за офтоп . Но какой девайс выдаёт такие пикчеры ?
|
Quote:
|
Quote:
|
Quote:
|
Quote:
Только я не понял при выдаче команды или при чтении ответа. Их общее число в пределах одной выборки (/CS=0), должно быть 16, а тебя 15. PS. SCK рекомендую держать по умолчанию = 0. PPS. Мне не нравится длинный SCK в середине цикла, по моему ты как раз здесь забыл его опустить в 0. |
Quote:
Так как реализуем SPI mode 0 то импульсов как раз 16 ( первый длинный ) http://img221.imageshack.us/img221/3...mmanualkb6.gif так то всё работает с БОЛЬШИМ программатором . я непойму сейчас следующее вот я выбрал в 2149 7 регистр ,записал туда %10xxxxxx теперь по идее 14 регистр должен работать на выход а 15 на вход . но реально както вся не так получается и еще из бейсика я даю например out 65533 и out 49149 и наблюдаю переключение на осциле аналогигная процедура в коде с запрещенными прерываниями не вызывает эмоций на выходе портов =( =( =( короче какой-то бред , так небывает ............ копаю дальше . как найду свет в конце тунеля оттпишусь .. |
Quote:
которые обеспечивают работу одной половины порта A (D7..D4) на прием, а другой (D3..D0) на передачу. Хотя по описания AY возможна работа всего порта либо на прием либо на передачу, в зависимости от состояния 7 и 6 бита регистра 7. Могу кинуть тебе, если интересно, эти процедуры, я их когда то дизассемблировал. |
Quote:
|
Quote:
|
Quote:
|
1 Attachment(s)
ЗАРАБОТАЛА !
ЧИТАЕТ 128 ! 80h AYSPI00.A CODE 40872,4907 TASM 4.0 |
Quote:
у меня тасм на реале , который rst7 написал =) |
Quote:
Quote:
подумай головой как грузить tzx в тасм??? |
Блин , всё равно странно ведет себя
прога байт состояния правильно считывает а подключаю оссцил и непонимаю как она это считала ... счас будут слайды ... |
Quote:
20 LOAD""CODE 30 PRINT USR 15619:REM:SAVE"AYSPI00"CODE 40872,4907 потом любым дискедитором меняешь разширение на A и грузишь в тасм |
;SUB AYVER ; BFFD -<FROM REGISTER ->SET REGISTER
; C 7FFD ->DATA TO REGISTER ; 4 BIT RES GFX ; 5 --- SI ; 6 --- SCK ; 7 --- CS ; B ; 0 BIT SO ;COMMANDS RDSR EQU #05 WRSR EQU #01 READ EQU #03 WRITE EQU #02 WREN EQU #06 WRDI EQU #04 ORG #8000 DI CALL INI_SPI CALL READ_ST LD HL,DATA_IN LD C,(HL) LD B,0 EI RET DATA_IN ! SHIT !0 DATA_OU ! SHIT !0 INI_SPI PUSH AF PUSH BC LD BC,65533 LD A,7 ;-7 REG MUST 10XXXXXX OUT (C),A LD BC,49149 LD A,128 ;1000000 OUT (C),A ;-------------------------------- LD BC,65533 LD A,15 ;B OUTPUT OUT (C),A ;SET FOR OUTPUT ; B FOR UTPUT LD A,%10110000 ;CS-H SCK-L SI-H LD BC,49149 OUT (C),A POP BC POP AF RET SH_IN NOP ;GET DATA TO A PUSH BC PUSH HL LD HL,DATA_IN LD (HL),0 NOP ;MSB FIRST LD A,%00110000 ;SCK LOW CALL OUT_B CALL IN_A RRA ;--->cy-DATA 7 BIT JR C,SET7 RES 7,(HL) JR RES7 SET7 SET 7,(HL) RES7 NOP LD A,%01110000 ;SCK HI CALL OUT_B NOP ;--------------------------------------------- LD A,%00110000 ;SCK LOW CALL OUT_B CALL IN_A RRA ;--->cy-DATA 7 BIT JR C,SET6 RES 6,(HL) JR RES6 SET6 SET 6,(HL) RES6 NOP LD A,%01110000 ;SCK HI CALL OUT_B NOP ;--------------------------------------------- LD A,%00110000 ;SCK LOW CALL OUT_B CALL IN_A RRA ;--->cy-DATA 7 BIT JR C,SET5 RES 5,(HL) JR RES5 SET5 SET 5,(HL) RES5 NOP LD A,%01110000 ;SCK HI CALL OUT_B NOP ;--------------------------------------------- LD A,%00110000 ;SCK LOW CALL OUT_B CALL IN_A RRA ;--->cy-DATA 7 BIT JR C,SET4 RES 4,(HL) JR RES4 SET4 SET 4,(HL) RES4 NOP LD A,%01110000 ;SCK HI CALL OUT_B NOP ;--------------------------------------------- LD A,%00110000 ;SCK LOW CALL OUT_B CALL IN_A RRA ;--->cy-DATA 7 BIT JR C,SET3 RES 3,(HL) JR RES3 SET3 SET 3,(HL) RES3 NOP LD A,%01110000 ;SCK HI CALL OUT_B NOP ;--------------------------------------------- LD A,%00110000 ;SCK LOW CALL OUT_B CALL IN_A RRA ;--->cy-DATA 7 BIT JR C,SET2 RES 2,(HL) JR RES2 SET2 SET 2,(HL) RES2 NOP LD A,%01110000 ;SCK HI CALL OUT_B NOP ;--------------------------------------------- LD A,%00110000 ;SCK LOW CALL OUT_B CALL IN_A RRA ;--->cy-DATA 7 BIT JR C,SET1 RES 1,(HL) JR RES1 SET1 SET 1,(HL) RES1 NOP LD A,%01110000 ;SCK HI CALL OUT_B NOP ;--------------------------------------------- LD A,%00110000 ;SCK LOW CALL OUT_B CALL IN_A RRA ;--->cy-DATA 7 BIT JR C,SET0 RES 0,(HL) JR RES0 SET0 SET 0,(HL) RES0 NOP LD A,%01110000 ;SCK HI CALL OUT_B NOP ;--------------------------------------------- NOP LD A,(HL) POP HL POP BC ; EI RET SH_OUT NOP ; ->DEVICE PUSH AF PUSH BC PUSH HL LD HL,DATA_OU NOP ;MSB FIRST LD A,%00000000 ;CS-LOW SCK 0 SI ; ;CS SCK SI RGFX ; CALL OUT_B BIT 7,(HL) JR Z,BIT7L LD A,%00110000 ;SI HIGH JR BIT7H BIT7L LD A,%00010000 ;CS 0 SCK 0 SI 0 BIT7H NOP CALL OUT_B SET 6,A ;CS0 SCK1 SI1 CALL OUT_B ;SETB SCK NOP ;------------------------- LD A,%00110000 ;CS-LOW SCK 0 SI CALL OUT_B BIT 6,(HL) JR Z,BIT6L LD A,%00110000 ;HIGH JR BIT6H BIT6L LD A,%00010000 BIT6H NOP CALL OUT_B SET 6,A ;CS0 SCK1 SI1 CALL OUT_B ;SETB SCK NOP ;------------------------- LD A,%00110000 ;CS-LOW SCK 0 SI CALL OUT_B BIT 5,(HL) JR Z,BIT5L LD A,%00110000 ;HIGH JR BIT5H BIT5L LD A,%00010000 BIT5H NOP CALL OUT_B SET 6,A ;CS0 SCK1 SI1 CALL OUT_B ;SETB SCK NOP ;------------------------- LD A,%00110000 ;CS-LOW SCK 0 SI CALL OUT_B BIT 4,(HL) JR Z,BIT4L LD A,%00110000 ;HIGH JR BIT4H BIT4L LD A,%00010000 BIT4H NOP CALL OUT_B SET 6,A ;CS0 SCK1 SI1 CALL OUT_B ;SETB SCK NOP ;------------------------- LD A,%00110000 ;CS-LOW SCK 0 SI CALL OUT_B BIT 3,(HL) JR Z,BIT3L LD A,%00110000 ;HIGH JR BIT3H BIT3L LD A,%00010000 BIT3H NOP CALL OUT_B SET 6,A ;CS0 SCK1 SI1 CALL OUT_B ;SETB SCK NOP ;------------------------- LD A,%00110000 ;CS-LOW SCK 0 SI CALL OUT_B BIT 2,(HL) JR Z,BIT2L LD A,%00110000 ;HIGH JR BIT2H BIT2L LD A,%00010000 BIT2H NOP CALL OUT_B SET 6,A ;CS0 SCK1 SI1 CALL OUT_B ;SETB SCK NOP ;------------------------- LD A,%00110000 ;CS-LOW SCK 0 SI CALL OUT_B BIT 1,(HL) JR Z,BIT1L LD A,%00110000 ;HIGH JR BIT1H BIT1L LD A,%00010000 BIT1H NOP CALL OUT_B SET 6,A ;CS0 SCK1 SI1 CALL OUT_B ;SETB SCK NOP ;------------------------- LD A,%00110000 ;CS-LOW SCK 0 SI CALL OUT_B BIT 0,(HL) JR Z,BIT0L LD A,%00110000 ;HIGH JR BIT0H BIT0L LD A,%00010000 BIT0H NOP CALL OUT_B SET 6,A ;CS0 SCK1 SI1 CALL OUT_B ;SETB SCK NOP RES 6,A ; !!!!!!!!!!!!!!!!!!!!! CALL OUT_B POP AF POP HL POP BC RET READ_ST DI ;READ STATUS PUSH AF PUSH BC PUSH HL LD A,%00000000 ;CS-LOW SCK 0 SI CALL OUT_B ;CLR CS LD A,RDSR LD HL,DATA_OU LD (HL),A CALL SH_OUT CALL SH_IN ;DATA IN DATA_IN LD A,%10110000 ;CS-LOW SCK 0 SI CALL OUT_B ;DESELECT POP HL POP BC POP AF RET ;AY SUBS ; OUT_B NOP ;SEND DATA IN A TO PORT B PUSH BC PUSH AF LD BC,65533 LD A,15 ; B PORT OUT (C),A LD BC,49149 POP AF OUT (C),A POP BC RET IN_A NOP ; READ DATA FROM A RETURNS A PUSH BC LD BC,65533 LD A,14 ; APORT OUT (C),A IN A,(C) POP BC RET |
короче теперь такая фишка - с одним щупом подключенным на sck или на SO
читает правильно стоит подключить второй щуп - начинает считывать ерунду :v2_down: |
Quote:
|
Quote:
|
Another day - another demo =(
Вобщем освоил чтение и запись пытаюсь разобюратся с защитой от записи получается такая штука говорю ему сними защиту { разреши запись , запиши в статусный регистр 80 h считай состояние статуса , если равно , приступай к записи ) всё происходит .... читаю потом микросхему на программаторе считывает область с 0000 до 02FF и останавливается , говорит типа произошла ошибка данные с 0000 по 02ff соответствуют тому , что писалось ... но вывести микросхему из такого ступора удаётся лишь приминив команду полное стирание .... как работать с защитой ? |
вобщем с защитой тоже всё работает , оказаллось меньше дергать микруху ркуой надо .
впоследствии код был переписан для работы через ВВ55 . если найду выложу . |
| All times are GMT +4. The time now is 17:13. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.