программатор для 2764, 573рф4 из журнала радио

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Грызет канифоль
Сообщения: 257
Зарегистрирован: Пн окт 03, 2016 10:06:09

Сообщение Леонид_М »

Да, схема очень похожа, если пришлете файлы - буду благодарен!
Только вопрос: на win7 программа пойдет?
И еще вопрос (может лишний): а считывать ПЗУ будет можно?
Спасибо!
Реклама
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="oleg110592",url="/forum/viewtopic.php?p=3562976#p3562976"]делал в 2005 программатор для 27С080 на mega8 + 2х561ИЕ10 (почти как в первом посте).[/uquote]
Мне кажется, что учитывая предполагаемые скорости можно взять какую-нибудь mega32 и написать простенькую программу которая в цикле мониторит адресные линии и выдает данные из таблицы, таким образом эмулируя 27128 :)
Реклама
Электрический кот
Аватара пользователя
Сообщения: 1011
Зарегистрирован: Ср окт 04, 2017 20:47:40

Сообщение valentinovich »

[uquote="Леонид_М",url="/forum/viewtopic.php?p=3562916#p3562916"]Не очень понял... если я считаю 2-е 2764, далее из 2-х файлов сложу один и прошью в большую ПЗУ (27128) - то откуда проблема? ...[/uquote]
А если стоят пара штук, то вы уверены, что устройство (его процессор) оперирует 8-разрядными операторами? А то я в своё время (для машин серии PDP) шил такие ПЗУ, искусственно разделяя 16-битовые операторы на старшие и младшие байты. Но работали они в паре, т. е. словом.
Грызет канифоль
Сообщения: 257
Зарегистрирован: Пн окт 03, 2016 10:06:09

Сообщение Леонид_М »

нет, точно не 16-и битовый, там 8-и разрядный процессор стоит.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

выкладываю
USBProg.zip
(277.18 КБ) 352 скачивания
Драйвер устройства: используется для связи на низком уровне с устройством и для инсталляции в операционную систему (Windows98/ME/NT/XP).
драйвер и док. на русском тут:
http://www.gaw.ru/html.cgi/adv/app/micr ... AVR309.htm
на win7x32 должно бы пойти - можно попробовать установить драйвер насильно.
Делал только запись - было сделано несколько экземпляров, записывало надежно (много прошивалось), контроль записи не требовался. Раз есть функция <FNCNumberDoGetInDataPort> читать тоже можно - потребуется согласование уровней (мега питается от 3.6В) хватит наверное просто резисторов. Заточено только под определенный тип ПЗУ (длительность прог. импульса), переделка программы микроконтроллера скорее всего понадобится.
з.ы. Сейчас полно новых микроконтроллеров с USB, например PIC16F1455 (14 ног маловато), STM32F042 (20 ног) и т.д - на них проще было бы сделать.
Проект как пример:
https://www.codeproject.com/Articles/83 ... -USB-Stack
Реклама
Грызет канифоль
Сообщения: 257
Зарегистрирован: Пн окт 03, 2016 10:06:09

Сообщение Леонид_М »

oleg110592, спасибо!
У меня только win7х64, драйвер встанет?
потребуется согласование уровней (мега питается от 3.6В) - есть же мега8 с питанием от 5 в - или что не не так понял?
И что-то не нашел, где команды работы с программой?
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

драйвер надо пробовать - у меня, например на win10x64 древний 32 битный Prolific драйвер работает. На всякий у меня в VirtualBox живет WindowsXPx32.
Для того чтоб на меге8 заработал USB - ее питание должно быть 3.6В, а питает регулируемый стабилизатор на LM317, резисторы надо посчитать или можно поставить с фиксированным напряжением типа LD1117-36. Если читать ПЗУ - на выходе будут 5В уровни. 5В -> резистор -> вход меги с питанием 3.6В - должно помочь, диоды внутри меги защитные есть.
Программа без кнопочек - надо запустить командную строку , где набрать:
Feprog.exe имяфайла.bin (вместо "имяфайла" прописать свое)
или написать bat файл. Могу попробовать дописать окно с кнопками.
з.ы. Для проверки если есть мега8 в дипе - можно попробовать прошить ее и на макетке распаять только мегу кварц с конденсаторами стабилизатор 3.6В и юсб разъем, резистор 1.5К. Питание на стабилизатор можно взять с юсб разъема 5В (аккуратно).
Грызет канифоль
Сообщения: 257
Зарегистрирован: Пн окт 03, 2016 10:06:09

Сообщение Леонид_М »

не понимаю, почему на меге8 д.б. 3.6, если USB - 5в, ПЗУ - 5в... какая разница для меги?
Feprog.exe имяфайла.bin - это, как понял - для прошивки ПЗУ, а если считать - то какая команда?
у меня как раз есть мега8 в дипе, при чем у нее питание от 2,7 до 5,5в...
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="Леонид_М",url="/forum/viewtopic.php?p=3563601#p3563601"]не понимаю, почему на меге8 д.б. 3.6, если USB - 5в, ПЗУ - 5в... какая разница для меги?[/uquote]
USB - 3.3V, именно сами сигнальные линии, и подтяжка там на 3.3V должна идти.
Грызет канифоль
Сообщения: 257
Зарегистрирован: Пн окт 03, 2016 10:06:09

Сообщение Леонид_М »

С уровнями напряжения понял, а вот где посмотреть команду на считывание, пробовал с ключами (/?; -help; --help) прогу запускать - не нашел...
читал в даташите, что для 2764 для записи нужно постоянно подавать высокий уровень напряжения напряжения для программирования, а на 27-ю ножку отдельно импульс записи...
тут в схеме я такого не вижу, подскажите, есть ли этот сигнал?
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

написал выше - "делал только запись", ключей нет, есть только один параметр - имя файла.
в исходнике для меги8 видно - переделана функция <DoSetOutDataPort> и видно какие ноги (OE, CE, Vpp):

Код: Выделить всё

DoSetOutDataPort:		; My Programing
	      
		sbi DDRB,2
		sbi DDRB,3
		sbi DDRB,4
		sbi PORTB,4		;OE or G
		sbi PORTB,3		;CE or E
		sbi PORTB,2		;VPP on

		nop
		nop
		nop
		nop
		nop

		lds	temp0,InputBufferBegin+4	;first parameter - value of data bits PORTB
L1:
	 	rcall SetPortOut
		rcall ProgImpulse
	 	rcall SetPortIn
		rcall ReadData
		lds	temp0,InputBufferBegin+4
		cp temp0,temp2
		brne L1
		rcall Clock
...
Есть там и считывание из ПЗУ только для проверки записи.
Для чтения всего ПЗУ, подобным образом придется переделать функцию <DoGetInDataPort> - мною не переделывалась за ненадобностью. Ну и программку для считывания ПЗУ тоже придется написать - там по ссылке есть делфи пример как писать/читать порты, правда через dll, ну или фривасик живой, развивается:
https://www.freebasic.net/
к нему целая IDE на русском есть:
https://sourceforge.net/projects/fbedit/
Грызет канифоль
Сообщения: 257
Зарегистрирован: Пн окт 03, 2016 10:06:09

Сообщение Леонид_М »

"делал только запись" - не правильно вас понял, я подумал, что вы только записывали ПЗУ, не читали. А как понял сейчас - вы в программе сделали только запись ПЗУ...

"в исходнике для меги8 видно - переделана функция <DoSetOutDataPort> и видно какие ноги (OE, CE, Vpp):" - дело в том, что по даташиту в
2764 кроме напряжения программирования, выбора кристалла и управляющего ОЕ есть еще один сигнал записи- импульс подается отдельно на 27-ю ногу,
тут тоже нужно править уже прошивку.

Ясно, жаль, что нет считывания ПЗУ в файл, мне это нужно в первую очередь, т.к. у меня прога на этих ПЗУ, которую надо считать...
Прогу поправить можно, с дельфи знаком, но никогда ничего не писал под управление железом. Пока разберешься...

