#51 Re: Апаратні питання » Lock bit на arduino nano » 2024-02-10 00:30:14

0x3c це приклад для tiny13a, я ж написав, що Вам для своєї m328p потрібно почитати в даташиті правильне значення. Я записую в tiny13a 0x3c (хоча по даташиту маю записувати 0xfc), щоб не виводило помилку.
Подивився даташит, Вам для m328p потрібно також писати 0xfc і у Вас і читається 0xfc, тобто все ок.
Якщо розберетесь як оновити драйвер, щоб був не потрібен лайфхак, відпишіться, будь ласка, в цю тему.

#52 Re: Апаратні питання » Lock bit на arduino nano » 2024-02-10 00:12:19

Shaman2 пише:

E:avrdude-v7.1-windows-windows-x64>avrdude -P COM70 -b 57600 -c avrisp -p m328p -U lock:r:-:h

Не помітив одразу... ArduinoISP працює ж на швидкості 19200 а не 57600. У Вас наявна проблема з драйвером CH340 і потрібен "лайфхак з RST". Тобто зараз драйвер смикає DTR і Ви заливаєте прошивку і читаєте лок не з цілі а з тієї нано, що напряму підключена до юсб.
Залийте спочатку ArduinoISP.hex (бо зараз Ви його затерли), а потім поставте конденсатор між RST і GND на програматорі і спробуйте ще раз прочитати лок, має бути 0xff.

#53 Re: Апаратні питання » Lock bit на arduino nano » 2024-02-09 23:35:51

Після заливки прошивки (це скидає лок в початкове значення 0xff) спробуйте спочатку прочитати (-U lock:r:-:h), читає 0xff чи 0x00 ?
Почитайте в даташиті на m328p, що які лок-біти означають, я давав приклад для t13a.
Ще там є прикол, що записуєш одне значення, а при читанні (перевірці) деякі біти дзеркаляться в інші позиції (наприклад в t13a записуєш 0xfc=0b11111100, а при читанні повертає 0x3c=0b00111100, біти з позицій 0 і 1 дзеркаляться в 6 і 7 позиції)

#54 Re: Апаратні питання » Lock bit на arduino nano » 2024-02-09 18:21:30

Shaman2 пише:

І ще одне питання: використовуються D11, D12, D13, тобто якщо в мене до цих ніг щось підключене, то доведеться спочатку відпаяти перед тим як вносити зміни по бітам? А якщо там вже зашита прошивка яка використовує ці ноги?
Тобто краще в нову ардуіно прошити лок біти, а потім вже розпаюваті і заливати прошивку?

Коли RST замикається на землю, робота прошивки зупиняється і всі ноги мк переходять в високоімпедансний стан (крім MISO), тому відповідь на питання чи можна не випаювати мк зі схеми залежить лише від Вашої схеми а не від прошивки, дивіться по схемі, як вона реагуватиме на наявність сигналів на SCK,MISO,MOSI.

Shaman2 пише:

І друге: на Вашій схемі небачу перемички чи конденсатора на RST програматора, він вже не потрібен?

Конденсатор (між RST і GND, або RST і VCC) чи перемичка (між RST і VCC) використовуються як лайфхак, якщо драйвер USB-UART (CH340) неправильно керує сигналом DTR, в мене в віндовс 10 з цим проблем немає, в лінуксі пробема зникла коли перейшов на ядро 5.4.х (на 4.х ще була така проблема).

#55 Re: Апаратні питання » Lock bit на arduino nano » 2024-02-09 14:52:35

Shaman2 пише:

чи достатньо nano використати як ArduinoISP для зміни лог бітів іншої нано чи все ж таки купляти окрему avrisp? На ютюбі бачив відео де було сказано що nano для avrdude і різних бітів не дуже підходить

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

Shaman2 пише:

І ще про порядок такої прошивки: я заливаю скетч, і потім окремо виставляю лок біти? А після лок бітів можно ще раз заливати прошивку чи вже все?

Лок-біти працюють так:
* їх можна встановити на будь-якому етапі
* їх можна скинути лише з одночасною очисткою флешу і еепром
* коли встановлені, то замість флеш і еепром читаються випадкові дані
Це дає можливість:
* захистити прошивку від читання
* багаторазово оновлювати прошивку
Не плутайте лок-біти з ф'юзами, деякі ф'юзи можуть "зацеглити" м/к, але лок-бітів це не стосується, вони безпечні.

#56 Re: Апаратні питання » Lock bit на arduino nano » 2024-02-09 13:47:41

Так, через бутлоадер неможливо змінити ні EEPROM, ні ф'юзи, ні лок-біти, можливо лише flash.
Гляньте цю тему, команда приблизно така (замініть t13a на свою m328 і значення лок-бітів з даташиту):
avrdude -P COM3 -b 19200 -c avrisp -p t13a -U lock:w:0x3c:m

#57 Re: Проекти » Управління електричним лінійним приводом з радіобрелка » 2024-02-05 16:30:54

СергійАм пише:

за допомогою стандартного радіобрелка

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

#58 Re: Проекти » Счетчик импульсов для умного дома » 2024-01-31 14:05:44

Honey пише:

Для м/к з напругою 3.3V є такі варіанти:

3) є ще варіант (не відмовляючись від батарейки) подати на VCC лічильника 5V, а DQ підключити до м/к без перетворювача логічних рівнів (тобто на ньому буде до 3.3V) - на коротких шинах має працювати.
Найкращим для довгої шини є варіант (1), а якщо лічильник, м/к і батарейка розташовані в одному корпусі, то варіант (2).

#59 Re: Проекти » Счетчик импульсов для умного дома » 2024-01-31 04:21:48

Dimas пише:

по якій схемі і з якими налаштуваннями треба з‘єднати ваш модуль з єсп32?

Лічильник розрахований на стандартну напругу шини 1-wire 4.5-5.5V, цю напругу диктує батарейка - напруга шини має бути більшою від напруги батарейки мінімум на 0.65V, інакше лічильник відключає свій інтерфейс 1-wire і працює автономно в режимі лише підрахунку імпульсів. Для м/к з напругою 3.3V є такі варіанти:
1) перетворювач логічних рівнів для 1-wire, щоб на 1-wire було 5V
2) відмовитись від батарейки, закоротивши контакти в роз'ємі батарейки монетками, тоді лічильник зможе працювати з напругою 3.3V на 1-wire, але Ви втратите автономність - втрата зовнішнього живлення призведе до скидання лічильника. Цей варіант підійде лише якщо м/к зі своїм батарейним живленням зовсім поряд.

#60 Re: Проекти » Счетчик импульсов для умного дома » 2024-01-31 03:51:41

Dimas пише:

а як бути якщо маю доступ до тестового порту (той що зв‘язаний з діодом)

Берете оптрон (наприклад, PC817), передаючою частиною підключаєте до "тестового порту", а приймаючою - до лічильника імпульсів (емітер - GND, колектор - вхід A або B).
Якщо впевнені, що гальванічна розв'язка не обов'язкова, то можна те саме зробити на біполярному або польовому транзисторі. Але раджу на оптроні.

#61 Re: Апаратні питання » Періодичний збій роботи Ардуіно » 2024-01-21 23:26:53

Помилки на фізичному рівні будь-якого протоколу не вийде знизити до нуля, можна лише зменшити до прийнятного рівня, а боротися з ними потрібно на більш високому рівні протоколу шляхом виявлення і повторної відправки. В 1-wire є контрольна сума, подивіться, що повертає бібліотека у випадку невірної КС, якщо це і є -128, то повторюйте запит.
Щоб хоч якось вберегти мікроконтролер від наведених струмів у шині, поставте супресори на 5в ось таким чином, як на виході схеми:
schematic.png

#62 Re: Програмування Arduino » Arduino UNO R3 - приймає програму і все. » 2024-01-16 20:11:24

edward пише:

что с ним нетак помогите neutral  neutral  neutral  neutral

