| Автор |
Съобщение |
|
VPavlov
Ранг: Популярен
Регистриран на: Съб Апр 01, 2023 9:59 am Мнения: 303
|
 STM32 HAL_I2C_IsDeviceReady
Здрасти приятели, Отново се опитвам да подкарам I2C с разни Нуклео бордове и за пореден път резултатите са плачевни. Този опит опитвам с HAL, гледам един туториал в който тестват нещата с HAL_I2C_IsDeviceReady. Нещата изглеждат по този начин: Това нещо не ще да върне HAL_OK. Как ли не го мъчих,сменях адреси , три устройства, две различни платки с контролери, назначавах други пинове, сменях кабели, замервах връзки, така се закучи значи че като че ли изчерпах всичко за което се сещам. Можете ли да помогнете? Благодаря предварително.
|
| Пон Фев 12, 2024 9:16 pm |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
 Re: STM32 HAL_I2C_IsDeviceReady
а гугъл пита ли ... много постове има за тоз "проблем"
_________________ main[-1u]={1};
|
| Пон Фев 12, 2024 9:33 pm |
|
 |
|
VPavlov
Ранг: Популярен
Регистриран на: Съб Апр 01, 2023 9:59 am Мнения: 303
|
 Re: STM32 HAL_I2C_IsDeviceReady
Може би не достатъчно. Срещнах че нямало устройство на адреса и това ме подтикна да пробвам с други устройства. Утре ще го мъча отново.
|
| Пон Фев 12, 2024 10:37 pm |
|
 |
|
syscop
Ранг: Форумен бог
Регистриран на: Пет Юни 03, 2005 9:39 pm Мнения: 2277
|
 Re: STM32 HAL_I2C_IsDeviceReady
Параметърът DevAddress на функцията HAL_I2C_IsDeviceReady не съвпада нито с 0b1101000, нито с 0b0011000 
_________________ Определянето стойността на дадена величина се нарича ИЗМЕРВАНЕ! Опонентът се оборва с ФАКТИ, а не с ЕПИТЕТИ!
|
| Пон Фев 12, 2024 11:16 pm |
|
 |
|
VPavlov
Ранг: Популярен
Регистриран на: Съб Апр 01, 2023 9:59 am Мнения: 303
|
 Re: STM32 HAL_I2C_IsDeviceReady
Здрасти Syscop, какво пропускам? Имам 7 битов адрес + бит за четене или писане. В документацията на HAL дават следното: Дали имаш предвид предвид че не са шифтнати? Ако е така му давам директно 8 битов адрес. Между другото в туториала беше със шифтване, пробвах и с това. Може би съм объркал нещата със смятането на битове. Ще пробвам отново със шифтване или с калкулатор. Като цяло логиката ми е такава: Ако имам адрес: 1101000, от това подавам 1101000<<1 за четене и (1101000<<1) +1 за писане или директно 1101000 или 1101001.
|
| Вто Фев 13, 2024 10:03 am |
|
 |
|
syscop
Ранг: Форумен бог
Регистриран на: Пет Юни 03, 2005 9:39 pm Мнения: 2277
|
 Re: STM32 HAL_I2C_IsDeviceReady
Пример: Вероятността да сбъркаш е по-малка. Погледни реда, в който викаш функцията HAL_I2C_IsDeviceReady - параметърът DevAddress е различен от този в коментарите след нея, т.е. имаш три различни числа. Кое е вярното?
_________________ Определянето стойността на дадена величина се нарича ИЗМЕРВАНЕ! Опонентът се оборва с ФАКТИ, а не с ЕПИТЕТИ!
|
| Вто Фев 13, 2024 10:38 am |
|
 |
|
VPavlov
Ранг: Популярен
Регистриран на: Съб Апр 01, 2023 9:59 am Мнения: 303
|
 Re: STM32 HAL_I2C_IsDeviceReady
Благодаря, ще го направя както показваш, в действителност внася организираност. Мисля че използваният адрес е различен е защото последно пробвах с трето устройство, което не бях записал в коментарите. Но сега ще се концентрирам само върху MPU-9250/6500.
|
| Вто Фев 13, 2024 10:46 am |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
 Re: STM32 HAL_I2C_IsDeviceReady
за SPI & I2C е добре да имаш осцилоскоп под ръка ... никога не тръгват от ряз та почваш от там ... имаш/нямаш сигнали - объркал пиновете грозни форми - забравил и сгрешил пъл-ъп, предава - не приема, все някой бит/число объркано но винаги се почва с Гугъл 
_________________ main[-1u]={1};
|
| Вто Фев 13, 2024 10:54 am |
|
 |
|
VPavlov
Ранг: Популярен
Регистриран на: Съб Апр 01, 2023 9:59 am Мнения: 303
|
 Re: STM32 HAL_I2C_IsDeviceReady
Прав си магьоснико, ама нямам. Ще купя един при първа възможност. Отдавна осъзнах нуждата. Гугъла го ползвам и бота и документация, уж се опитвам да правя нещата както трябва, без да я карам "през просото".
Бях поръчал две устройства защото имам лош спомен от дефектно или повредено от мен устройсто. Току що запоих новото и разгеле върна OK. По едно време вчера бях го захранил с 5V, по невнимание, така че може да съм повредил предното кит-че, но определено не работи.
|
| Вто Фев 13, 2024 11:42 am |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
 Re: STM32 HAL_I2C_IsDeviceReady
Да за тия интерфейси се иска гледане, ако не скоп някакъв евтин логически анализатор, има много. Много често проблема е в имплементацията, понякога в куцо описание, но резултата е все един и същ, я адреса в различен, я режима, и това са неща които се виждат веднага.
|
| Вто Фев 13, 2024 8:07 pm |
|
 |
|
RM
Ранг: Почетен член
Регистриран на: Нед Окт 19, 2008 7:26 pm Мнения: 672
|
 Re: STM32 HAL_I2C_IsDeviceReady
примерно за LM75A #define MY_I2C hi2c2 #define LM75_ADDRESS ((0x48 | 0x00) << 1 ) uint8_t reg Първо давам MX_I2C2_Init(); HAL_I2C_Master_Transmit( &MY_I2C, LM75_ADDRESS, ®, 1, 500 ); ////////////// HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, ////////////// uint16_t DevAddress, ////////////// uint8_t *pData, //////////////// uint16_t Size, //////////////// uint32_t Timeout);
_________________ Вниманиене съмвишист....ИЙ.
|
| Съб Фев 17, 2024 8:25 pm |
|
 |
|
RM
Ранг: Почетен член
Регистриран на: Нед Окт 19, 2008 7:26 pm Мнения: 672
|
 Re: STM32 HAL_I2C_IsDeviceReady
Да питам за STM32F103C6T6 Правя си една платка да ми следи едни сигнали. Имам 3 масива uint16_t по 820 елемента. Те съдържат измервания на 3 ADC канала в разстояние на 42mkS по 820 измервания на канал. Трябва да ги пратя през USB на пакети uint8_t 64 байта. В mine.c изпращането на репорта е ОК. Но когато функцията за изпращане на пакета се вика в друга моя функция, нещата се омазват. Усетих се че е от размера на стека. В линкера промених Stack Size от 0x400 на 0x500. И нещата се оправиха. но не ми е много ясно какво стана. Какво означава това съпоставено с дълбочината на стека Или с броя на запомнените Пр. адреси и препълване на стека . 0x400 или 0x500 какво точно променя ???
_________________ Вниманиене съмвишист....ИЙ.
|
| Нед Май 05, 2024 7:37 pm |
|
 |
|
MYXATA
Ранг: Форумен бог
Регистриран на: Пон Юни 05, 2006 1:48 pm Мнения: 4906 Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
|
 Re: STM32 HAL_I2C_IsDeviceReady
Ми що не направиш един кръговнбуфер. Интам да буташ от една страна данните от ацп , а от друга да четеш и да пращаш по усб? Така няма дастека няма да има нужда да го уголемяваш илибдантинендинамичен..
_________________ ... ако трети ден не ти се работи... това означава, че е сряда !
|
| Нед Май 05, 2024 8:19 pm |
|
 |
|
iss
Ранг: Ориентиран
Регистриран на: Съб Фев 06, 2016 8:29 pm Мнения: 237
|
 Re: STM32 HAL_I2C_IsDeviceReady
Препълване стека може да се получи ако виканите функции използват повечко локални променливи. Например: Тук ще трябва стек поне 512 + 8 байта.
|
| Нед Май 05, 2024 10:54 pm |
|
 |
|
RM
Ранг: Почетен член
Регистриран на: Нед Окт 19, 2008 7:26 pm Мнения: 672
|
 Re: STM32 HAL_I2C_IsDeviceReady
Тука вече съвсем не ме иска Промяната на реда 0х400 на 0х500 не промени нещата ... нещо се бях заблудил. Пуснах симулация на това което искам да следя ... оказа се че е невъзможно според познанията ми. Измерване на нарастване на фронт от 0V до 2.84V с продължителност 1.32 микроСекунди !!!
_________________ Вниманиене съмвишист....ИЙ.
|
| Пон Май 06, 2024 2:21 pm |
|
|