torik 0 1 марта, 2006 Опубликовано 1 марта, 2006 · Жалоба Всем привет! Пока программу писал, прогу заливал не в еепром, а прямо в ОЗУ (использую отладочный комплект). Теперь хочу записать программу в еепром 64 кБайт. Возникла проблема - однажды я туда уже записывал прогу и все работало. После того как записал по новой - не работает, неизвестное устройство и все. Может надо сперва стереть епром. Как это сделать? И какие еще могут быть камни тут? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость MALLOY2 1 марта, 2006 Опубликовано 1 марта, 2006 (изменено) · Жалоба Стерается еепром очень просто, пишется программа которая ее стерает и записывается в озу. А камни следующие могут быть не правельный VID/PID, не правельный формат EEPROM, не работает программа, не правельный тип EEPROM. И еще, програма которая стартует из EPPROM должна быть переконвертина в загурузочный формат, тоесть смысл в том что если взять программу и тупо записать в еепром то она естестно работать не будет Изменено 1 марта, 2006 пользователем MALLOY2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
torik 0 1 марта, 2006 Опубликовано 1 марта, 2006 · Жалоба Енто вот: - прога работает когда в ОЗУ пишу - види и пид теже само сабой - компилирую ясен фиг и создаю файл для записи именно вепромм - не хекс же заливаю. А если не стирать, а перезаписывать - то не должно быть проблем? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
torik 0 1 марта, 2006 Опубликовано 1 марта, 2006 (изменено) · Жалоба Блин - еще, как поглядеть какие вункции есть в библиотеке ezusb.lib? Чото я так быстро сообразить как стереть епромку программно не соображу Изменено 1 марта, 2006 пользователем torik Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость MALLOY2 1 марта, 2006 Опубликовано 1 марта, 2006 · Жалоба Чем файл для еепром создаеш ? Вот кусок кода для стирания /****************************************************************************** * == EEPROMWrite == * * PARAMETERS: addr- адресс в EEPROM; value - значение * DESCRIPTION: Записыывает байт в EEPROM * RETURNS: none * * MODIFIED: * DATE: 16.07.2005 ******************************************************************************/ void EEPROMWriteByte(WORD addr, BYTE value) { BYTE i = 0; BYTE xdata ee_str[3]; if(DB_Addr)ee_str[i++] = MSB(addr); ee_str[i++] = LSB(addr); ee_str[i++] = value; EZUSB_WriteI2C(I2C_Addr, i, ee_str); EZUSB_WaitForEEPROMWrite(I2C_Addr); } /****************************************************************************** * == EEPROMWrite == * * PARAMETERS: addr- начальный адресс в EEPROM; length - длинна буфера; buf - указатель нга буффер * DESCRIPTION: Записывает в EEPROM данные из буфера * RETURNS: * * MODIFIED: * DATE: 16.07.2005 ******************************************************************************/ void EEPROMWrite(WORD addr, BYTE length, BYTE xdata *buf) { unsigned char i; for(i=0;i<length;++i) EEPROMWriteByte(addr++,buf); } /****************************************************************************** * == EEPROMRead == * * PARAMETERS: addr- начальный адресс в EEPROM; length - длинна буфера; buf - указатель нга буфер * DESCRIPTION: читает в буфер данные из EEPROM * RETURNS: none * * MODIFIED: * DATE: 16.07.2005 ******************************************************************************/ void EEPROMRead(unsigned int addr, unsigned int length, unsigned char xdata *buf) { unsigned char i = 0; unsigned char j = 0; unsigned char xdata ee_str[2]; if(DB_Addr) ee_str[i++] = MSB(addr); ee_str[i++] = LSB(addr); EZUSB_WriteI2C(I2C_Addr, i, ee_str); EZUSB_ReadI2C(I2C_Addr, length, buf); } это кудато вставиш for (i=0;i<16;i++) EEPROMWriteByte(i,0xFF); //записывает в первые 16 адресов значение 0xFF Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
torik 0 1 марта, 2006 Опубликовано 1 марта, 2006 (изменено) · Жалоба Файл создаю в компиляторе опцией c:\cypress\usb\bin\hex2bix -i -f 0xC2 -o bulkext.iic bulkext.hex Пробовал залить тот который уже работал раньше - уже не хочет Гы))) Появляется неизвестное устройство - хотю ему драйвер поставить, указываю инфу CyUsb.inf. Он говорит нет тут сведений. А монитором смотрю - процедуру перенумерации не прошел пишет. Этот драйвер устанавливал, когда в ОЗУ заливал - все работало............... Чо бы это было? Изменено 1 марта, 2006 пользователем torik Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость MALLOY2 1 марта, 2006 Опубликовано 1 марта, 2006 · Жалоба значит муссор в еепром, подыми вывод DATA еепромины Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
torik 0 1 марта, 2006 Опубликовано 1 марта, 2006 (изменено) · Жалоба т.е. надо ее всю очистить? Как очистить фрагмент - ясно - записывать нули, но скакого по какой адрес? Адресация то в пределах байта, анадо 64 кБайт стереть Изменено 1 марта, 2006 пользователем torik Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость MALLOY2 1 марта, 2006 Опубликовано 1 марта, 2006 (изменено) · Жалоба адресация вобщето WORD, но это не столь важно главное стереть первых 8 байт там хранится VID/PID и признак загрузки с еепром. Да и еще ты утилитой не правельно пользуешся, там еще надо задать VID/PID и опции Изменено 1 марта, 2006 пользователем MALLOY2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
torik 0 1 марта, 2006 Опубликовано 1 марта, 2006 · Жалоба Подскажите, как задать правильно опции? Раньше я делал с таукими опциями и все было нормуль. Правда ща я перешел на кейл 8.01. А обязательно стирать то первые 8 байт? он их разве не перепишет сам? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость MALLOY2 1 марта, 2006 Опубликовано 1 марта, 2006 · Жалоба НЕ подскажу так как эти сам неуогда непользовался у меня прога с компа всегда загружается, фича такая в дрова встроенная(дрова сами делали т.к. у ципреса олни глючные). НЕ перепишет так как вы даже в ОЗУ ничего залить не можете потомучто драйфер девайс найти не может, так как по включению вычитывает из еепром мусор. Выход выпаять память и стереть программатором. Вариань 2 поднять ногу DATA залить в ОЗУ прогу программу стирания, НЕ ОТКЛЮЧАЯ питания припаять ногу DATA на место и дать команду стереть но это вы делаете на свой страх и риск. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
torik 0 1 марта, 2006 Опубликовано 1 марта, 2006 · Жалоба Спасибо, попробую стереть. Но всеже мы не совсем друг друга поняли - мне не надо ничего паять чтобы записать прогу в ОЗУ - на демоплате можно отключить и епром переключателем, а программера нету 8(((. Я думал, что когда с помощью отладочного комплекта заливаю программу в еепром - она должна как бы обновиться, разве нет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость MALLOY2 1 марта, 2006 Опубликовано 1 марта, 2006 · Жалоба Должна и будет, но если формат не правельный или ошибку в PID/VID скажем сделаеш то это равносильно пилить ветку подсобой Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
torik 0 1 марта, 2006 Опубликовано 1 марта, 2006 · Жалоба Значит я неправильно откорректировал файл CyUsb.inf Скажите как его прально откоректировать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость MALLOY2 1 марта, 2006 Опубликовано 1 марта, 2006 · Жалоба Этого я незнаю, я занимаюсь только железом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться