[Из песочницы] MultiClet: осваиваем SPI на примере работы с LCD
В начале мая я стал счастливым обладателем отладочного комплекта LDM-MCp. Пару месяцев он пылился на столе, было много работы, назревал отпуск. Вернувшись, с новыми силами, светлой головой и рвением что-то пощупать-поделать, но точно не работу, руки сами потянулись за новую игрушку. Поставил SDK под Linux, всё подключил.Квест первый Сразу после подключения система радостно обнаружила спаренное FTDI-устройство, создав сразу два ttyUSBx-девайса. И тут дилемма — либо использовать Serial-консоль, либо иметь возможность заливать прошивки, — идущий в комплекте загрузчик работает напрямую с FTDI-устройством. Пришлось на коленке рисовать скрипты для «правильной» загрузки модуля ftdi_sio. Наколенность проявила себя в использовании питоновских биндингов к библиотеке ftd2xx. Общая суть сводится к выгрузке модуля, блокированию FTDI, используемого для прошивки, и одновременной с этим загрузке модуля обратно. Тогда ядерный модуль может заблокировать оставшийся FTDI для UART.Hello, world! — слишком банально Простенький «Hello, world!» с мигающими LED заработал сразу, только обнаружилось, что после прошивки линуксовым mc-ploader’ом необходимо дополнительо сбросить плату или подожать, пока сработает WDT. Когда-то зимой заказывал себе пару SPI-экранчиков HY28A, но с нашей почтой пришли они только в мае. Тут и решение само пришло — начать с экранчика. Вооружившись USB’ым логическим анализатором SYSCLK DX, полез штудировать спеки на регистры GPIO и SPIx в процессоре MCp и ковыряться в примерах использования SPI.Читать дальше →