Попросили меня написать эмулятор сигналов от джиповского датчика коленвала (человек поменял мотор на тойотовский, теперь надо состыковать "мозги" джипа с двигателем, чтобы они таки считали, что двигатель работает). Написал под STM32. Так как частоты там небольшие, я не заморачивался с генерированием сигналов в режиме ШИМ+DMA, генерирую тупым ногодрыгом в прерываниях таймера. Сравнил осциллограмму с приведенными в интернете — вполне совпадает. Если будет нормально работать, следующим этапом будет сбор данных от тойотовского датчика (правда, там не Холл, а индуктивный — возможно, придется на входе еще операционник лепить).
Стал подбирать элементы, чтобы на макетке спаять минимальную обвязку (две кнопки, два светодиода и ключ на 2N7000, чтобы случайно порт мелкоконтроллера не спалить). Опять оказалось, что нужных резисторов у меня на работе нет. В обед дома надо будет захватить.
Сейчас погуглю, какие наиболее популярные номиналы стоит прикупить, да закажу на алиэкспрессе (0.65 баксов за 300 резисторов 0805, думаю, номиналов 10 прикуплю).
Стал подбирать элементы, чтобы на макетке спаять минимальную обвязку (две кнопки, два светодиода и ключ на 2N7000, чтобы случайно порт мелкоконтроллера не спалить). Опять оказалось, что нужных резисторов у меня на работе нет. В обед дома надо будет захватить.
Сейчас погуглю, какие наиболее популярные номиналы стоит прикупить, да закажу на алиэкспрессе (0.65 баксов за 300 резисторов 0805, думаю, номиналов 10 прикуплю).
Re: пальцем в небо
Date: 2016-12-30 12:30 am (UTC)макетку придется каждый раз паять, а код достаточно написать один раз.
Я понимаю, что для одиночной задачи это кажется несущественным преимуществом, но кто знает, не подкинет ли судьба еще аналогичных или близких задач, под которые уже будет готовый код?
Re: пальцем в небо
Date: 2016-12-30 05:35 am (UTC)У меня пока не так много готового кода. Скажем, с I2C я вообще только на STM8 работал. ЕМНИП, у STM32F103 (хотя ей уже полным-полно аналогов, это все еще наиболее распространенная линейка) в errata тоже было указано, что I2C работает через одно место, и DMA нельзя будет использовать для упрощения передач.
Но, конечно, постоянно появляются все новые задачи и код разрастается. Скажем, пару лет назад возникла необходимость работы с DS18B20, я где-то за месяц потихоньку накатал себе рабочий код (DMA + таймер). Сейчас вот нужно будет по I2C с TSYS-01 работать, придется таки под STM32S042 I2C заводить (зато там errata потоньше, и вроде как с I2C есть только одна проблема, которая имеет простое решение — т.е. "общение" с датчиком можно будет на DMA повесить).