#51 Вчора 10:25:15

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 470

Re: DigiSpark Attiny85 проблема з логічною 1 на виході.

stas_amp пише:

https://forum.arduino.ua/img/members/4083/OSC-_-OUT-PB1.jpeg
У мене ось такий сигнал на PB1
...
https://forum.arduino.ua/img/members/4083/PXL_20250611_042428586.jpeg

Було ж 1.2 вольта, тут бачу чесні 5. Після яких змін амплітуда імпульсів стала 5 вольт?

stas_amp пише:

понавстановлював все, що можна було стосовно Attiny 85.

Потрібно якось фіксувати ці зміни: з якого URL, яка версія. Щоб можна було собі теж скачати та проаналізувати код цього конкретного пакунка.

stas_amp пише:

Частота стала 16кГц, цикл 70 відсотків.

PB1 має альтернативну функцію виходу компаратора таймера. (Доречі, PB0,PB3,PB4 також). Якщо якимось чином біти вибору режима стають ненульові, то це досить очікуваний результат: різні core можуть використовувати таймери по-різному.

Якось би здампити вміст регістрів TCCR0A, TCCR1 та GTCCR, коли баг проявляється. Я би увімкнув debugWIRE. Але без досвіду це буде непросто зробити: потрібно перешивати фʼюзи і вимикати функцію піна Reset, а також підʼєднуватись UART'ом до піна Reset як мінімум через діод, і на компі запускати відлагоджувальний софт.

Можна спробувати записати вміст цих регістрів в EEPROM, потім зчитати програматором.

Але в першу чергу я би все таки перевірив з

#define HAVE_BOOTLOADER 1

в core_build_options.h.
А також мінімізував би програму до такого стану, коли баг ще відтворюється.

stas_amp пише:

Ось схема всього пристрою.

Для повноти картини ще би домалювати USB'шні резистори зі стабілітронами, а також вбудований світлодіод.

Остання редакція dimich (Вчора 10:29:25)

Активний

#52 Вчора 10:35:53

stas_amp
Учасник
Зареєстрований: 2025-06-02
Повідомлень: 35

Re: DigiSpark Attiny85 проблема з логічною 1 на виході.

Точно сказати, після чого стало 5 вольт, вже тяжко.

Цікаво, що дає саме PWM.

Спробую сьогодні підключити насос, і глянути, чи подаватиме він мастило.
Якщо так, то тоді, питання закрити, і забути. Бо тут не скільки того пристрою, як проблем.

Здавалось би все просто, а ,,крові вип'є'' на проект - за міліон.

Але випадок не стандартний, і рано чи пізно, хтось би міг з таким зіткнутися.

Таке питання, до учасників обговорення.
А чи можна тут в код додати, щоб на мотор виходило два або три імпульси за один раз?

Остання редакція stas_amp (Вчора 10:44:01)

Неактивний

#53 Вчора 10:40:50

jokeR
Учасник
Зареєстрований: 2024-12-12
Повідомлень: 115

Re: DigiSpark Attiny85 проблема з логічною 1 на виході.

photo_2025-06-11_10-32-45.jpg

Збс wink
Зібрав під ту плату що у вас. Включив pull-up резистори на входах - отримав такі імпульси - кілька прямокутних, промодульованих ВЧ. Я б сказав, що це десь всередині вашого коду, складно зрозуміти його логіку.

ІЩСХ, якщо резистори прибрати, отримуємо дивне
photo_2025-06-11_10-47-19.jpg

Остання редакція jokeR (Вчора 10:49:03)

Неактивний

#54 Вчора 10:43:33

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 470

Re: DigiSpark Attiny85 проблема з логічною 1 на виході.

stas_amp пише:

Цікаво, що дає саме PWM.

Ну, один із можливих варіантів я вже написав: пін перемикається на функцію Compare Match Output. Чому - це вже інше питання.

Активний

#55 Вчора 10:46:25

stas_amp
Учасник
Зареєстрований: 2025-06-02
Повідомлень: 35

Re: DigiSpark Attiny85 проблема з логічною 1 на виході.

jokeR пише:

https://forum.arduino.ua/img/members/3983/photo_2025-06-11_10-32-45.jpg

Збс wink
Зібрав під ту плату що у вас. Включив pull-up резистори на входах - отримав такі імпульси - кілька прямокутних, промодульованих ВЧ. Я б сказав, що це десь всередині вашого коду, складно зрозуміти його логіку.

