Strana 1 z 2

DC ovládač motora - pomoc s komunikáciou UART

Napísané: 12 Nov 2023, 08:52
od používateľa marekbe
Ahojte,
týždeň sa strápim, ako nastaviť čas spomalenia na tejto doske:
https://pwrcontroller.com/product/croco ... ontroller/
manuál je tu:
https://pwrcontroller.com/wp-content/up ... mplete.pdf
s predajcom som nekomunikoval, písal som mu 5 emailov a som bez odpovede.

PWM dosku si spojím cez TTL prevodník s PC, nastavím rýchlosť na 9600 a pekne komunikujem jednoduchou UART komunikáciou s doskou.
Napr. napíšem príkaz:
0x80 0x3F 0x85 0x0F - a doska sa mi rozbehne na rýchosť 3F /cca 50% z maximálnej 7F/ aj sa mi nastaví požadované spomalenie.
Ale po strate napájania a jeho obnovení sa mi tieto hodnoty nezapíšu do FLASH pamate.... Neviete mi poradiť, ako rýchlosť spomalenia zapisat do pamate?

Re: DC ovlácač motora - pomoc s komunikáciou UART

Napísané: 12 Nov 2023, 09:27
od používateľa peterple
Čitaj dokumentáciu https://pwrcontroller.com/wp-content/up ... pdf#page=3
RX/TX serial communication:
Serial communication is availale in all operation modes (potentiometet,joysick, PWM input and RC
receiver mode). It is possible to read or set additional parameters in the controller while it is in any
operation mode.Other possible option is to controll the the controller with only serial
communication commands. The way of communicaton can be Simple mode or Advanced mode. (For
information use theserial comunication sheets).
Pohľadaj dokument a postupuj podľa neho. Príkaz na zápis bude asi 0xA0
0xA0 0x00-7F saving_bits L for saving use advanced mode
Ale kam to sa dozvieš keď si naštuduješ ako funguje Advanced mode

Re: DC ovlácač motora - pomoc s komunikáciou UART

Napísané: 12 Nov 2023, 11:05
od používateľa marekbe
Celý týždeň som manuál študoval,, aj som sa pokúšal ukladať hodnotu spomalenia cez príkaz:
0xA0 0x00-7F saving_bits L
ale nepodarilo sa mi to uložiť do pamate. Mimochodom prvý krát pracujem s komunikáciou UART... preto vedel by mi niekto poradiť presnú skladbu príkazov, ktoré by som vyskúšal použiť?
DAKUJEM

Re: DC ovlácač motora - pomoc s komunikáciou UART

Napísané: 12 Nov 2023, 16:08
od používateľa balu
Nedaří se ti hodnoty uložit, protože komunikuješ v "simple commands" režimu. Musíš UART přepnout do "advanced commands". Trvalo mi to necelou minutu v tom datasheetu najít, jak to udělat.

Re: DC ovládač motora - pomoc s komunikáciou UART

Napísané: 12 Nov 2023, 17:15
od používateľa marekbe
Myslíš prepnúť na advanced commands pomocou prepínača DIP4 alebo pomocou príkazu 0xE1?

Re: DC ovládač motora - pomoc s komunikáciou UART

Napísané: 12 Nov 2023, 21:58
od používateľa balu
Přepínač 4 je správně, ale jak jsi přišel na E1 ? Četl jsi, co E0 a E1 dělá ?

Datasheety musíš číst POZORNĚ a pokud potřebuješ detailní informace, tak CELÉ. Nebo aspoň relevantní část celou.

Re: DC ovládač motora - pomoc s komunikáciou UART

Napísané: 13 Nov 2023, 07:14
od používateľa marekbe
Príkaz 0xE1 má znamenať "USART command mode " , preto som si myslel,že tým aktivujem príkazy USART namiesto UARTu.
Nemám okrem tejto nastavovačky žiadne skúsenosti s UART/USART komunikáciou,,, preto si sám neviem dať rady. Akými príkazmi by si to teda nastavil, aby mi zapísalo spomalovanie do FLASH pamate?
K tomu PIDu 4 mám ho na ON.
Skúšal som aj príkaz :
0xA0 0x72 ale nepomohlo...

Re: DC ovládač motora - pomoc s komunikáciou UART

Napísané: 13 Nov 2023, 08:54
od používateľa balu
A PID4 na ON znamená co ?

Pročti si ten datasheet POŘÁDNĚ !

Malá nápověda : for saving use advanced mode

Jinak UART a USART je totéž.

Re: DC ovládač motora - pomoc s komunikáciou UART

Napísané: 13 Nov 2023, 13:50
od používateľa marekbe
PID4 podla mna znamenalo, že môžem komunikovať s doskou cez jednoduché USART príkazy,,,
Teraz už neviem, čo to reálne znamená....

Re: DC ovládač motora - pomoc s komunikáciou UART

Napísané: 13 Nov 2023, 15:26
od používateľa balu
Ano - ale pokud komunikuješ přes jednoduché UART příkazy, tak nemůžeš ukládat do paměti.

Proto je tam for saving use advanced mode.

Takže pokud chceš ukládat do paměti, musíš přepnout do ADVANCED režimu.

Tohle všechno se z datasheetu dozvíš, ale musíš číst pozorně, dokud nepochopíš, co tam píšou.
Pokud to nepochopíš ani na několikátý pokus, musíš číst pozorně a zkoušet, dokud to nepochopíš.
No - a pokud to nepochopíš ani pak, musíš to opakovat a zkoušet tak dlouho, dokud na to nepřijdeš.

Re: DC ovládač motora - pomoc s komunikáciou UART

Napísané: 13 Nov 2023, 17:11
od používateľa Lennox
Však už mu konečne povedzte, že DIP spínač č. 4 má mať v polohe OFF. Netrápte ho, je evidentné že nevie čítať :mrgreen:

Re: DC ovládač motora - pomoc s komunikáciou UART

Napísané: 13 Nov 2023, 17:24
od používateľa maskrtnik01
To nie je úplné riešenie. V advanced mode sa používajú iné registre - samozrejme aj tie sú v manuáli.

Re: DC ovládač motora - pomoc s komunikáciou UART

Napísané: 13 Nov 2023, 17:46
od používateľa Lennox
No veď to je samozrejme jasné. Ale mám za to, že doteraz mal DIP č.4 prepnutý v polohe ON. Potom mohol skúšať advanced commandy koľko len chcel, nefungovalo by mu to aj keby ich zadal správne.

Re: DC ovládač motora - pomoc s komunikáciou UART

Napísané: 13 Nov 2023, 18:25
od používateľa balu
marekbe napísal:
13 Nov 2023, 07:14
...
K tomu PIDu 4 mám ho na ON.
...
On to tady i píše ...

Re: DC ovládač motora - pomoc s komunikáciou UART

Napísané: 13 Nov 2023, 18:33
od používateľa balu
balu napísal:
12 Nov 2023, 21:58
Přepínač 4 je správně, ale jak jsi přišel na E1 ? Četl jsi, co E0 a E1 dělá ?

Datasheety musíš číst POZORNĚ a pokud potřebuješ detailní informace, tak CELÉ. Nebo aspoň relevantní část celou.
Tady jsem Tě asi neúmyslně zavedl na špatnou cestu - spíš to mělo znít jako
"Že se to přepíná přepínačem 4 je správně, ale ..."

Re: DC ovládač motora - pomoc s komunikáciou UART

Napísané: 13 Nov 2023, 18:34
od používateľa maskrtnik01
Tak potom teda treba prepnúť dip switch do advanced režimu, a začať používať advanced príkazy.

Je to o čítaní datasheetu, to je základná zručnosť. Na druhú stranu každý nejak začínal.

Re: DC ovládač motora - pomoc s komunikáciou UART

Napísané: 15 Nov 2023, 06:51
od používateľa marekbe
Áno, aj ja len začínam,, verím, že sa to naučím, a nebudem zbytočne otravovať.
Prepol som DIP4 na OFF, zmenil rýchlosť komunikácie na 19200 a skúsil som skúšobný príkaz 0x80 0x05 , ale jednotka mi neodpovedá.
Preto som sa doteraz uchyloval k jednoduchým príkazom,,, Pretože pri tých s jednotkou bez problémov komunikujem.
Zapojenie káblov pre simple aj advanced komunikáciu mám takéto:
PWM nastavovač → USB TTL
RX → TX
TX → RX
GND → GND
a používam program Real Term . Treba nejako prestaviť zapojenie? Alebo niečo iné spraviť, aby mi ten advanced mód komunikoval?

Re: DC ovládač motora - pomoc s komunikáciou UART

Napísané: 15 Nov 2023, 07:17
od používateľa balu
Co bys chtěl předrátovávat ? UART je pořád stejný, jen posíláš trošku jiná data.

Poslal jsi adresu (0x80) a příkaz (0x05) - a data a CRC ?

U Advanced režimu je psáno Sending data from master device must be 5 bytes.
Pokud jsi poslal jen 2 byty, tak kontroler čeká na zbytek. Proto neodpovídá.

Takže Adresa : 0x80 (bit 7 = 1, adresa = 0)
Command : 0x05
Data : 2 byty hodnota - musíš ji rozdělit a posunout tak, aby bit 7 byl vždycky 0
CRC : 1 byte

Jak rozdělit hodnotu a jak spočítat CRC máš dokonce v datasheetu napsaný, takže ani nemusíš vymýšlet, jak to naprogramovat. Stačí CTRL-C, CTRL-V.


!!! ČÍST POZORNĚ !!!

Re: DC ovládač motora - pomoc s komunikáciou UART

Napísané: 15 Nov 2023, 12:01
od používateľa marekbe
Áno, ale v manuály tiež čítam:
Reading data:
Requesting data from master device must be 2 bytes when the controller received the 2th byte it will send
the answer 3 bytes (1th DATA byte ; 2th DATA byte ; CRC)

Chcel som čítať dáta, ako je v pämati nastavené spomalenie jednotky, treto som poslal dáta /adresu + príkaz/:
0x80 0x05

Zle čítam?

Re: DC ovládač motora - pomoc s komunikáciou UART

Napísané: 15 Nov 2023, 12:12
od používateľa balu
A jo - máš pravdu. Na zápis je 0x45 ...
Tak to by mělo fungovat.

Zkus stejnou rychlost komunikace jako pro Simple režim. Vím, že se v datasheetu píše 19200, ale pár nepřesností jsem tam odhalil, tak to vyzkoušej, jestli nemůže být chyba tam.