Dimonira 0 13 августа, 2019 Опубликовано 13 августа, 2019 (изменено) · Жалоба Возникла проблема обмена STM32F777 с резистором AD5293 по SPI (с аппаратным SS). Даташит на AD5293 не блещет наполненностью. Получается, что с одними настройками SPI (CPOL=LOW, CPHA=1 Edge) в резистор пишется, но читаются из него данные, как будто сдвинутые на один бит вправо (весь массив). Если сделать CPHA=2 Edge, то видно, что принимаемые данные соответствуют посланным на предыдущей стадии, но резистор не понимает что от него хотят и ответ на команду чтения (NOP=0) не посылает. Частоту клоков (делитель 4...32) делали разную - не влияет. Подтяжка по выходу SDO есть (и встроенная в процессор, и внешнюю 2.4к ставили). Делали задержку 1, 10 мс между записью и чтением (типа, чтобы резистор "отработал") - не помогло. Использую STM32CubeIDE последней версии. Для теста записи/чтения значения value в резистор использовался, например, такой код (вариант без задержки): #define count 4 uint16_t tx[count] = {0x1802,0x400|(value & 0x3FF),0x800,0}, rx[count]; if(HAL_SPI_TransmitReceive(&hspi2, (uint8_t*)tx, (uint8_t*)rx, count, 50) != HAL_OK) Error_Handler(); Например, когда value = 0x123, принимаются соответственно 0, 0xC01, 0x291, 0x91 вместо 0, 0x1802, 0x523, 0x123. Видно, что получено всё сдвинутое на 1 бит вправо. Младший бит утерян, но, если сделать count = 5 и читать лишнее слово, то оно будет равно 0x8000 - как раз с младшим битом в старшем разряде. Собственно, хотелось делать сразу чтение для проверки, что в резисторе записано то, что записывали. Не хотелось бы делать костыль со сдвигом влево. Как цивилизованно решить этот трабл и из-за чего он может быть? Изменено 13 августа, 2019 пользователем Dimonira Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 13 августа, 2019 Опубликовано 13 августа, 2019 · Жалоба 4 часа назад, Dimonira сказал: Как цивилизованно решить этот трабл и из-за чего он может быть? Цивилизованно решают при помощи осциллографа или логического анализатора. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimonira 0 14 августа, 2019 Опубликовано 14 августа, 2019 · Жалоба 14 hours ago, jcxz said: Цивилизованно решают при помощи осциллографа или логического анализатора. Чёрт возьми, не знал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bgc 0 2 сентября, 2019 Опубликовано 2 сентября, 2019 · Жалоба On 8/13/2019 at 11:54 AM, Dimonira said: Использую STM32CubeIDE последней версии. А у вас состояние FreeRTOS отображается? Live Expressions? SWV? и на каком JTAGе? ST-LINK или J-LINK ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimonira 0 9 сентября, 2019 Опубликовано 9 сентября, 2019 · Жалоба On 9/2/2019 at 3:13 PM, bgc said: А у вас состояние FreeRTOS отображается? Live Expressions? SWV? и на каком JTAGе? ST-LINK или J-LINK ? Проверялось без FreeRTOS. SWV не включал. Тогда был J-LINK. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 26 9 сентября, 2019 Опубликовано 9 сентября, 2019 · Жалоба 1 hour ago, Dimonira said: Проверялось без FreeRTOS. SWV не включал. Тогда был J-LINK. А надо бы еще и без куба. На чипе есть RDY SYNC - они задействованы ? Quote Falling Edge Synchronization Signal. This is the frame synchronization signal for the input data. When SYNC goes low, it enables the shift register, and data is transferred in on the falling edges of the following clocks. The selected register is updated on the rising edge of SYNC, following the 16th clock cycle. If SYNC is taken high before the 16th clock cycle, the rising edge of SYNC acts as an interrupt, and the write sequence is ignored by the DAC. Пользовали бы лог. анализатор, как Вам выше советовали - достаточно было бы сравнить диаграммы из даташита и реальные. Quote Даташит на AD5293 не блещет наполненностью. да. Он блещет "необходимостью и достаточностью". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimonira 0 9 сентября, 2019 Опубликовано 9 сентября, 2019 · Жалоба 2 hours ago, k155la3 said: А надо бы еще и без куба. На чипе есть RDY SYNC - они задействованы ? Пользовали бы лог. анализатор, как Вам выше советовали - достаточно было бы сравнить диаграммы из даташита и реальные. да. Он блещет "необходимостью и достаточностью". RDY не задействован, ибо в SPI интерфейсе отсутствует и Quote The AD5293 contains a serial interface (SYNC, SCLK, DIN, and SDO) that is compatible with SPI standards, as well as most DSPs. Лог. анализатора нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 9 сентября, 2019 Опубликовано 9 сентября, 2019 · Жалоба 1 час назад, Dimonira сказал: Лог. анализатора нет. За прошедший почти месяц уже можно было заказать и дождаться с али самый дешёвый. И в будущем понадобится если ещё какие цифровые интерфейсы отлаживать придётся. А без лог.анализатора в этом деле, это как оперировать больного с закрытыми глазами: можно конечно и удачно ткнуть скальпелем наугад, но скорее всего не очень. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimonira 0 9 сентября, 2019 Опубликовано 9 сентября, 2019 · Жалоба 3 hours ago, jcxz said: За прошедший почти месяц уже можно было заказать и дождаться с али самый дешёвый. И в будущем понадобится если ещё какие цифровые интерфейсы отлаживать придётся. А без лог.анализатора в этом деле, это как оперировать больного с закрытыми глазами: можно конечно и удачно ткнуть скальпелем наугад, но скорее всего не очень. Я же не буду за свои покупать для работы анализатор. Итак уже натаскал на работу всякого, и тестер, и батарейки, и конвертер usb-ethernet, и планки памяти и т.д., уже всего и не упомню. Я сделал простейший костыль - чтение лишних битов. И этот костыль работает 100%. Ни одного сбоя не было, ибо если читается не то, что записывалось, то вызывается ErrorHandler с вечным циклом. В него ни разу процессор не заходил. Да и вопрос этот померк с свете другой проблемы (в соседней ветке). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 9 сентября, 2019 Опубликовано 9 сентября, 2019 · Жалоба 8 минут назад, Dimonira сказал: Я же не буду за свои покупать для работы анализатор. Итак уже натаскал на работу всякого, и тестер, и батарейки, и конвертер usb-ethernet, и планки памяти и т.д., уже всего и не упомню. Странная работа, на которой даже мелочами не обеспечивают. Время разработчика стоит как правило намного дороже такой ерунды. Неправильное у вас руководство, раз не понимает такой простой вещи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimonira 0 9 сентября, 2019 Опубликовано 9 сентября, 2019 · Жалоба 31 minutes ago, jcxz said: Странная работа, на которой даже мелочами не обеспечивают. Время разработчика стоит как правило намного дороже такой ерунды. Неправильное у вас руководство, раз не понимает такой простой вещи. Так везде в той или иной степени, всё зависит от запущенности (ака бедности) конторы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 26 11 сентября, 2019 Опубликовано 11 сентября, 2019 · Жалоба On 9/9/2019 at 10:22 PM, Dimonira said: Так везде в той или иной степени, всё зависит от запущенности (ака бедности) конторы. Вот ЭТО поюзайте, весч стоящая и проверенная Китайский 8-каналный логический анализатор За 10-20 $ оно вам сэкономит много невров. Получите еще и "декодеры" протоколов I2C, SPI, USART, CAN и еще что-то. А если такая сумма для фирмы критична .... Это как в анекдоте "Да что же вы так убиваетесь ? .... Да вы же так никогда не убьетесь !" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться