
Создание прошивки для GAL22V10 вручную...
Moderator: Shaos
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Создание прошивки для GAL22V10 вручную...
Решил создать прошивку для GAL22V10 не прибегая к помощи разнообразных средств разработки, а именно - вручную. Берём страницу даташита где изображена картинка внутреннего устройства (DIP Package Pinouts), берём ручку и обозначаем те места, где должны остаться перемычки... 

Last edited by Shaos on 08 Dec 2007 20:17, edited 1 time in total.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Fanat
- Posts: 93
- Joined: 16 May 2007 01:01
- Location: 212.5.73.205
Re: Разработка прошивки для GAL вручную...
А дальше???? Берём иголочку с ниткой и прошиваем на картинке обозначенные места????...Так, как дальше то, например, счетчик собрать, как это вручную сделать???Shaos wrote:Решил создать прошивку для GAL22V10 не прибегая к помощи разнообразных средств разработки, а именно - вручную. Берём страницу даташита где изображена картинка внутреннего устройства (DIP Package Pinouts), берём ручку и обозначаем те места, где должны остаться перемычки...
-
- Banned
- Posts: 2139
- Joined: 20 Mar 2005 13:41
- Location: От туда
Re: Разработка прошивки для GAL вручную...
Надо вышивать крестиком.Rokl wrote:А дальше???? Берём иголочку с ниткой и прошиваем на картинке обозначенные места????...Так, как дальше то, например, счетчик собрать, как это вручную сделать???Shaos wrote:Решил создать прошивку для GAL22V10 не прибегая к помощи разнообразных средств разработки, а именно - вручную. Берём страницу даташита где изображена картинка внутреннего устройства (DIP Package Pinouts), берём ручку и обозначаем те места, где должны остаться перемычки...
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Разработка прошивки для GAL вручную...
А дальше пишем в текстовом редакторе .jed файл и шьём любым GAL-совместимым программаторомRokl wrote:А дальше???? Берём иголочку с ниткой и прошиваем на картинке обозначенные места????...Так, как дальше то, например, счетчик собрать, как это вручную сделать???Shaos wrote:Решил создать прошивку для GAL22V10 не прибегая к помощи разнообразных средств разработки, а именно - вручную. Берём страницу даташита где изображена картинка внутреннего устройства (DIP Package Pinouts), берём ручку и обозначаем те места, где должны остаться перемычки...

Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Минимальный формат JEDEC (без тестовых векторов), необходимый для прошивки GAL22V10 (аналогично и для других перепрограммируемых микросхем с открытой архитектурой), до безобразия прост - основной текст находится между двумя символами - '\x02' и '\x03', обозначающими начало и конец сообщения, между ними располагаются команды, разделённые звёздочками (далее свои комментарии по тексту пишу после трёх минусов --- их в тексте файла .jed не должно быть):
здесь произвольный текст
.--- тут должен быть символ '\x02'
GAL22V10*QP24*QF5892* --- некий текст, далее количество ног у микросхемы (после QP) и количество перепрограммируемых перемычек (после QF)
G0*F0* --- секьюрный бит (после G) и состояние перемычек по умолчанию (после F, обычно 0 - нетронуто)
N note* --- комментарии пишутся после символа N
L0000 11111111011111111111111111111101111111111111* --- список прожигаемых (1) и оставляемых (0) перемычек, непосредственно после L пишется номер первой перемычки в этой строке (тут 0)
L0044 11111111110111111101111111110111111111111111* --- списков может быть несколько (в этой строке адрес первой перемычки - 44)
C5C65* --- после буквы C идёт шестнадцатиричное представление 16-битной контрольной суммы прошивки (сумма байтов, составленных из битов-перемычек)
. --- тут должен быть символ '\x03'
0000 --- шестнадцатиричная контрольная сумма текстового сообщения (вместе с переводами строк и т.д.), однако допустимо использовать 0000 в качестве признака игнориования контрольной суммы сообщения.
Краткое описание составлено вот по этому тексту: http://ftp.dataio.com/appnotes/jedec2.txt
здесь произвольный текст
.--- тут должен быть символ '\x02'
GAL22V10*QP24*QF5892* --- некий текст, далее количество ног у микросхемы (после QP) и количество перепрограммируемых перемычек (после QF)
G0*F0* --- секьюрный бит (после G) и состояние перемычек по умолчанию (после F, обычно 0 - нетронуто)
N note* --- комментарии пишутся после символа N
L0000 11111111011111111111111111111101111111111111* --- список прожигаемых (1) и оставляемых (0) перемычек, непосредственно после L пишется номер первой перемычки в этой строке (тут 0)
L0044 11111111110111111101111111110111111111111111* --- списков может быть несколько (в этой строке адрес первой перемычки - 44)
C5C65* --- после буквы C идёт шестнадцатиричное представление 16-битной контрольной суммы прошивки (сумма байтов, составленных из битов-перемычек)
. --- тут должен быть символ '\x03'
0000 --- шестнадцатиричная контрольная сумма текстового сообщения (вместе с переводами строк и т.д.), однако допустимо использовать 0000 в качестве признака игнориования контрольной суммы сообщения.
Краткое описание составлено вот по этому тексту: http://ftp.dataio.com/appnotes/jedec2.txt
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Doomed
- Posts: 408
- Joined: 18 Feb 2007 11:40
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
-
- Fanat
- Posts: 73
- Joined: 02 Oct 2007 02:25
- Location: 78.108.67.186
Использовали и в России, и выглядело это, что то, типа, так :Different wrote:А кто-нибудь у нас в России использует GAL-ы? Есть вообще желание их пощупать?
; INPUTS
pin 1 meandr
pin 2 cikl
pin 3 stabil
pin 4 p0
pin 5 p1
pin 6 p2
pin 7 busy
pin 8 strti ; ПУСК - нефиксируемая кнопка.
pin 9 stopi ; СТОП - кнопка.
pin 10 in1 ; Концевик заслонки 1 разгрузки бункера.
pin 11 in2 ; Концевик заслонки 2 загрузки бункера.
pin 13 run
; OUTPUTS
pin 14 strreg regfbk
pin 15 stop regfbk
pin 16 strt regfbk
pin 17 tare regfbk
pin 18 out6 regfbk ; out6 Подхват кнопки "Пуск"
pin 19 doza_ok regfbk ; out5 "Доза набрана"-Разгрузка заслонка 1
pin 20 null regfbk ; out4 "Ноль"
pin 21 fine regfbk ; out3 питатель "Точно"
pin 22 gross regfbk ; out2 питатель "Грубо"
pin 23 load regfbk ; out1 "Загруз" заслонка 2
EQUATIONS
; Имеется накопительный бункер, из которого заслонкой или шнековыми питателями
;материал подается в весовой бункер
; после замыкания кнопки "Пуск" и при отпущенной кнопке "Стоп" и при замкнутых концевиках
; на заслонках разгрузки-выгрузки весового бункера
; Цикл "загрузка-разгрузка" продолжается непрерывно при замкнутой кнопке "Пуск",
; пока не будет нажата кнопка "Стоп".
/strreg.d := ( /strt + /stop + /strreg ) * busy * run
/null.d := /p0 * /p1 * /p2 * run
/out6.d := /strti * /null * /cikl * stopi * /in1 * /in2 * run
+ /out6 * /cikl * stopi * /in1 * /in2 * doza_ok * run
/strt.d := /out6 * /null * /in1 * /in2 * /cikl * stabil * doza_ok * strreg * run
/gross.d := /null * cikl * stopi * /in1 * strreg * doza_ok * run
+ /gross * /p1 * /p2 * /in1 * cikl * doza_ok * run
/fine.d := p0 * p1 * /p2 * gross * cikl * stopi * /in1 * strreg * doza_ok * run
+ /fine * p0 * /p2 * /in1 * cikl * doza_ok * run
/tare.d := /out6 * /null * /in1 * /in2 * /cikl * stabil * doza_ok * strreg * run
/load.d := /null * stopi * doza_ok * cikl * strreg * /in1 * /in2 * run
+ /p2 * /load * doza_ok * cikl * /in1 * in2 * run
/stop.d := p0 * p1 * p2 * load * doza_ok * cikl * stabil * strreg * run
+ /stopi * strreg * run
+ in1 * load * cikl * strreg * run
/doza_ok.d := p0 * p1 * p2 */in2 * /cikl * load * run
+/doza_ok * /cikl * p0 * run
strreg.trst = run doza_ok.trst = run
strt.trst = run out6.trst = run
stop.trst = run tare.trst = run
load.trst = run null.trst = run
-
- Doomed
- Posts: 408
- Joined: 18 Feb 2007 11:40
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
это чтоли PALASM?AlexM wrote:Использовали и в России, и выглядело это, что то, типа, так :Different wrote:А кто-нибудь у нас в России использует GAL-ы? Есть вообще желание их пощупать?
; INPUTS
pin 1 meandr
pin 2 cikl
pin 3 stabil
pin 4 p0
pin 5 p1
pin 6 p2
pin 7 busy
pin 8 strti ; ПУСК - нефиксируемая кнопка.
pin 9 stopi ; СТОП - кнопка.
pin 10 in1 ; Концевик заслонки 1 разгрузки бункера.
pin 11 in2 ; Концевик заслонки 2 загрузки бункера.
pin 13 run
; OUTPUTS
pin 14 strreg regfbk
pin 15 stop regfbk
pin 16 strt regfbk
pin 17 tare regfbk
pin 18 out6 regfbk ; out6 Подхват кнопки "Пуск"
pin 19 doza_ok regfbk ; out5 "Доза набрана"-Разгрузка заслонка 1
pin 20 null regfbk ; out4 "Ноль"
pin 21 fine regfbk ; out3 питатель "Точно"
pin 22 gross regfbk ; out2 питатель "Грубо"
pin 23 load regfbk ; out1 "Загруз" заслонка 2
EQUATIONS
; Имеется накопительный бункер, из которого заслонкой или шнековыми питателями
;материал подается в весовой бункер
; после замыкания кнопки "Пуск" и при отпущенной кнопке "Стоп" и при замкнутых концевиках
; на заслонках разгрузки-выгрузки весового бункера
; Цикл "загрузка-разгрузка" продолжается непрерывно при замкнутой кнопке "Пуск",
; пока не будет нажата кнопка "Стоп".
/strreg.d := ( /strt + /stop + /strreg ) * busy * run
/null.d := /p0 * /p1 * /p2 * run
/out6.d := /strti * /null * /cikl * stopi * /in1 * /in2 * run
+ /out6 * /cikl * stopi * /in1 * /in2 * doza_ok * run
/strt.d := /out6 * /null * /in1 * /in2 * /cikl * stabil * doza_ok * strreg * run
/gross.d := /null * cikl * stopi * /in1 * strreg * doza_ok * run
+ /gross * /p1 * /p2 * /in1 * cikl * doza_ok * run
/fine.d := p0 * p1 * /p2 * gross * cikl * stopi * /in1 * strreg * doza_ok * run
+ /fine * p0 * /p2 * /in1 * cikl * doza_ok * run
/tare.d := /out6 * /null * /in1 * /in2 * /cikl * stabil * doza_ok * strreg * run
/load.d := /null * stopi * doza_ok * cikl * strreg * /in1 * /in2 * run
+ /p2 * /load * doza_ok * cikl * /in1 * in2 * run
/stop.d := p0 * p1 * p2 * load * doza_ok * cikl * stabil * strreg * run
+ /stopi * strreg * run
+ in1 * load * cikl * strreg * run
/doza_ok.d := p0 * p1 * p2 */in2 * /cikl * load * run
+/doza_ok * /cikl * p0 * run
strreg.trst = run doza_ok.trst = run
strt.trst = run out6.trst = run
stop.trst = run tare.trst = run
load.trst = run null.trst = run

Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Медленные и по цене одинаковые? У нас ATF16V8-10 стоят в несколько раз меньше, чем GAL16V8-10 (и то, и это 10 нс)Different wrote:ATF-ы медленнее, а по ценам практически одинаковые.Shaos wrote: В России есть ATF-ы, а вариант ispGAL вряд ли кому интересен из-за дороговизны и засекреченности...
И насчет секретности сомневаюсь.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Doomed
- Posts: 408
- Joined: 18 Feb 2007 11:40
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
ispGAL 2.3 нс есть за 4 доллара в корпусе QFN-32 - вручную такой не запаять...Different wrote:ispGAL и просто GAL - немного разные вещиShaos wrote: Медленные и по цене одинаковые? У нас ATF16V8-10 стоят в несколько раз меньше, чем GAL16V8-10 (и то, и это 10 нс)
ispGAL имеет 2,3нс, а GAL - вообще прошлый век, имхо
P.S. и вообще все PAL/GAL - это прошлый век, а в этом веке рулят FPGA

Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Сделал "вручную" прошивку для GAL16V8 (основная разница - надо писать *QP20*QF2194 и структура у микрухи иная) и попробовал прошить старые PALCE16V8 - в основном получилось, но входы 1 и 11 почему-то не хотят участвовать в вычислениях...Shaos wrote:Минимальный формат JEDEC (без тестовых векторов), необходимый для прошивки GAL22V10 (аналогично и для других перепрограммируемых микросхем с открытой архитектурой), до безобразия прост - основной текст находится между двумя символами - '\x02' и '\x03', обозначающими начало и конец сообщения, между ними располагаются команды, разделённые звёздочками (далее свои комментарии по тексту пишу после трёх минусов --- их в тексте файла .jed не должно быть):
здесь произвольный текст
.--- тут должен быть символ '\x02'
GAL22V10*QP24*QF5892* --- некий текст, далее количество ног у микросхемы (после QP) и количество перепрограммируемых перемычек (после QF)
G0*F0* --- секьюрный бит (после G) и состояние перемычек по умолчанию (после F, обычно 0 - нетронуто)
N note* --- комментарии пишутся после символа N
L0000 11111111011111111111111111111101111111111111* --- список прожигаемых (1) и оставляемых (0) перемычек, непосредственно после L пишется номер первой перемычки в этой строке (тут 0)
L0044 11111111110111111101111111110111111111111111* --- списков может быть несколько (в этой строке адрес первой перемычки - 44)
C5C65* --- после буквы C идёт шестнадцатиричное представление 16-битной контрольной суммы прошивки (сумма байтов, составленных из битов-перемычек)
. --- тут должен быть символ '\x03'
0000 --- шестнадцатиричная контрольная сумма текстового сообщения (вместе с переводами строк и т.д.), однако допустимо использовать 0000 в качестве признака игнориования контрольной суммы сообщения.
Краткое описание составлено вот по этому тексту: http://ftp.dataio.com/appnotes/jedec2.txt
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Fanat
- Posts: 73
- Joined: 02 Oct 2007 02:25
- Location: 78.108.67.186
Возможно, но на CUPL не похож, а может и ABEL ?Shaos wrote:это чтоли PALASM?AlexM wrote:...
/doza_ok.d := p0 * p1 * p2 */in2 * /cikl * load * run
+/doza_ok * /cikl * p0 * run
strreg.trst = run doza_ok.trst = run
strt.trst = run out6.trst = run
stop.trst = run tare.trst = run
load.trst = run null.trst = run