По этому пока попробую программатор из радио - там только прошить МК и собрать, прога готовая, и либо получится сразу, либо нет,
если не получится - то тогда использую ваш вариант, а то времени ни на что не хватает, а есть еще пара задумок недоделанных...
так что, думаю из 2-х вариантов один, да сработает.

Спасибо за помощь!
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="Леонид_М",url="/forum/viewtopic.php?p=3564404#p3564404"]Ясно, жаль, что нет считывания ПЗУ в файл, мне это нужно в первую очередь, т.к. у меня прога на этих ПЗУ, которую надо считать...
Прогу поправить можно, с дельфи знаком, но никогда ничего не писал под управление железом. Пока разберешься...[/uquote]
На mega8 можно считать 2764 просто перебирая адреса, читая байт и отправляя его на комп через UART, у меги даже имеющихся ног для этого хватает, тем более можно прочесть меньшими блоками и потом их объединить. Программа элементарная, намного проще той которую ты писал для для ds18b20...
Грызет канифоль
Сообщения: 257
Зарегистрирован: Пн окт 03, 2016 10:06:09

Сообщение Леонид_М »

Да, это не сложно, но затык в другом, я никогда не писал ничего под общение компа с железом через порты, нужно будет писать или на СИ, или на паскале...
а тут нужно разбираться, на сколько это сложно - пока не знаю, и еще дело в том, что если те ПЗУ, которые у меня есть, не содержат нужную программу - то тогда вообще все это не понадобится...
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="Леонид_М",url="/forum/viewtopic.php?p=3564426#p3564426"]Да, это не сложно, но затык в другом, я никогда не писал ничего под общение компа с железом через порты, нужно будет писать или на СИ, или на паскале...[/uquote]
Не нужен никакой Си, нужна простенькая прошивка, на чем угодно, односторонне отправляющая байты по UART, а на стороне компа достаточно терминалки.
Грызет канифоль
Сообщения: 257
Зарегистрирован: Пн окт 03, 2016 10:06:09

Сообщение Леонид_М »

ну мы так договоримся до программатора с нуля своими руками )
а принципе вещь конечно интересная...
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="Леонид_М",url="/forum/viewtopic.php?p=3564436#p3564436"]ну мы так договоримся до программатора с нуля своими руками )
а принципе вещь конечно интересная...[/uquote]
Не совсем :) Я сейчас с AVR дела не имею, но могу взять какой-то STM32 на 48 ног и минут за 10 написать программу, причем можно данные слать как через USART, так и прямо в консоль или файл используя интерфейс отладчика. В итоге время затраченное на чтение ПЗУ будет в основном зависеть от того, как быстро я подключу это ПЗУ к мк :) А программатор все-таки посложнее и программно и аппаратно...
Грызет канифоль
Сообщения: 257
Зарегистрирован: Пн окт 03, 2016 10:06:09

Сообщение Леонид_М »

Считать ПЗУ - уже пол дела, а добавить лишний сигнал на запись и подачу напряж. программирования - это 2-я половина, а написать прогу - третья половина ).
Хотя, вы все же правы, можно попробовать самому, ток посмотреть, как через терминал можно принять данные в файл.
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

[uquote="Леонид_М",url="/forum/viewtopic.php?p=3564493#p3564493"]Считать ПЗУ - уже пол дела[/uquote]
"10 минут"
Изображение
Спойлер

Код: Выделить всё

#include <stdlib.h>
#include <avr/interrupt.h>
#include <avr/io.h>
#include <avr/eeprom.h>
#include <util/delay.h>

uint8_t adrLo, adrHi;

