Программа от TI, конфигуратор для TM4C123x series (TM4C123GH6PM)

Несколько дней назад обратил внимание что, на сайте тексаса, где все нужные принадлежности для TM4C123GH6PM есть программа  конфигуратор для TM4C123x series. В данном конкретном случае меня интересовал чип TM4C123GH6PM, так что дальнейшая речь  будет идти исходя из соображений его применения. Итак, скачиваем программу, устанавливаем и запускаем…

Сам по себе интерфейс неверотяно простой, конфигурация почти вся делается дабл-кликами мышки в соответствующих полях-«клеточках», которые отвечают за определенную переферию. При активации определённой «клкточки», слева, показывается состояние переферии, если вы чтото выбрали появляется галочка. Также можно нажать на правую кнопку мыши и из меню выбрать режим (активно не в всех «клеточках»).

Сорри, на скриншоте уже заснял, после того как сконфигурировал, но как вы догадываетесь по умолчанию все поля серым цветом отмечены. Обратите внимание, что внизу есть подсказка, какой цвет поля за какое свойство пина отвечает: вход/выход/ошибка/и т д.

Собственно на что стоит ещё обратить внимание, нужно выбрать семество чипа и сам чип, после этого уже приступать к конфигурации. Колонки доступных переферий и интерфесов на пине сооветсвуют выбраному чипу.

Кстати, обратите также внимание на галочку справа, ROM Function Calls, это позволит пусть и немного, но, съекономить память микроконтроллера.

После того как окончательно сконфигурировано всё, можно сохранить результат в .C(или .H)-файл, который потом можно просто подключить в своём исходнике, и дальше… а дальше собственно дело в шляпе, точнее в программе которую вы и будете писать…

 

Ну и для сохранения состояния конфигурации пинов:

Если говорить о списке чипов которые поддерживает эта утилита, то списик как раз весьма длинный, и что удивительно, ещё не все чипы тексас инстраментс выпустил в свет, по крайней мере из тех, что там в списке.

Так что утилита на долгую перспективу написана.

Ну и если вы планируете потом побыстрячку перекунфигурировать, то можете сохранить свою конфигурацию и потом просто её загрузить при необходимости чтото изменить. Сделано для ооочень ленивых, не тру-эмбеддер-вэй.

Ну собственно и всё, в качестве заключения хочу показать содержимое этих самых сгенерированных файлов, и файла конфигурации.

 

TM4C123GH6PM.pins.c

//*****************************************************************************
// Copyright (c) 2013 Texas Instruments Incorporated.  All rights reserved.
// Software License Agreement
//
//   Redistribution and use in source and binary forms, with or without
//   modification, are permitted provided that the following conditions
//   are met:
//
//   Redistributions of source code must retain the above copyright
//   notice, this list of conditions and the following disclaimer.
//
//   Redistributions in binary form must reproduce the above copyright
//   notice, this list of conditions and the following disclaimer in the
//   documentation and/or other materials provided with the
//   distribution.
//
//   Neither the name of Texas Instruments Incorporated nor the names of
//   its contributors may be used to endorse or promote products derived
//   from this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// «AS IS» AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
// This file was automatically generated by the Tiva C Series PinMux Utility
// Version: 1.0.2
//
//*****************************************************************************

#include «TM4C123GH6PM.pins.h»
#include «inc/hw_types.h»
#include «inc/hw_memmap.h»
#include «inc/hw_gpio.h»
#include «driverlib/sysctl.h»
#include «driverlib/pin_map.h»
#include «driverlib/rom_map.h»
#include «driverlib/gpio.h»

//*****************************************************************************
void
PortFunctionInit(void)
{
//
// Enable Peripheral Clocks
//
MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM0);
MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI0);
MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM1);
MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0);
MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_I2C0);
MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART3);
MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);
MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);
MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);

//
// Enable port PD3 for ADC AIN4
//
MAP_GPIOPinTypeADC(GPIO_PORTD_BASE, GPIO_PIN_3);

//
// Enable port PE1 for ADC AIN2
//
MAP_GPIOPinTypeADC(GPIO_PORTE_BASE, GPIO_PIN_1);

//
// Enable port PE0 for ADC AIN3
//
MAP_GPIOPinTypeADC(GPIO_PORTE_BASE, GPIO_PIN_0);

//
// Enable port PD2 for ADC AIN5
//
MAP_GPIOPinTypeADC(GPIO_PORTD_BASE, GPIO_PIN_2);

//
// Enable port PE2 for ADC AIN1
//
MAP_GPIOPinTypeADC(GPIO_PORTE_BASE, GPIO_PIN_2);

//
// Enable port PE3 for ADC AIN0
//
MAP_GPIOPinTypeADC(GPIO_PORTE_BASE, GPIO_PIN_3);

//
// Enable port PD4 for GPIOOutput
//
MAP_GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE, GPIO_PIN_4);

//
// Enable port PD5 for GPIOOutput
//
MAP_GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE, GPIO_PIN_5);

//
// Enable port PF4 for GPIOInput
//
MAP_GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_4);

//
// Enable port PB2 for I2C0 I2C0SCL
//
MAP_GPIOPinConfigure(GPIO_PB2_I2C0SCL);
MAP_GPIOPinTypeI2CSCL(GPIO_PORTB_BASE, GPIO_PIN_2);

//
// Enable port PB3 for I2C0 I2C0SDA
//
MAP_GPIOPinConfigure(GPIO_PB3_I2C0SDA);
MAP_GPIOPinTypeI2C(GPIO_PORTB_BASE, GPIO_PIN_3);

//
// Enable port PB6 for PWM0 M0PWM0
//
MAP_GPIOPinConfigure(GPIO_PB6_M0PWM0);
MAP_GPIOPinTypePWM(GPIO_PORTB_BASE, GPIO_PIN_6);

//
// Enable port PE4 for PWM0 M0PWM4
//
MAP_GPIOPinConfigure(GPIO_PE4_M0PWM4);
MAP_GPIOPinTypePWM(GPIO_PORTE_BASE, GPIO_PIN_4);

//
// Enable port PB5 for PWM0 M0PWM3
//
MAP_GPIOPinConfigure(GPIO_PB5_M0PWM3);
MAP_GPIOPinTypePWM(GPIO_PORTB_BASE, GPIO_PIN_5);

//
// Enable port PB7 for PWM0 M0PWM1
//
MAP_GPIOPinConfigure(GPIO_PB7_M0PWM1);
MAP_GPIOPinTypePWM(GPIO_PORTB_BASE, GPIO_PIN_7);

//
// Enable port PE5 for PWM0 M0PWM5
//
MAP_GPIOPinConfigure(GPIO_PE5_M0PWM5);
MAP_GPIOPinTypePWM(GPIO_PORTE_BASE, GPIO_PIN_5);

//
// Enable port PC4 for PWM0 M0PWM6
//
MAP_GPIOPinConfigure(GPIO_PC4_M0PWM6);
MAP_GPIOPinTypePWM(GPIO_PORTC_BASE, GPIO_PIN_4);

//
// Enable port PB4 for PWM0 M0PWM2
//
MAP_GPIOPinConfigure(GPIO_PB4_M0PWM2);
MAP_GPIOPinTypePWM(GPIO_PORTB_BASE, GPIO_PIN_4);

//
// Enable port PC5 for PWM0 M0PWM7
//
MAP_GPIOPinConfigure(GPIO_PC5_M0PWM7);
MAP_GPIOPinTypePWM(GPIO_PORTC_BASE, GPIO_PIN_5);

//
// Enable port PA6 for PWM1 M1PWM2
//
MAP_GPIOPinConfigure(GPIO_PA6_M1PWM2);
MAP_GPIOPinTypePWM(GPIO_PORTA_BASE, GPIO_PIN_6);

//
// Enable port PD0 for PWM1 M1PWM0
//
MAP_GPIOPinConfigure(GPIO_PD0_M1PWM0);
MAP_GPIOPinTypePWM(GPIO_PORTD_BASE, GPIO_PIN_0);

//
// Enable port PA7 for PWM1 M1PWM3
//
MAP_GPIOPinConfigure(GPIO_PA7_M1PWM3);
MAP_GPIOPinTypePWM(GPIO_PORTA_BASE, GPIO_PIN_7);

//
// Enable port PD1 for PWM1 M1PWM1
//
MAP_GPIOPinConfigure(GPIO_PD1_M1PWM1);
MAP_GPIOPinTypePWM(GPIO_PORTD_BASE, GPIO_PIN_1);

//
// Enable port PF0 for PWM1 M1PWM4
// First open the lock and select the bits we want to modify in the GPIO commit register.
//
HWREG(GPIO_PORTF_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY_DD;
HWREG(GPIO_PORTF_BASE + GPIO_O_CR) = 0x1;

//
// Now modify the configuration of the pins that we unlocked.
//
MAP_GPIOPinConfigure(GPIO_PF0_M1PWM4);
MAP_GPIOPinTypePWM(GPIO_PORTF_BASE, GPIO_PIN_0);

//
// Enable port PF3 for PWM1 M1PWM7
//
MAP_GPIOPinConfigure(GPIO_PF3_M1PWM7);
MAP_GPIOPinTypePWM(GPIO_PORTF_BASE, GPIO_PIN_3);

//
// Enable port PF2 for PWM1 M1PWM6
//
MAP_GPIOPinConfigure(GPIO_PF2_M1PWM6);
MAP_GPIOPinTypePWM(GPIO_PORTF_BASE, GPIO_PIN_2);

//
// Enable port PF1 for PWM1 M1PWM5
//
MAP_GPIOPinConfigure(GPIO_PF1_M1PWM5);
MAP_GPIOPinTypePWM(GPIO_PORTF_BASE, GPIO_PIN_1);

//
// Enable port PA4 for SSI0 SSI0RX
//
MAP_GPIOPinConfigure(GPIO_PA4_SSI0RX);
MAP_GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_4);

//
// Enable port PA3 for SSI0 SSI0FSS
//
MAP_GPIOPinConfigure(GPIO_PA3_SSI0FSS);
MAP_GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_3);

//
// Enable port PA2 for SSI0 SSI0CLK
//
MAP_GPIOPinConfigure(GPIO_PA2_SSI0CLK);
MAP_GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_2);

//
// Enable port PA5 for SSI0 SSI0TX
//
MAP_GPIOPinConfigure(GPIO_PA5_SSI0TX);
MAP_GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_5);

//
// Enable port PA0 for UART0 U0RX
//
MAP_GPIOPinConfigure(GPIO_PA0_U0RX);
MAP_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0);

//
// Enable port PA1 for UART0 U0TX
//
MAP_GPIOPinConfigure(GPIO_PA1_U0TX);
MAP_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_1);

//
// Enable port PC6 for UART3 U3RX
//
MAP_GPIOPinConfigure(GPIO_PC6_U3RX);
MAP_GPIOPinTypeUART(GPIO_PORTC_BASE, GPIO_PIN_6);

//
// Enable port PC7 for UART3 U3TX
//
MAP_GPIOPinConfigure(GPIO_PC7_U3TX);
MAP_GPIOPinTypeUART(GPIO_PORTC_BASE, GPIO_PIN_7);
}

 

а также — TM4C123GH6PM.pins.pin

#File generated by the Tiva® C Series PinMux Utility — DO NOT MODIFY or tool will not work correctly
#Version #1.0.2
#Date and time saved: 23.01.2014 22:06:12
tm4c123x series,tm4c123gh6pm
PA0,17,U0RX,cEnabled
PA1,18,U0TX,cEnabled
PA2,19,SSI0CLK,cEnabled
PA3,20,SSI0FSS,cEnabled
PA4,21,SSI0RX,cEnabled
PA5,22,SSI0TX,cEnabled
PA6,23,M1PWM2,cEnabled
PA7,24,M1PWM3,cEnabled
PB0,45, ,cDisabled
PB1,46, ,cDisabled
PB2,47,I2C0SCL,cEnabled
PB3,48,I2C0SDA,cEnabled
PB4,58,M0PWM2,cEnabled
PB5,57,M0PWM3,cEnabled
PB6,1,M0PWM0,cEnabled
PB7,4,M0PWM1,cEnabled
PC0,52,TCK/SWCLK,cJTAG
PC1,51,TMS/SWDIO,cJTAG
PC2,50,TDI,cJTAG
PC3,49,TDO/SWO,cJTAG
PC4,16,M0PWM6,cEnabled
PC5,15,M0PWM7,cEnabled
PC6,14,U3RX,cEnabled
PC7,13,U3TX,cEnabled
PD0,61,M1PWM0,cEnabled
PD1,62,M1PWM1,cEnabled
PD2,63,AIN5,cEnabled10
PD3,64,AIN4,cEnabled10
PD4,43, ,cGPIOOutput
PD5,44, ,cGPIOOutput
PD6,53, ,cDisabled
PD7,10, ,cDisabled
PE0,9,AIN3,cEnabled10
PE1,8,AIN2,cEnabled10
PE2,7,AIN1,cEnabled10
PE3,6,AIN0,cEnabled10
PE4,59,M0PWM4,cEnabled
PE5,60,M0PWM5,cEnabled
PF0,28,M1PWM4,cEnabled
PF1,29,M1PWM5,cEnabled
PF2,30,M1PWM6,cEnabled
PF3,31,M1PWM7,cEnabled
PF4,5, ,cGPIOInput

 

Attached Files:

  • jpg 0

    /var/www/uschema.com/wp content/uploads/2014/01/0123 0

  • jpg 1

    /var/www/uschema.com/wp content/uploads/2014/01/0123 1

  • jpg 2

    /var/www/uschema.com/wp content/uploads/2014/01/0123 2

  • jpg 3

    /var/www/uschema.com/wp content/uploads/2014/01/0123 3

  • jpg 4

    /var/www/uschema.com/wp content/uploads/2014/01/0123 4

  • jpg 5

    /var/www/uschema.com/wp content/uploads/2014/01/0123 5

  • jpg 6

    /var/www/uschema.com/wp content/uploads/2014/01/0123 6

Добавить комментарий