-
- В контроллере SPI случайно нет FIFO? Тогда надо делать холостое
чтение после каждой записи - LightElf(23.01.2021 11:46)
- Есть, на 2 байта. Туда - сюда... Закралась мысля про это, но в
примерах от них ни слова про это. В ПНД проверю. Считывать буду 2
раза. Но почему первый байт 0xff, а второй будет правильным,
загадка. seryy(108 знак., 23.01.2021 12:38)
- Там же shift register, который надо заполнить полезными данными. Costic(240 знак., 23.01.2021 19:22)
- Каждый выходящий байт порождает входящий байт. Если слейв в этот момент ничего не передавал, то входящий байт будет равен FF. Эти самые мусорные входящие байты все равно надо вычитывать, иначе фиг его знает что в FIFO будет наверху лежать. LightElf(1 знак., 23.01.2021 19:04, картинка)
- я с этим по первости влетел с STM32L476. Теперь везде перед чтением
по SPI ставлю - BFSPI=SPI3->DR; - Лaгyнoв(23.01.2021 13:39)
- BFSPI=SPI3->DR... это что? - seryy(24.01.2021 13:48)
- это просто пустое чтение регистра данных SPI3. Очищает FIFO. Если его не делать, что сначала читается по SPI всякий мусор. Из-за этого были проблемы при чтении по SPI как памяти 25РЕ80, так и считывателя RFID-карт. Причем была четкая закономерность - пока после сброса ничего не записываешь по SPI, то и читается правильно. :-) - Лaгyнoв(24.01.2021 14:16)
- BFSPI=SPI3->DR... это что? - seryy(24.01.2021 13:48)
- Есть, на 2 байта. Туда - сюда... Закралась мысля про это, но в
примерах от них ни слова про это. В ПНД проверю. Считывать буду 2
раза. Но почему первый байт 0xff, а второй будет правильным,
загадка. seryy(108 знак., 23.01.2021 12:38)
- А если dummy byte=0x0? Подозрительно, что пишете ФФ и читаете ФФ. - mse homjak(23.01.2021 11:43)
- Если подтягивающий резистор на ноль ставлю, то вместо 0xff получаю
0х00. То есть выход SRAM в третьем состоянии. Но почему осциллограф
кажет, что всё нормально. Неделю трахаюсь, чёрт... - seryy(23.01.2021 12:32)
- А если вычитать СПИ с подключонным осциллом? - mse homjak(23.01.2021 12:42)
- Картинка на экране осциллографа правильная. Вот только МК отдаёт
0хFF или 0х00, в зависимости от того, куда (SDO от SRAM) подключен
подтягивающий резистор. - seryy(23.01.2021 12:52 - 24.01.2021 05:49)
- На некоторых микрочиповских PIC'ах, нужно обязательно подключать вход тактирования к выводу CLK. Микроконтроллер ведущий, CLK- выход. Но если не включён входной буфер и вывод CLK не подключён внутренним коммутатором ко входу CLK, приёмник SPI не тактируется и принимает FF. - Nikolay_Po(23.01.2021 17:24)
- Скорость уменьшать не пробовали? - mse homjak(23.01.2021 14:19)
- Пробовал. Пох... На оциллографе все OK. - seryy(24.01.2021 05:49)
- и у меня на осциллографе всё было ОК, а читался мусор. Пока не ввел пустое чтение перед реальным. :-) - Лaгyнoв(24.01.2021 14:17)
- Пробовал. Пох... На оциллографе все OK. - seryy(24.01.2021 05:49)
- Картинка на экране осциллографа правильная. Вот только МК отдаёт
0хFF или 0х00, в зависимости от того, куда (SDO от SRAM) подключен
подтягивающий резистор. - seryy(23.01.2021 12:52 - 24.01.2021 05:49)
- А если вычитать СПИ с подключонным осциллом? - mse homjak(23.01.2021 12:42)
- Пофигу... Тоже самое... dummy байт без разницы какой, он нужен для получения клока для SPI... А 0xFF из ихнего аппнота AN1287. seryy(211 знак., 23.01.2021 12:28, ссылка)
- Если подтягивающий резистор на ноль ставлю, то вместо 0xff получаю
0х00. То есть выход SRAM в третьем состоянии. Но почему осциллограф
кажет, что всё нормально. Неделю трахаюсь, чёрт... - seryy(23.01.2021 12:32)
- В контроллере SPI случайно нет FIFO? Тогда надо делать холостое
чтение после каждой записи - LightElf(23.01.2021 11:46)