Easyelectronics.ru

Электроника для всех
Текущее время: 18 окт 2019, 01:38

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 2256 ]  На страницу Пред.  1 ... 84, 85, 86, 87, 88, 89, 90, 91  След.
Автор Сообщение
 Заголовок сообщения: Re: Программирование spi, i2c, microwire флэшек UsbAsp'ом
СообщениеДобавлено: 05 апр 2019, 13:34 
Только пришел

Зарегистрирован: 11 авг 2017, 21:36
Сообщения: 23
Откуда: Владивосток
В вызове CH341SetOutput , по видимому должно быть так:
Код:
CH341SetOutput(0, $10, $С0000, $С0000); //scl,sda hi
CH341SetOutput(0, $10, $С0000, 0); //scl,sda low


- третий параметр направление вывода данных,
- четвертый значение этих данных.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование spi, i2c, microwire флэшек UsbAsp'ом
СообщениеДобавлено: 05 апр 2019, 15:53 
Только пришел

Зарегистрирован: 03 апр 2019, 22:21
Сообщения: 6
spuller писал(а):
В вызове CH341SetOutput , по видимому должно быть так:
- третий параметр направление вывода данных,
- четвертый значение этих данных.


Хмм... действительно, там же 4 параметра в декларации функции. Кроме того, в описании CH341SetOutput сказано что SDA и SCL работают только на out, так что третьим параметром можно и нуль попробовать указать. Попробую вечером. При установке SDA/SCL я банально тестером должен увидеть реакцию? (я далёк от электроники, так, совсем по верхам)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование spi, i2c, microwire флэшек UsbAsp'ом
СообщениеДобавлено: 05 апр 2019, 16:14 
Только пришел

Зарегистрирован: 11 авг 2017, 21:36
Сообщения: 23
Откуда: Владивосток
umike писал(а):
так что третьим параметром можно и нуль попробовать указать


Эти параметры обрабатывает CH341.DLL и отсылает их в виде пакета через драйвер на чип ( в соответствии с протоколом mCH341A_CMD_UIO_STREAM или mCH341A_CMD_SET_OUTPUT ). Параметры вероятнее всего контролируются, кроме того не все ли равно: вывести нули или единицы - главное чтобы работало...
Тестером будут показаны соответствующие изменения - временной интервал нужен больше инерционности тестера ( секунды 3 или больше - подойдет).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование spi, i2c, microwire флэшек UsbAsp'ом
СообщениеДобавлено: 06 апр 2019, 01:59 
Только пришел

Зарегистрирован: 03 апр 2019, 22:21
Сообщения: 6
перекурил всё заново с тестером. Дело было не в бобине, забыл DeviceOpen сделать, думал что выше по коду оно есть :)

В общем суть такая: из трёх имеющихся у меня экземляров i2c-железок разных производителей, два нормально реагируют на "ручное" дрыганье SDA/SCL в UsbAspI2C_BUSY. И при посылке ACK при помощи SendBit(1) = (SDA high + SCL пульс), придавливают SDA и держат нуль несмотря на SDA high. То есть отвечают что они на шине есть. Как и положено.

Третий экземпляр на ручном дрыганье на ACK не отвечает. Ставишь SDA high, на SDA остаётся high. Ставишь SDA low, остаётся low. Поэтому UsbAspI2C_BUSY рапортует об отсутствии отклика от микросхемы. В чём причина - непонятно. Может ему слишком быстро (паузы вставлял), может слишком медленно - хз. Может так производителем задумано для защиты от влезания, неизвестно.
Что интересно библиотечный вызов CH341StreamI2C и на чтение и на запись отрабатывает без проблем. Также без проблем CH341ReadI2C читает байты.
Анализатора нет чтобы более подробно разобрать что там происходит, да оно и не критично. Пока обойдусь тем, что добавлю себе галку вида "[x] CheckBusy".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование spi, i2c, microwire флэшек UsbAsp'ом
СообщениеДобавлено: 24 апр 2019, 02:47 
Только пришел

Зарегистрирован: 24 апр 2019, 02:43
Сообщения: 5
Приветствую!
Для чтения допрегистров флешек 95 серии создал скрипт и прицепил его на мной созданный в xml новый компонент
Код:
{$verify} //read status register
begin
stat:=0;
SPIEnterProgMode();
SPIWrite(1, 1, 5); //RDSR
SPIRead(1, 1, stat);
LogPrint(IntToHex(stat,1));
SPIExitProgMode();
end;
{$unlock}
begin
SPIEnterProgMode();
SPIWrite(1,3,3,0,0);
SPIReadToEditor(1, 256);
   SPIExitProgMode();
end;

однако программа на все попытки чтения выдает FF, но при выставлении М95320 читает и программирует ее нормально(т.е. подключение чипа проходит успешно).
ЧЯДНТ?
Разумеется, читаю (запускаю) скрипт соответствующими кнопочками.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование spi, i2c, microwire флэшек UsbAsp'ом
СообщениеДобавлено: 24 апр 2019, 04:46 
Только пришел

Зарегистрирован: 11 авг 2017, 21:36
Сообщения: 23
Откуда: Владивосток
В документации - перед использованием вызвать SPISetSpeed(_SPI_SPEED_MAX) .
Ну и помните, что первый аргумент SPIWrite / SPIRead чип селект, т.е. запись с последующим чтение:
SPIWrite(0,..); SPIRead(1,..);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование spi, i2c, microwire флэшек UsbAsp'ом
СообщениеДобавлено: 25 апр 2019, 02:30 
Только пришел

Зарегистрирован: 24 апр 2019, 02:43
Сообщения: 5
Вот спасибо! Получается, можно в азпрограммере вообще подавать любые команды на любые МС, читать/записывать всё что хошь! Дельная вещь!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование spi, i2c, microwire флэшек UsbAsp'ом
СообщениеДобавлено: 25 апр 2019, 04:49 
Только пришел

Зарегистрирован: 11 авг 2017, 21:36
Сообщения: 23
Откуда: Владивосток
mal333 писал(а):
на любые МС

По моему на данный момент поддерживается только SPI шина...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование spi, i2c, microwire флэшек UsbAsp'ом
СообщениеДобавлено: 25 апр 2019, 22:23 
Только пришел

Зарегистрирован: 24 апр 2019, 02:43
Сообщения: 5
Это да, в пределах SPI я и имел в виду. Однако осталось непонятным, можно ли в скрипт добавить свои секции? Видел пример с секцией {read_sfdp_table_256_byte}, но у себя пробовал {$read_identification} - она не появилась. Нужно как-то особенно это оформлять?

А, нашел, это в Scripts :)
НО!
Код:
{$read_id}
begin
SPISetSpeed(_SPI_SPEED_MAX);
  SPIEnterProgMode();
    SPIWrite(0, 3, $83,0,0); //Reads the page dedicated to identification.
   SPIReadToEditor(1, 32);
   SPIExitProgMode();
end
{$write_identification}
begin
SPISetSpeed(_SPI_SPEED_MAX);
  SPIEnterProgMode();
  SPIWrite(0, 4, $82,0,0,0); //WRID
  SPIWriteFromEditor(1, 32, 0); //Writes the page dedicated to identification.
  SPIExitProgMode();
end
{$verify} //read status register
begin
SPISetSpeed(_SPI_SPEED_MAX);
stat:=0;
SPIEnterProgMode();
SPIWrite(0, 1, 5); //читаем RDSR регистр
SPIRead(1, 1, stat);
LogPrint(IntToHex(stat,1));
SPIExitProgMode();
end
{$read_256_byte}
begin
SPISetSpeed(_SPI_SPEED_MAX); //читаем 256 байт
SPIEnterProgMode();
SPIWrite(0,3,3,0,0);
SPIReadToEditor(1, 256);
   SPIExitProgMode();
end                             


Секция {$read_256_byte} отрабатывает норм, а {$read_id} ругается:
Цитата:
Runs section: READ_ID
Too many END
END BEGIN SPISETSPEED ( _SPI_SPEED_MAX )

Как так то?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование spi, i2c, microwire флэшек UsbAsp'ом
СообщениеДобавлено: 26 апр 2019, 01:26 
Только пришел

Зарегистрирован: 03 апр 2019, 22:21
Сообщения: 6
в программе не прописан вызов какого-то скрипта при нажатии кнопки "прочитать идентификатор", соответственно нельзя на нажатие этой кнопки повесить какой-то свой скрипт.

Но зато там есть "выполнить секцию *read* скрипта при нажатии кнопки прочитать". Будет это {$read_256_byte} или там {$ тутмыбудем_readmeписать_усердно} - неважно.
Любые {$*read*} воспринимаются как {$read} и выполняются при нажатии кнопки "прочитать".
Предполагаю, что интерпретатор скриптов видит в приведённом скрипте две секции read, поэтому и ругается.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование spi, i2c, microwire флэшек UsbAsp'ом
СообщениеДобавлено: 26 апр 2019, 01:48 
Только пришел

Зарегистрирован: 24 апр 2019, 02:43
Сообщения: 5
Код:
{$rd_256_byte}
begin
SPISetSpeed(_SPI_SPEED_MAX); //читаем 256 байт
SPIEnterProgMode();
SPIWrite(0,3,3,0,0);
SPIReadToEditor(1, 256);
   SPIExitProgMode();
end

{$rd_id}
begin
SPISetSpeed(_SPI_SPEED_MAX);
SPIEnterProgMode();
SPIWrite(0, 3, $83,0,0); //Reads the page dedicated to identification.
SPIReadToEditor(1, 32);
SPIExitProgMode();
end

{$wr_identification}
begin
SPISetSpeed(_SPI_SPEED_MAX);
  SPIEnterProgMode();
  SPIWrite(0, 4, $82,0,0,0); //WRID
  SPIWriteFromEditor(1, 32, 0); //Writes the page dedicated to identification.
  SPIExitProgMode();
end

{$verify} //read status register
begin
SPISetSpeed(_SPI_SPEED_MAX);
stat:=0;
SPIEnterProgMode();
SPIWrite(0, 1, 5); //читаем RDSR регистр
SPIRead(1, 1, stat);
LogPrint(IntToHex(stat,1));
SPIExitProgMode();
end.