int main(void)
{
    // Port B initialization
    // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
    DDRB = (0 << DDB7) | (0 << DDB6) | (0 << DDB5) | (0 << DDB4) | (0 << DDB3) | (0 << DDB2) | (0 << DDB1) | (0 << DDB0);
    // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
    PORTB = (0 << PORTB7) | (0 << PORTB6) | (0 << PORTB5) | (0 << PORTB4) | (0 << PORTB3) | (0 << PORTB2) | (0 << PORTB1) | (0 << PORTB0);

    // Port C initialization
    // Function: Bit6=Out Bit5=Out Bit4=Out Bit3=Out Bit2=Out Bit1=Out Bit0=Out
    DDRC = (1 << DDC6) | (1 << DDC5) | (1 << DDC4) | (1 << DDC3) | (1 << DDC2) | (1 << DDC1) | (1 << DDC0);
    // State: Bit6=0 Bit5=0 Bit4=0 Bit3=0 Bit2=0 Bit1=0 Bit0=0
    PORTC = (0 << PORTC6) | (0 << PORTC5) | (0 << PORTC4) | (0 << PORTC3) | (0 << PORTC2) | (0 << PORTC1) | (0 << PORTC0);

    // Port D initialization
    // Function: Bit7=Out Bit6=Out Bit5=Out Bit4=Out Bit3=Out Bit2=Out Bit1=Out Bit0=In
    DDRD = (1 << DDD7) | (1 << DDD6) | (1 << DDD5) | (1 << DDD4) | (1 << DDD3) | (1 << DDD2) | (1 << DDD1) | (0 << DDD0);
    // State: Bit7=0 Bit6=0 Bit5=0 Bit4=0 Bit3=0 Bit2=0 Bit1=0 Bit0=T
    PORTD = (0 << PORTD7) | (0 << PORTD6) | (0 << PORTD5) | (0 << PORTD4) | (0 << PORTD3) | (0 << PORTD2) | (0 << PORTD1) | (0 << PORTD0);

    // USART initialization
    // Communication Parameters: 8 Data, 1 Stop, No Parity
    // USART Receiver: On
    // USART Transmitter: On
    // USART Mode: Asynchronous
    // USART Baud Rate: 9600
    UCSRA = (0 << RXC) | (0 << TXC) | (0 << UDRE) | (0 << FE) | (0 << DOR) | (0 << PE) | (0 << U2X) | (0 << MPCM);
    UCSRB = (0 << RXCIE) | (0 << TXCIE) | (0 << UDRIE) | (1 << RXEN) | (1 << TXEN) | (0 << UCSZ2) | (0 << RXB8) | (0 << TXB8);
    UCSRC = (1 << URSEL) | (0 << UMSEL) | (0 << UPM1) | (0 << UPM0) | (0 << USBS) | (1 << UCSZ1) | (1 << UCSZ0) | (0 << UCPOL);
    UBRRH = 0x00;
    UBRRL = 0x33;

    // Analog Comparator: Off
    ACSR = (1 << ACD) | (0 << ACBG) | (0 << ACO) | (0 << ACI) | (0 << ACIE) | (0 << ACIC) | (0 << ACIS1) | (0 << ACIS0);
    SFIOR = (0 << ACME);

    adrLo = 0;
    adrHi = 0;

    while (1)
    {
        PORTC = adrLo;
        PORTD = adrHi >> 2;
        UDR = PINB;
        
        if(++adrLo == 0b10000000)
        {
        	adrLo = 0;
        	if(++adrHi == 0b01000000)
        	{
        		PORTC = 0;
        		PORTD = 0;
        		_delay_ms(5);
        		UDR = 'O';
        		_delay_ms(5);
        		UDR = 'K';
        		while(1);
        	}
        }
        while(!(UCSRA&(1<<UDRE)));
    }
}
з.ы. 2 раза читать придется - на A12 тумблер
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="oleg110592",url="/forum/viewtopic.php?p=3564543#p3564543"]"10 минут"[/uquote]
На AVR может не 10 минут, там порты 8-ми битные :)
з.ы. 2 раза читать придется - на A12 тумблер
A12 можно к PD0 подключить.
Ответить

Вернуться в «Разные вопросы по МК»