void setup() {
  // put your setup code here, to run once:
  pinMode(2,OUTPUT);
  pinMode(4,OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  if (analogRead(A0)<500){
    digitalWrite(2,HIGH);
    digitalWrite(4,LOW);
  }else{
    digitalWrite(4,HIGH);
    digitalWrite(2,LOW);
  }
}

Помилка була в тому, що завдання не сформульовано.

#63 Re: Різне » Обмін, продаж, то що... » 2024-01-16 18:37:25

TIMONN пише:

я  покупал для проэктов  для себя и продаю по причине того что эти модули мне уже не нужны  а не для того что бы заработать

TIMONN пише:

продам 120 гривен шт есть 2 шт Ai-Thinker LoRa Модуль (Ra-02) 433 МГц

TIMONN пише:

продам по 150 гривен  есть 2 шт Ai-Thinker LoRa Модуль (Ra-06) 433 МГц, UART

TIMONN пише:

продам 120 гривен Ai-Thinker Wi-Fi модуль ESP8266 версия ESP-07S промышленного уровня

Ці модулі нові, чи випаяні з Ваших проектів?

#64 Re: Різне » Як залити HEX в м/к під Windows. Інструкція. » 2024-01-02 19:52:57

josbrod96 пише:

А якщо у мене виникнуть проблеми з драйверами або я не зможу знайти правильний COM-порт, що мені робити? Чи є якісь утиліти, які можуть допомогти мені в цьому?

Ось так за допомогою командного рядка можна отримати список COM-портів, підключених через USB:
powershell "Get-PnPDevice | Where-Object{$_.DeviceID -cmatch '^USB'} | Where-Object{$_.Name -cmatch 'COM\d+'} | Where-Object{$_.Present -in 'True'} | Select-Object Name,Description,Manufacturer,PNPClass,Service,Present,Status,DeviceID | Sort-Object Name"
Приклад виводу:

Name         : USB-SERIAL CH340 (COM4)
Description  : USB-SERIAL CH340
Manufacturer : wch.cn
PNPClass     : Ports
Service      : CH341SER_A64
Present      : True
Status       : OK
DeviceID     : USB\VID_1A86&PID_7523\5&202ECBB1&0&1

#65 Re: Різне » Шукаю виконавця » 2023-12-22 15:33:16

jijuri пише:

Дайте пожалуйста вашу почту.

Зліва від повідомлень, під аватаром є значок конвертика і напис "E-mail".

#66 Re: Різне » Шукаю виконавця » 2023-12-22 11:22:48

jijuri пише:

Что для этого нужно чтобы кто-то мне это все воплотил в жизнь. Спасибо.

1. даташит на протокол керування частотним перетворювачем (попросити у продавця)
2. написати в пошту

#67 Re: Проекти » Touch Board від Bare Conductive ---> створити аналог » 2023-12-18 15:55:18

Як я бачу, там дається можливість користувачу самому писати програми, можливо виробник плати надає уже готові. Наскільки вони Вам важливі? Тобто можна створити щось своє зі схожим функціоналом і самому для нього розробляти програми, але якщо хочете використовувати уже готові від того виробника, то доведеться повторити його плату з тими ж компонентами (мікросхемами).
Прототип за ціною одного екземпляру виробу ніхто Вам не розробить.
Скиньте контакти в пошту.

#68 Re: Проекти » Touch Board від Bare Conductive ---> створити аналог » 2023-12-18 13:57:33

Якщо Ви про готовий модуль, то хто Вам заважає припаятися до сенсорного майданчика на модулі?
Чи Вам потрібна готова красива плата, яку хтось розведе, замовить і напаяє мікросхем? Таке можна організувати, але питання, скільки штук Ви замовите?

#70 Re: Проекти » Маршрутовказівник » 2023-12-11 16:06:45

Alex.Sar пише:

Хто може допомогти з вирішенням цієї проблеми?

Напишіть в пошту.

#71 Re: Проекти » Проект для військових. Потрібна допомога у підборі обладнання та інш » 2023-12-09 20:26:40

stdn69 пише:

на майбутнє: відео стрім

Raspberry Pi 4 з відеоспостереженням з однієї аналогової камери (640x480@25fps) через китайську USB-плату відеозахвату, детектор руху софтом (motion, трохи допиляний) - справляється тугенько.
Якщо взяти плату відеозахвату чи готову камеру, яка сама стискає потік, і лише передавати його (без обробки), то таку задачу потягне і щось в рази слабкіше, можливо stm32, але однозначно не Arduino.

#72 Re: Різне » Як залити HEX в м/к під Windows. Інструкція. » 2023-12-07 00:59:13

7. Якщо прошивка має щось виводити в послідовний порт, то вивід можна переглянути ось таким скриптом (підставляєм COM-порт із п.5 і швидкість, на якій виводить прошивка):
powershell "$p=new-Object System.IO.Ports.SerialPort COM3,9600;$p.Open();while($p.IsOpen){Write-Host -NoNewLine $p.ReadExisting();if([Console]::KeyAvailable){$p.Write([Console]::ReadKey($true).KeyChar)}}"
Вихід з цього режиму по Ctrl+C.

Оскільки не завжди доводиться прошивати лише NANO, тому потрібно розглянути і інший спосіб прошивки AVR мікроконтролерів - через ISP-інтерфейс. На фізичному рівні ISP-інтерфейс це SPI-інтерфейс, в якому сигнал CS підключається до входу RST мікроконтролера. Для цього знадобиться пристрій, який з одного боку підключається до ПК (наприклад по USB), а з іншого має виводи SPI-інтерфейса: CS,SCK,MISO,MOSI. Мікроконтролер, в який будемо заливати прошивку, називають target (ціль), а пристрій-посередник - programmer (програматор). Програматори можуть бути апаратними (наприклад на FT2232), але більшість з них програмні (наприклад USBasp). Я розгляну найбільш універсальний варіант, який відноситься до програмного типу.

Плата Arduino NANO в якості програматора для іншого мікроконтролера

Пункти 1-5 попередньої інструкції залишаються без змін, а далі так:

6. Прошиваєм в NANO прошивку, яка перетворить Arduino NANO в програматор (підставляєм COM-порт і швидкість із п.5):
avrdude -P COM3 -b 115200 -c arduino -p m328p -U flash:w:ArduinoISP.hex:i
Вже скомпільовану прошивку ArduinoISP.hex можна взяти звідси (а ось тут її вихідний код), зберігаєм в той же каталог, що був у п.2, а щоб не додавало додаткове розширення .txt, вибираєм Тип файла: Всі файли (*.*) і в Імені файла видаляєм .txt залишаючи лише .hex
Після використання NANO в якості програматора, в неї потім можна прошити будь-яку іншу прошивку.

7. Підключаємо ціль до програматора за схемою (призначення виводів цільового мікроконтролера можна знайти в його даташиті, а для готових плат в їх схемі):
spi.jpg

8. Нарешті прошиваєм нашу прошивку в ціль (підставляєм COM-порт із п.5 і швидкість 19200):
avrdude -P COM3 -b 19200 -c avrisp -p m328p -U flash:w:example.hex:i
якщо ціль, наприклад, ATtiny13A, тоді відповідно так:
avrdude -P COM3 -b 19200 -c avrisp -p t13a -U flash:w:example.hex:i
Корисні приклади:
а) Прошити в іншу Arduino NANO бутлоадер:
avrdude -P COM3 -b 19200 -c avrisp -p m328p -U flash:w:optiboot_atmega328.hex:i -U lfuse:w:0xff:m -U hfuse:w:0xde:m -U efuse:w:0xfd:m
Вже скомпільовану прошивку бутлоадера можна взяти звідси.
б) Відключити використання бутлоадера:
avrdude -P COM3 -b 19200 -c avrisp -p m328p -U lfuse:w:0xff:m -U hfuse:w:0xdf:m -U efuse:w:0xfd:m
в) Прочитати і змінити ф'юзи на ATtiny13A:
avrdude -P COM3 -b 19200 -c avrisp -p t13a -U lfuse:r:-:h -U hfuse:r:-:h
avrdude -P COM3 -b 19200 -c avrisp -p t13a -U lfuse:w:0x7a:m -U hfuse:w:0xff:m

Значення ф'юзів можна підставити і обчислити нові на калькуляторі ф'юзів.

Розгляну ще один цікавий приклад програматора. Уявіть, що в попередній схемі програматора SPI-інтерфейс є окремою фізичною частиною програматора, якою Arduino NANO може керувати, і цю частину можна розмістити десь далеко. Це могло б, наприклад, спростити процес розробки і відлагодження ПЗ, "не відходячи від ПК".

Віддалена прошивка і віддалений монітор порта

Пункти 1-5 попередньої інструкції залишаються без змін, а далі так:

6. Прошиваєм в NANO прошивку, яка перетворить Arduino NANO в віддалений програматор (підставляєм COM-порт і швидкість із п.5):
avrdude -P COM3 -b 115200 -c arduino -p m328p -U flash:w:ArduinoOWISP.hex:i
Вже скомпільовану прошивку ArduinoOWISP.hex можна взяти звідси (а ось тут її вихідний код).

7. Підключаємо ціль до програматора за схемою:
spi.jpg

7а. Оскільки транспортом для SPI в даному випадку буде 1-wire шина і таких slave-пристроїв на шині може бути багато, то потрібно програматору повідомити адресу slave-пристрою, це можна зробити такими командами (підставляєм COM-порт із п.5):
mode COM3 baud=19200 data=8 parity=n dtr=off rts=off
set /p x="[2044420F" <nul >\\.\COM3
set /p x="484E59A2]" <nul >\\.\COM3

Тут 2044420F484E59A2 - розбита на дві частини адреса slave-пристрою (ціла чомусь не проходить), а ідея, як передати дані, щоб не додавався символ нового рядка, взята звідси.
Є й інший, інтерактивний спосіб. Запускаєм такий скрипт (підставляєм COM-порт із п.5):
powershell "$p=new-Object System.IO.Ports.SerialPort COM3,19200;$p.Open();$p.Write('0 0 ');while($p.IsOpen){Write-Host -NoNewLine $p.ReadExisting();if([Console]::KeyAvailable){$p.Write([Console]::ReadKey($true).KeyChar)}}"
В запущеному скрипті доступні такі команди (повний список з прикладами і поясненнями знаходиться тут):
[2044420F484E59A2] (1-wire адреса в квадратних дужках, Enter не натискаємо) - встановити поточну адресу slave-пристрою;
? (знак питання, Enter не натискаємо) - отримати список адрес доступних slave-пристроїв на шині 1-wire і показати поточну адресу;
Ctrl+C - вихід.

8. Доступні всі ті ж самі команди avrdude, що і в п.8 попередньої інструкції.

9. Якщо прошивка має щось виводити в OWSerial (віртуальний послідовний порт для такого типу підключення), то вивід можна переглянути, запустивши скрипт із п.7а і натиснувши при його роботі Enter.

#73 Re: Програмування Arduino » Зчитування частоти на Atmega168p » 2023-12-03 19:12:33

Dmytro6432 пише:

Є два входи 220В, які йдуть кожен на свій діодний міст і через кілька резисторів кожен вхід окремо йде на (світлодіод) оптопари(вхід) так, що на вхід кожної оптопари подається частота 100Гц.

Щоб не розсіювати на "кількох резисторах" близько 2Вт активної потужності, замініть їх на конденсатор, який дасть такий же, але реактивний опір, тоді тепловиділення не буде взагалі. Оптопару можна взяти PC814, тоді діодний міст буде зайвим.

#74 Re: Програмування Arduino » Проблема з #include <OneWire.h> » 2023-12-02 15:38:49

Яка Ваша мета? Скомпілювати ардуіно-скетч під лінуксом, щоб прошивка запрацювала на м/к, а засіб значення не має (тоді можу допомогти з Arduino IDE + arduino-mk), чи принципово в віжуал студіо (тоді чекайте, може хтось інший допоможе).

#75 Re: Програмування Arduino » Проблема з #include <OneWire.h> » 2023-12-01 20:34:46

Пишуть, що потрібна ось така приблуда, Ви її встановлювали? Нажаль, більше тут нічим не допоможу, не користуюсь IDE.

Натомість, якщо Ви під Linux, можу порадити arduino-mk. В каталог кладете скетч разом з файлом Makefile такого змісту:

ARDUINO_DIR=/home/honey/Arduino/arduino-1.8.19
ARDMK_DIR=/home/honey/Arduino/Arduino-Makefile
PYTHON_CMD=python
ARDUINO_LIBS = OneWire DS2450
BOARD_TAG = nano
BOARD_SUB = atmega328
include $(ARDMK_DIR)/Arduino.mk

в каталозі виконуєте команду make і воно компілює в готовий .hex
ARDUINO_DIR і ARDMK_DIR - каталоги, в які розпаковані архіви з Arduino IDE і arduino-mk відповідно, просто розпаковані, встановлювати нічого не потрібно.

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