Результат тот же :( Но в редактор попадает FF


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование spi, i2c, microwire флэшек UsbAsp'ом
СообщениеДобавлено: 26 апр 2019, 01:57 
Только пришел

Зарегистрирован: 03 апр 2019, 22:21
Сообщения: 6
в папке со скриптами есть файл script_func.html, в нём описано что в скрипте могут быть описаны следующие секции:
Цитата:
{$read} Код секции выполняется при нажатии кнопки чтении памяти
{$write} Код секции выполняется при нажатии кнопки записи памяти
{$erase} Код секции выполняется при нажатии кнопки стирания памяти
{$verify} Код секции выполняется при нажатии кнопки сравнения памяти
{$unlock} Код секции выполняется при нажатии кнопки снятия защиты

и всё. Секции с какими-то другими именами не будут выполняться в принципе! Никакие твои rd* и wr* выполняться не будут.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование spi, i2c, microwire флэшек UsbAsp'ом
СообщениеДобавлено: 26 апр 2019, 04:14 
Только пришел

Зарегистрирован: 24 апр 2019, 02:43
Сообщения: 5
Да, но это при нажатии на кнопки в программе. Зачем тогда вот http://forum.easyelectronics.ru/viewtopic.php?f=17&t=10947&start=2050 тут скрипт выложен, если его никак не выполнить? Я так понял, что специфические самописные процедуры выполняются через меню Scripts, и там пиши что хочешь и запускай соответствующую секцию.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование spi, i2c, microwire флэшек UsbAsp'ом
СообщениеДобавлено: 26 апр 2019, 04:58 
Только пришел

Зарегистрирован: 11 авг 2017, 21:36
Сообщения: 23
Откуда: Владивосток
Посмотрел - в моих скриптах после end ; - уже не помню почему.
Все скрипты выкладывал в этой теме и все они рабочие, запускаются из меню.
Сначала скрипт-файл-открыть, выбрать секцию, выполнить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование spi, i2c, microwire флэшек UsbAsp'ом
СообщениеДобавлено: 26 апр 2019, 11:00 
Только пришел

Зарегистрирован: 03 апр 2019, 22:21
Сообщения: 6
mal333 писал(а):
Да, но это при нажатии на кнопки в программе. Зачем тогда вот http://forum.easyelectronics.ru/viewtopic.php?f=17&t=10947&start=2050 тут скрипт выложен, если его никак не выполнить? Я так понял, что специфические самописные процедуры выполняются через меню Scripts, и там пиши что хочешь и запускай соответствующую секцию.
да, через запук скриптов по секциям, то будет выполняться


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование spi, i2c, microwire флэшек UsbAsp'ом
СообщениеДобавлено: 08 июн 2019, 02:44 
Старожил
Аватара пользователя

Зарегистрирован: 31 окт 2011, 11:35
Сообщения: 613
Откуда: Москва
Потихоньку возвращаюсь к проекту.
Сейчас переписываю класс программатора(которого не было). Будет некое правило описание железки, которая занимается инициализацией и непосредственными функциями SPI, i2c и т.д.
То есть отвязываю низкоуровневые функции от функций работы с чипами памяти.
Пока все получается =)
Собственно это назревало уже давно - говнокод обростал...
Довольно просто стало добавлять новые железки(в планах например ардуинка).

Правда пролюбил где-то microwire флешку... Да и там проблемы какие-то как я понял.

Короче проект надо оживлять.

зы: и да почта nm приказала долго жить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование spi, i2c, microwire флэшек UsbAsp'ом
СообщениеДобавлено: 08 июн 2019, 14:39 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 4097
Откуда: г. Липецк
Tifa писал(а):
....Довольно просто стало добавлять ...

С удовольствием бы увидел поддержку шины I2C в скриптах.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование spi, i2c, microwire флэшек UsbAsp'ом
СообщениеДобавлено: 13 июн 2019, 13:38 
Здравствуйте!

Зарегистрирован: 13 июн 2019, 13:34
Сообщения: 3
Всем доброго дня! Есть два китайских USBASP. Первый уже перепрошит прошивкой Tifa, а второй нет. Подскажите как с помощью первого перепрошить второй. Подключал стандартным плоским шлейфом, замыкал перемычку, но ASProgrammer не видит atmega8.
Не "выдержала душа поэта". Похоже домучил я программатор. По ошибке в KhazamaAVRProgrammer нажал AutoPro Prpgram. После этого на USBASP светодиоды не горят и в компьютере определяется как USB\UNKNOWN. В морг, или можно оживить?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование spi, i2c, microwire флэшек UsbAsp'ом
СообщениеДобавлено: 18 июн 2019, 11:59 
Заглядывает иногда

Зарегистрирован: 03 дек 2011, 00:54
Сообщения: 34
il61610101 писал(а):
В морг, или можно оживить?
AFD в помощь.


Вложения:
2.jpg
2.jpg [ 90.51 Кб | Просмотров: 917 ]

_________________
Show
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование spi, i2c, microwire флэшек UsbAsp'ом
СообщениеДобавлено: 19 июн 2019, 00:07 
Только пришел

