2016-07-15 1 views
0

Не уверен, что я ищу не в том месте, но мне сложно найти пошаговый код, который показывает, как манипулировать контактами ввода-вывода и контроль I2C, SPI и USART.Адресация контактов (серия ARM SAM D) для IO и SERCOM

Рытье межсети, я нашел 2 примера, которые показывают IO на булавку, чтобы включить светодиод, используя Atmel студии 7

#include <asf.h> 

#define F_CPU sysclk_get_cpu_hz() 
#define __DELAY_CYCLE_INTRINSICS__ 

int main (void) 
{ 
    board_init(); 
    PORT ->Group[0].DIRSET.reg = PORT_PA10; 
    while (1) 
    { 
     PORT ->Group[0].OUTSET.reg = PORT_PA10; 
    } 
} 

В другом примере, та же операция поворота на ниппеля сделано совсем по-другому, с дополнительной задержкой, чтобы светодиод мигал. Я помню, что это «ASF», API Atmel, используемый для облегчения вещей.

#include <asf.h> 

int main (void) 
{ 
    system_init(); 
    delay_init(); 

    while(true) 
    { 
     delay_ms(250); 
     port_pin_set_output_level(LED_PIN, LED_ACTIVE); 
     delay_ms(250); 
     port_pin_set_output_level(LED_PIN, LED_INACTIVE); 

    } 
} 

Это все замечательно; Я кое-что вижу, как делать вещи; но теперь я хотел бы использовать SERCOM для связи с другими устройствами с USART, I2C и SPI. И мне трудно найти ясный шаг за шагом, для такого использования.

Я попытался экспериментировать сам по себе, но теперь я нахожусь в точке, где мне нужно что-то следовать, либо книгу, учебник, либо видео. Может быть, я нахожу небольшую документацию, потому что я ищу примеры для конкретного чипа? Но не все чипы ARM работают одинаково, с одним и тем же кодом, поэтому я совершенно потерял ... быть новичком в программировании ARM тоже не помогает.

+1

Вы можете попробовать Atmel Start (http://start.atmel.com/). Создайте проект с целевым устройством, добавьте необходимые вам функции (немного выделите) и экспортируйте его. Это должно дать вам необходимый вам код библиотеки, а также некоторые примеры функций, чтобы показать вам, как его использовать. Есть также полные примеры, которые вы можете скачать и поиграть. –

+0

Обратите внимание, что речь идет только о периферийных устройствах микроконтроллера, а не о центральном ядре процессора, поэтому он фактически не имеет ничего общего с ARM и все, что связано с Atmel (например, я думаю, что некоторые из их периферийных блоков могут быть общими для ARM-based и AVR32 на основе). – Notlikethat

+0

@IvarBonsaksen: есть примеры, но они сбивают с толку. В большинстве случаев API имеет отличные примеры, но в случае с Atmel они отлично справились с документами, но для примеров они очень сильно связаны с платформой eval, что в некоторых аспектах отличается. Я хотел бы видеть ясный пример, где вы начинаете с нуля, но я нашел только один, который показывает, как включить булавку для светодиода. –

ответ

1

Ну, Atmel является одним из моих любимых производителей, потому что их инструменты разработки являются бесплатными, всеобъемлющими и хорошо документированными. Мне особенно нравится их API, поскольку он легко и гибко в использовании. В большинстве случаев API - лучшее решение (например, очень сложно реализовать собственный USB-драйвер/стек). Однако я понимаю, что в некоторых случаях вы не хотите использовать API, но он по-прежнему является очень хорошей отправной точкой.

Я советую вам создать пример проекта в Atmel Studio (файл/новый/примерный проект). Затем вы можете копировать и вставлять нужные вам биты (вы не будете нарушать лицензию, поскольку все еще используете части Atmel). Например, есть «Быстрый запуск для драйвера SAM SERCOM USART».

Если вам нужна документация по API, просто щелкните документацию API в ASF-проводнике. Например, SERART USART SAMD21 документирован here и here.

+0

Ну, не то, что я не хочу использовать их API, я хочу использовать что-то, что быстро учится и есть много примеров. Как упоминалось ранее, мне потребовались недели, чтобы найти ясный пример того, как использовать штырь. Atmel отлично работает из-за бесплатных инструментов и тонны API, но если вы новичок в этом и не используете оценочную плату, все быстро усложняется. Я начал с примеров; и они используют свою оценку. Я могу подключить свой чип, поскольку заголовки определения вывода указывают, для оценки, но сначала я должен понять, что я делаю; и это мосты отсутствуют в документах и ​​примерах. –

+0

Я проверил заголовки, содержащие определение вывода, и начал оттуда, но затем я застрял, потому что то, что находится в приложениях на Atmel.com, отличается от того, что я вижу в примере. Даже серийный пример - беспорядок, если вы посмотрите на разные источники. ИТ было бы намного проще, если бы на сайте Atmel; учебник «Уровень 0», в котором показано, как подключить чистый чип, как включить контакты для Serial, I2C и SPI, а затем показать пример «hello world», все они используют одну и ту же методологию кодирования и согласованы. Чем больше времени я провожу, тем меньше я кодирую. –

+0

Я отредактировал мое сообщение, чтобы включить ссылку на документацию SERCOM USART. Там они объясняют шаг за шагом, как использовать API. Единственная трудность, на которую я верю, для выделения контактов, где вам нужно копать в файле заголовка, найти макросы, похожие на PINMUX_PA22C_SERCOM3_PAD0. –

Смежные вопросы