Логіку коду, чи алгоритмів роботи?

Якщо алгоритми, то можу розписати.

Неактивний

#56 Вчора 11:06:22

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 470

Re: DigiSpark Attiny85 проблема з логічною 1 на виході.

Дивіться, яка цікава річ. У вас EEPROM.put(10, ImpulseOilMotor) має записувати два байта в EEPROM за адресою 10.
Якщо припустити, що ваша ліба EEPROM зібрана якось неправильно (з іншим -mcu, наприклад), і замість EEPROM пише в адресний простір даних, то адреса 10 попадає на адресу 0x2A в I/O просторі. Це якраз регістри TCCR0A та OCR1B, які відповідають за Compare Match Output для PWM.

Активний

#57 Вчора 11:11:54

stas_amp
Учасник
Зареєстрований: 2025-06-02
Повідомлень: 35

Re: DigiSpark Attiny85 проблема з логічною 1 на виході.

dimich пише:
stas_amp пише:

Цікаво, що дає саме PWM.

Ну, один із можливих варіантів я вже написав: пін перемикається на функцію Compare Match Output. Чому - це вже інше питання.

Ось такий варіант ШІ мені дав.

Можете глянути, наче Compare Match Output вимкнуто.DigiSpark_Oiler_NoPWM.rar

Неактивний

#58 Вчора 11:14:18

stas_amp
Учасник
Зареєстрований: 2025-06-02
Повідомлень: 35

Re: DigiSpark Attiny85 проблема з логічною 1 на виході.

dimich пише:

Дивіться, яка цікава річ. У вас EEPROM.put(10, ImpulseOilMotor) має записувати два байта в EEPROM за адресою 10.
Якщо припустити, що ваша ліба EEPROM зібрана якось неправильно (з іншим -mcu, наприклад), і замість EEPROM пише в адресний простір даних, то адреса 10 попадає на адресу 0x2A в I/O просторі. Це якраз регістри TCCR0A та OCR1B, які відповідають за Compare Match Output для PWM.

Схоже, що так і є.
Якщо подати живлення, то два перші імпульси нормальні, подальші - PWM

Може там вказати адресу еепром 100, або 200 ?

Неактивний

#59 Вчора 11:17:30

jokeR
Учасник
Зареєстрований: 2024-12-12
Повідомлень: 115

Re: DigiSpark Attiny85 проблема з логічною 1 на виході.

Нє, ШІ воно прикольно, але навіщо вимикати те що не вмикали wink Вам воно намалювало blink на регістрах замість digitalwrite.

Неактивний

#60 Вчора 11:22:22

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 470

Re: DigiSpark Attiny85 проблема з логічною 1 на виході.

stas_amp пише:

Можете глянути, наче Compare Match Output вимкнуто.

Цей витвір ШІ працює нормально? А якщо в setup() закоментувати запис в TCCR0A?

stas_amp пише:

Може там вказати адресу еепром 100, або 200 ?

Якщо EEPROM працює неправильно, то вона працюватиме неправильно і з іншими адресами. Буде псувати якусь іншу область памʼяті.

Скомпілюйте скетч з нуля, з увімкненим verbose compiler output. Покажіть лог збірки.

Активний

#61 Вчора 11:24:31

stas_amp
Учасник
Зареєстрований: 2025-06-02
Повідомлень: 35

Re: DigiSpark Attiny85 проблема з логічною 1 на виході.

dimich пише:
stas_amp пише:

Можете глянути, наче Compare Match Output вимкнуто.

Цей витвір ШІ працює нормально? А якщо в setup() закоментувати запис в TCCR0A?

stas_amp пише:

Може там вказати адресу еепром 100, або 200 ?

Якщо EEPROM працює неправильно, то вона працюватиме неправильно і з іншими адресами. Буде псувати якусь іншу область памʼяті.

Скомпілюйте скетч з нуля, з увімкненим verbose compiler output. Покажіть лог збірки.

Вже ввечері, як буду вдома.

Неактивний

#62 Вчора 11:31:19

jokeR
Учасник
Зареєстрований: 2024-12-12
Повідомлень: 115

Re: DigiSpark Attiny85 проблема з логічною 1 на виході.

Так, це EEPROM
Якщо прибрати повністю (навіть #include теж) - нормальні прямокутні імпульси.

Неактивний

#63 Вчора 11:58:51

stas_amp
Учасник
Зареєстрований: 2025-06-02
Повідомлень: 35

Re: DigiSpark Attiny85 проблема з логічною 1 на виході.

jokeR пише:

Так, це EEPROM
Якщо прибрати повністю (навіть #include теж) - нормальні прямокутні імпульси.

Що за бібліотеки мені треба завантажити, щоб все працювало нормально?

Неактивний

#64 Вчора 12:25:06

jokeR
Учасник
Зареєстрований: 2024-12-12
Повідомлень: 115

Re: DigiSpark Attiny85 проблема з логічною 1 на виході.

Та хз wink
Простий спосіб - взяти Arduino Nano wink
Складніше - підібрати тулчайн, з яким воно буде правильно працювати.
Або переписати під Atmel Studio - сподіваюсь, у них там все правильно зібране.

Неактивний

#65 Вчора 13:00:02

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 470

Re: DigiSpark Attiny85 проблема з логічною 1 на виході.

stas_amp пише:

Що за бібліотеки мені треба завантажити, щоб все працювало нормально?

Я би спершу зʼясував, чи це проблема з самою лібою EEPROM, чи з функціями eeprom_write_* з avr/eeprom.h. Якщо функції eeprom_write_*/eeprom_read_* працюють нормально, то використав би їх, без всяких бібліотечних обгорток.
А якщо вирішувати глобально, то не користувався би Arduino IDE.

Остання редакція dimich (Вчора 13:05:50)

Активний

#66 Вчора 13:07:51

stas_amp
Учасник
Зареєстрований: 2025-06-02
Повідомлень: 35

Re: DigiSpark Attiny85 проблема з логічною 1 на виході.

Тут справа в розмірах плати, бо на мотоциклі це ще десь треба сховати від вологи. Тому взято саме тіні85

Стосовно еепрому.
Може його прочитати програматором, і глянути, де нічого не пишеться, і саме туди писати дані.

Неактивний

#67 Вчора 13:10:15

stas_amp
Учасник
Зареєстрований: 2025-06-02
Повідомлень: 35

Re: DigiSpark Attiny85 проблема з логічною 1 на виході.

dimich пише:
stas_amp пише:

Що за бібліотеки мені треба завантажити, щоб все працювало нормально?

Я би спершу зʼясував, чи це проблема з самою лібою EEPROM, чи з функціями eeprom_write_* з avr/eeprom.h. Якщо функції eeprom_write_*/eeprom_read_* працюють нормально, то використав би їх, без всяких бібліотечних обгорток.
А якщо вирішувати глобально, то не користувався би Arduino IDE.

Тобто, писати в чомусь іншому?

Якщо так, то чи підійде цей код, чт треба все переписувати заново?

Може що порадите?

Дякую.

Неактивний

#68 Вчора 13:19:30

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 470

Re: DigiSpark Attiny85 проблема з логічною 1 на виході.

stas_amp пише:

Стосовно еепрому.
Може його прочитати програматором, і глянути, де нічого не пишеться, і саме туди писати дані.

Чим писати, бібліотекою EEPROM, яка в EEPROM нічого не пише, а пише в регістри або RAM?
Спершу впевніться, що проблема викликана записом в EEPROM. Мої здогадки тільки теоретичні, бо не знаю, яку саме бібліотеку і як ви там встановлювали, і не маю заліза, щоб перевірити.

Також спробуйте зібрати скетч за допомогою platform.io, з його дефолтним framework-arduino-avr-digistump.

Активний

#69 Вчора 13:22:26

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 470

Re: DigiSpark Attiny85 проблема з логічною 1 на виході.

stas_amp пише:

Якщо так, то чи підійде цей код, чт треба все переписувати заново?
Може що порадите?

PlatformIO
Скетч збирається без переписування, тільки в самому початку додати

#include <Arduino.h>

Активний

#70 Вчора 13:38:23

jokeer
Гість

Re: DigiSpark Attiny85 проблема з логічною 1 на виході.

Підтримка саме tiny85 в Arduino ide зроблена якось per anus. Кілька реалізацій, деякі протухли. В деяких, схоже, проблеми з eeprom.
А навіщо взагалі щось писати в eeprom? Як на мій погляд, між кількістю обертів і інтенсивністю роботи маслонасосу відповідальність однозначна. Хіба що мотогодини зберігати, але у вас цього все одно немає.
та і з nano які проблеми? одягнув термоусадку, краї залив герметиком. Плату полакував. Не вірю що в моті не знайдеться місце під Arduino nano wink

#71 Вчора 14:24:44

stas_amp
Учасник
Зареєстрований: 2025-06-02
Повідомлень: 35

Re: DigiSpark Attiny85 проблема з логічною 1 на виході.

dimich пише:
stas_amp пише:

Якщо так, то чи підійде цей код, чт треба все переписувати заново?
Може що порадите?

PlatformIO
Скетч збирається без переписування, тільки в самому початку додати

#include <Arduino.h>

Тобто, я встановлюю цей софт, копіюю текст скетчу, вставляю скопійоване, додаю Arduino.h на початку, отримую hex, пишу його в плату, через програматор.

Так?

Неактивний

#72 Вчора 14:30:55

stas_amp
Учасник
Зареєстрований: 2025-06-02
Повідомлень: 35

Re: DigiSpark Attiny85 проблема з логічною 1 на виході.

jokeer пише:

Підтримка саме tiny85 в Arduino ide зроблена якось per anus. Кілька реалізацій, деякі протухли. В деяких, схоже, проблеми з eeprom.
А навіщо взагалі щось писати в eeprom? Як на мій погляд, між кількістю обертів і інтенсивністю роботи маслонасосу відповідальність однозначна. Хіба що мотогодини зберігати, але у вас цього все одно немає.
та і з nano які проблеми? одягнув термоусадку, краї залив герметиком. Плату полакував. Не вірю що в моті не знайдеться місце під Arduino nano wink

В еепром пишеться кількість імпульсів, для того, щоб вирахувати, скільки масла в бачкк. І наприклад, після 1000 імпульсів, нагадувати, що масло закінчується.

Ще вибраний режим пишеться до еепром, щоб його запам'ятати, після того, як вимкнеться живлення. 


Стосовно розмірів, то тут вже була готова коробка, та ще розглядалася можливість, раптом що, то в дорозі, швидко замінити плату, вона на конекторі, до плати-материнки підключена.
Ну це на випадок ядерки ?

Але враховуючи, потрачений час і нерви, то вже і зі шприца готовий мазати той цеп ???

Неактивний

#73 Вчора 14:46:40

jokeer
Гість

Re: DigiSpark Attiny85 проблема з логічною 1 на виході.

Прийнято wink
А взагалі, як часто в цьому моті треба змащувати цеп? бо я ніколи не чув про таку проблему wink

#74 Вчора 15:00:03

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 470

Re: DigiSpark Attiny85 проблема з логічною 1 на виході.

stas_amp пише:

Тобто, я встановлюю цей софт, копіюю текст скетчу, вставляю скопійоване, додаю Arduino.h на початку, отримую hex, пишу його в плату, через програматор.
Так?

Як під віндою його ставити і користуватись не знаю, вибачте. Під лінухами я просто встановив пакет platformio-core з репозиторію.
Створюю директорію і проект в ній:

$ mkdir test-project
$ cd test-project
$ pio project init -b digispark-tiny

Копіюю ваш скетч в test-project/src/, дописую на початку "#include <Arduino.h>", збираю:

$ pio run

(а краще "pio run -v", щоб бачити, які команди воно викликає).
Для прошивки зазвичай достатньо

$ pio run -t upload

Для digispark-tiny, мабуть, повинно так само працювати. Принаймні у мене воно скачало й запустило micronucleus, просить підключити плату.

Всі налаштування в platformio.ini.
Бінарик, hex та інші артефакти лежать в .pio/build/digispark-tiny/

Активний

#75 Вчора 16:26:38

stas_amp
Учасник
Зареєстрований: 2025-06-02
Повідомлень: 35

Re: DigiSpark Attiny85 проблема з логічною 1 на виході.

jokeer пише:

Прийнято wink
А взагалі, як часто в цьому моті треба змащувати цеп? бо я ніколи не чув про таку проблему wink

Якщо мот спортивний, то там таке не використовують. Там миють кожну тисячу, і змащують липкою спеціальною мазутою, кожні 500 км.

На ендуро - там ніхто взагалі не робить, все одно цепу там хватає не на довго. Його від багна оббили, водою помили, й готово.

Мотоцикли для подорожей, там автозмазчик актуальний. Тому що кожен день мазать, а то й двічі на день, і мить щовечора, то дістане.
Тому, ставлять автозмазку. Вона автоматично подає звичайне трансмісійне масло. І цим маже цеп, і при швидкостях - центробіжною силою чисте від бруду.

В середньому розхід мастила для цепу, десь 50 - 60 грамів на тисячу кілометрів.

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму