‮Сдвиг по фазе (kincajou) wrote,
‮Сдвиг по фазе
kincajou

worklog: Serial Flash

Интерфейс сразу заработал на максимально возможной скорости для микроконтроллера - половина от тактовой, 36 МГц (большинство serial flash могут гораздо быстрее работать, это уже микроконтроллер не позволяет). Не вижу тут вообще никакого смысла "экономить".

Пока разбираюсь, пишу библиотечку поддержки SPI serial flash (в самом деле, лучший способ изучить - сделать самому).

Столкнулся с тем, что первая (после сброса системы) транзакция по SPI фейлит по непонятной причине - MISO даже не выходит из Z-состояния. Но уже второе обращение выглядит нормально. Вряд ли это флешка тупит, она про системный сброс ничего не знает в принципе. И если через DMA работать, тоже такой же глюк - первая посылка вся читается как 0xFF, все следующие идут нормально. Решил эту проблему просто: после инициализации порта шлю команду считывания статусного регистра и игнорирую результат :)

Библиотечка примитивная, но функции записи (что однобайтовые, что "потоковые"), чтения и очистки уже работают.

Без использования функций SPL, взял оттуда только удобные дефайны регистров и битовых полей.

Следующий заход: поднять USB Mass Storage хотя бы с одним LUN, хотя бы из какого-нибудь тупого примера, пришить к нему эту флешку и увидеть сногсшибательный результат ;)

После чего прикрутить к моей системе поддержку FATfs и добиться того, чтобы контроллер увидел файлы, записанные компом. Тут надо будет подумать, как разрюхать конфликты доступа. В принципе, я пока не подразумеваю, что контроллер будет на эту флеш что-то записывать сам, но в будущем такая возможность может понадобиться.
Tags: радио
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments