| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Безумен проблем http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=18176 |
Страница 1 от 2 |
| Автор: | Н'бабане Гт'муан'га [ Вто Яну 11, 2022 5:09 pm ] | |||||||||
| Заглавие: | Безумен проблем | |||||||||
От два дни си блъскам главата с много странен проблем, който не съм виждал никога преди... Имам един PIK32MZ който е закачен към TMC5160A през SPI и се опитвам да подкарам степъра. Намерих някаква библиотека в гита: https://github.com/terjeio/Trinamic-library Значи проблема: при първоначалната инициализация, степъра си отговаря и всичко си минава нормално когато трасирам кода, обаче ако го пусна директно, не отговаря изобщо. Няма никакви тайминги дето да играят роля, а самите SPI функции се ползват и на други места и си работят нормално. Не ми идва наум какво би могло да бъде... Ето как изглежда функцията дето чете:
Това с пращането на празния байт е точно според примерния код на автора на библиотеката |
||||||||||
| Автор: | TheWizard [ Вто Яну 11, 2022 5:26 pm ] |
| Заглавие: | Re: Безумен проблем |
това ми се е случвало - с дебъгер работи, директно не ... ама нямам спомени ... чекни алигмент и пакетиране на структурите trinamic_motor_t driver туй нещо цяла структура ли е или пойнтер |
|
| Автор: | Н'бабане Гт'муан'га [ Вто Яну 11, 2022 5:38 pm ] |
| Заглавие: | Re: Безумен проблем |
Структура е: https://github.com/terjeio/Trinamic-lib ... r/tmchal.h Иначе основната купчина структури е доста по-сложна: https://github.com/terjeio/Trinamic-lib ... /tmc5160.h Добра идея, ще прегледам за подравняване, макар че нищо не съм специфицирал ръчно... |
|
| Автор: | TheWizard [ Вто Яну 11, 2022 5:53 pm ] | |||||||||
| Заглавие: | Re: Безумен проблем | |||||||||
TMC_spi_status_t tmc_spi_read (trinamic_motor_t driver, TMC_spi_datagram_t *datagram) ми изглежда подозрителен параметър "пуш" ... макар че не се използва и бих използвал UART printf("1....2....3") заместител на дебъгера за проверка къде точно се омазва в "директен режим" |
||||||||||
| Автор: | TheWizard [ Вто Яну 11, 2022 6:01 pm ] |
| Заглавие: | Re: Безумен проблем |
TMC_spi_datagram_t има четно/нечетно (подозрително) подравняване от масив към структура (армовете могат някой неща дето пиковете не могат) чесно клазано в момента много много не мисля - просто "гледам" дали има нещо "подозрително" пробвай с принтф |
|
| Автор: | bobihot [ Сря Яну 12, 2022 3:04 am ] | ||||||||||||||||||
| Заглавие: | Re: Безумен проблем | ||||||||||||||||||
-Интересно предположение. пробвай void *cs_pin да го преместиш първи, или да добавиш uint8_t хх пред него? |
|||||||||||||||||||
| Автор: | Н'бабане Гт'муан'га [ Сря Яну 12, 2022 12:38 pm ] |
| Заглавие: | Re: Безумен проблем |
Значи, проблемът сис сигурност е в пакетирането! Махнах прагмата в tmc5160.h и тогава инициализацията минава, но с грешни резултати. Разместване на trinamic_motor_t структурата не помага за съжаление... |
|
| Автор: | TheWizard [ Сря Яну 12, 2022 1:12 pm ] | |||||||||
| Заглавие: | Re: Безумен проблем | |||||||||
дам ... те бай дефол са алигнати ( ако не са пакет )
тъпо, но локализира: къде... без дебъгер тогава принт дъмп параметри printf("blah %p\n", datagram) printf("blah %p\n", datagram->addr) ... да го еа и те така, що така реално "проблема" ти прави trap_isr( wait forever ) там може да printf dump reg ... къде, какво, как от de-asm |
||||||||||
| Автор: | MYXATA [ Сря Яну 12, 2022 1:20 pm ] |
| Заглавие: | Re: Безумен проблем |
Един въорос, опитвал ли си да говориш със съпорта? Не е гаражна компания , би трябвало да ти отговорят.... То Тринамик, ги купиха Максим, оък максим пожелага да ги куоят Аналог.... |
|
| Автор: | TheWizard [ Сря Яну 12, 2022 1:29 pm ] |
| Заглавие: | Re: Безумен проблем |
не мога да анализарам кода ти, но навярно имаш некъв масив данни от които използваш директно struct с нечетно отместване ( това в някой случай минава на ARM, но на PIC не ... а явно кода е тестван с ARM ) навярно... |
|
| Автор: | Н'бабане Гт'муан'га [ Сря Яну 12, 2022 1:48 pm ] | ||||||||||||||||||||||||||||||||||||
| Заглавие: | Re: Безумен проблем | ||||||||||||||||||||||||||||||||||||
Добрите стари принтове са в употреба от десетилетия Ето малко моднат код с принтове:
Навсякъде където зависи от моя код тук избягвам обръщения към по-големи от байт данни. Ако нещо се случва в библиотеките, там вече не зависи от мен... Ето резултатите: 1. В трейс (без брейкпоинтс, цялото изпълнение минава и приключва успешно):
2. Наливам същия код във флаша и пускам:
Ето това е което се изпълнява на по-високо ниво:
|
|||||||||||||||||||||||||||||||||||||
| Автор: | TheWizard [ Сря Яну 12, 2022 2:18 pm ] | |||||||||
| Заглавие: | Re: Безумен проблем | |||||||||
xchgSPI() ... DMA ( кеш/некеш ? ) или baremetal в TX/RX рег принтни и xchgSPI |
||||||||||
| Автор: | Н'бабане Гт'муан'га [ Сря Яну 12, 2022 2:21 pm ] | |||||||||
| Заглавие: | Re: Безумен проблем | |||||||||
|
||||||||||
| Автор: | TheWizard [ Сря Яну 12, 2022 2:25 pm ] |
| Заглавие: | Re: Безумен проблем |
[6F]: 00, 00, 00, 00 или не предава --> [FF]: FF, FF, FF, FF или не чете ... на пръв поглед това се вижда провери( printf ) драйвер фунk на SPI |
|
| Автор: | Н'бабане Гт'муан'га [ Сря Яну 12, 2022 2:35 pm ] |
| Заглавие: | Re: Безумен проблем |
Проверих го с принтове.Каквото е на екрана това минава през SPI бъса |
|
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|