Зарегистрирован: 07 июн 2017, 12:19
Сообщения: 18
Понятно(:
А все же как с помощью одного USBASP, перепрошит прошивкой Tifa, прошить этой прошивкой другой USBASP?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование spi, i2c, microwire флэшек UsbAsp'ом
СообщениеДобавлено: 19 июн 2019, 01:59 
Старожил
Аватара пользователя

Зарегистрирован: 31 окт 2011, 11:35
Сообщения: 613
Откуда: Москва
Ну если есть 2 программатора то в чем проблема?
Моя прошивка оставляет весь функционал usabasp по прошивки микроконтроллеров atmega.
На первой странице есть фьюзы, возможно они слетели.
Я использую avrdude и графическую оболочку avrdude_prog 3.3(собственно скрины оттуда) .


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование spi, i2c, microwire флэшек UsbAsp'ом
СообщениеДобавлено: 19 июн 2019, 11:26 
Только пришел

Зарегистрирован: 07 июн 2017, 12:19
Сообщения: 18
Заработало!!!!!!!!
СПАСИБО!!!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование spi, i2c, microwire флэшек UsbAsp'ом
СообщениеДобавлено: 30 июн 2019, 16:00 
Старожил
Аватара пользователя

Зарегистрирован: 31 окт 2011, 11:35
Сообщения: 613
Откуда: Москва
https://cloud.mail.ru/public/2YJa/aZSpqqG2E
Новая тестовая версия.
Ничего "супер" нового там нет, кроме i2c скриптов.
Прошивки придется заливать новые(i2c и mw там изменены).
Собственно microwire там скорее всего не работает, так как я не нашел флешку для проверки.
Основной интерес это подтверждение что i2c нормально работает и тесты mw.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование spi, i2c, microwire флэшек UsbAsp'ом
СообщениеДобавлено: 30 июн 2019, 20:54 
Старожил

Зарегистрирован: 23 фев 2016, 22:10
Сообщения: 750
Программатор SPI, I2C, Microwire FLASH/EEPROM v2.0.0a
viewtopic.php?f=17&t=10947
asprogrammer@inbox.ru
Используется программатор: Avrisp
ID(9F): 000000
ID(90): BF43
ID(AB): BF
ID(15): 0000
Используется программатор: Avrisp
ID(9F): 000000
ID(90): BF43
ID(AB): BF
ID(15): 0000
Используется программатор: Avrisp
19:39:42
Читаю флэшку...
Готово
Время выполнения: 0:00:01
Используется программатор: Avrisp
19:40:00
Возможно включена защита на запись. Нажмите кнопку "Снять защиту" и сверьтесь с даташитом
Стираю флэшку...
Готово
Время выполнения: 0:00:00
Используется программатор: Avrisp
19:40:09
Возможно включена защита на запись. Нажмите кнопку "Снять защиту" и сверьтесь с даташитом
Записываю флэшку...
Готово
Время выполнения: 0:08:55
Используется программатор: Avrisp
19:49:35
Проверяю флэшку...
Готово
Время выполнения: 0:00:01

тест 256КБ SST

пока на старой


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование spi, i2c, microwire флэшек UsbAsp'ом
СообщениеДобавлено: 30 июн 2019, 23:37 
Старожил

Зарегистрирован: 23 фев 2016, 22:10
Сообщения: 750
Программатор SPI, I2C, Microwire FLASH/EEPROM v2.0.0a
viewtopic.php?f=17&t=10947
asprogrammer@inbox.ru
Current programmer: Avrisp

перепрошил, прошивка не работает
надо прошивку без боотлоадера
SPI работает нормально
Записываю флэшку...
Готово
Время выполнения: 0:06:36
Используется программатор: Avrisp
22:39:33
Проверяю флэшку...
Готово
Время выполнения: 0:00:01


I2C потом


Вложения:
23.png
23.png [ 48.15 Кб | Просмотров: 568 ]
22.png
22.png [ 70.54 Кб | Просмотров: 569 ]
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2256 ]  На страницу Пред.  1 ... 84, 85, 86, 87, 88, 89, 90, 91  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB