Stellaris lm4f120 launchpad

Добрый день читатель! Это мой первый пост в блоге, и не только этом, а вообще никогда раньше в блоги не писал. Так что просьба отнестись с пониманием.
Хочу собрать воедино всё что нашёл по новому контроллеру (TI LM4F120) в одном месте, чтоб было проще начинать, т.к. ходить в потёмках по граблям не очень продуктивно и приятно. Кто хочет ознакомится немного подробней, милости просим :)


Заимел тут железяку — LM4F120 — от TI. Описывать всё подробно что имеется на борту — не вижу смысла, т.к. в интернетах есть очень много одинаковых описаний, их можно без труда найти и почитать. В принципе всё нравится, кроме количества документации и примеров. Даже на сайте и в блоге easyelectronics я встретил лишь пару упоминаний. Кстати да, всё переименовали в Tiva TM4C1233H6PM. Так что документацию ищем здесь.
В даташитах (которые кстати почти по 1.5к страниц) есть конечно много чего, но примеров программирования маловато. Есть куча API, которые объединили и назвали StellarisWare (TivaWare). Там есть и примеры, и даже портированная FreeRTOS с мигающими светодиодами.
Ещё одним важным документом является TivaWare™ Peripheral Driver Library в котором тоже есть примеры. Все примеры виртуальные, типа просто берём и отправляет какую-то фигню. Реального примера общения с каким-то конкретным девайсом я не нашёл. В связи с чем возникла идея написать пару примеров работы по разным интерфейсам с реальными железяками. Конечно же сам я только начинаю всё осваивать, и не умею ещё делать всякие финты ушами, так что коментарии только приветствуются
В наличии акселерометр(spi,i2c), GPS(uart), RTC(i2c), ENC28J60(spi) и ещё другие штучки-дрючки. С некоторыми ещё даже не пробовал разбираться (например УЗ дальномер).
Есть ли у кого-нибудь реальный интерес ко всему описанному выше, или мне нет смысла надрываться тут писать что-то?
  • +2
  • 12 июня 2013, 14:11
  • timkas

Комментарии (58)

RSS свернуть / развернуть
Общие принципы работы везде пригодятся, на любой телеге.
0
Поддерживаю. Пишите.
0
:) Конешно пишите! Лежат два кита — руки никак не дойдут.
0
Все примеры виртуальные, типа просто берём и отправляет какую-то фигню. Реального примера общения с каким-то конкретным девайсом я не нашёл.
что ты имееш в виду? там есть библиотека для работы с набортной периферией
зачем тебе знать все заморочки?

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

не знаю насколько там крут ацп, но может быть он подошел бы для измерителя индуктивности и емкости
а может быть какой сдр приемник сделать с небольшой полосой
0
У меня есть конкретный пример — ну не получается у меня завести акселерометр в данный момент по SPI, никак. На АСМе писал под Атмегу, на Си писал под ту же атмегу — без проблем, протокол простейший в общем-то. Ну вот не работает на этом контроллере, хоть убейся (на самом деле конечно наличие осцилла решает много проблем, но у меня его нет). Да и готовый примерчик который с русскими коментами куда приятней ковырять, чем забугорный датащит с кучей непонятных слов, некоторые из которых кстати важны, да и вообще кстати, не все английский знают достаточно хорошо.
0
Ну вот не работает на этом контроллере, хоть убейся
Если задержки на циклах, то и не будет работать. Это ведь кортекс, у него есть конвеер и прочие причандалы, которые позволяют получить высокую производительность, но которые лишают возможности «писать на задержках».
не все английский знают достаточно хорошо.
Это повод его подучить :)
+2
(на самом деле конечно наличие осцилла решает много проблем, но у меня его нет)
купи логический анализатор, вроде этого
www.aliexpress.com/item/USB-Saleae-24M-8CH-Saleae-24MHz-8Channel-Logic-Analyzer-saleae-24M-8CH-Latest-support-1-1/737326718.html (не реклама, первый попавшийся продавец)
стоит он в пределах 300 рублей с доставкой обычной почтой (по собственному опыту, приедет месяца через полтора-два)
но будет тебе счастье, когда сможешь ты воочию увидеть что на шине интерфейсной происходит (софт может распознавать интерфейсы UART, I2C, SPI, 1-Wire...), кто кому и что ответил, на какой скорости, насколько соответствую временные характеристики…
+3
Кстати вот, нечаянно наткнулся, тут же, на сайте)))
we.easyelectronics.ru/Pika4u56/saleae-logic-ili-poddelka-dyadyushki-lyao.html
0
Если не сильно критичен внешний вид, то можно взять http://www.ebay.com/itm/CY7C68013A-56-EZ-USB-FX2LP-USB-2-0-Develope-Board-Module-Logic-Analyzer-EEPROM-/400330480196?pt=LH_DefaultDomain_0&hash=item5d358e5a44 И шильдами делать из неё логический анализатор или осциллограф.
Но это вариант «для скупых», так отдельный лоджик поаккуратнее.
0
ты использовал железный спи или как?
а так вон без логического анализатора много времени потратиш
я сам сейчас допаиваю такой
0
Пока использую железный спи. Был опыт написания софтового, на атмегу, тупо чтобы пины не занимать нужные. Но тут другое дело — FreeRTOS и соответственно куча нюансов, которые не очень то позволяют с ходу сделать так как я хочу.
Сейчас этот акселерометр пытаюсь воткнуть по i2c, может правда он сдох уже, а я тут труп оживить пытаюсь.
Вот на счёт логического анализатора кстати верно подмечено, давно посматривал на такие, но как они на деле? Этот за 300р например. Не добавит ли он проблем? А то помню как-то давненько на Proteus отлаживал i2c библиотеку самописную асемблерную, так замучался — оказалось что глюк в программе и на железе всё отлично заработало.
0
Не добавит. У меня (и у половины easyelectronics) такие же один в один. Работает толково.
+2
протеус это протеус
анализатор просто считывает сигналы в буфер себе, потом отдает в усб и софт уже декодирует
оригинальный анализатор стоит 150 баксов и давно продается
+1
Вот на счёт логического анализатора кстати верно подмечено, давно посматривал на такие, но как они на деле? Этот за 300р например. Не добавит ли он проблем?
лично у меня таких два, на работе и дома, сначала купил один из любопытства, в надежде, что от него будет толк, он превзошел все ожидания (не железо, а софт, который с ним работал).
лично для меня в нем только один недостаток — LDO, который греет плату, поначалу напрягало, потом забил, на импульсник так и не менял.
Плату не отмывал, как получил так и работают, уровни напряжения где то от 2.5 до 5 В (1.8 не берет, на фронты и спады реагирует но превращается в ШИМ на экране), при работе на 3 и 5 В никаких глюков не замечал, просто наслаждение отлаживать софтовый интерфейс и проверять правильность инициализации железного
0
лично у меня
лично для меня
блин, видимо я еще не проснулся =/
0
Да все мы тут не литераторы)
У меня кстати самое время спать было — 2:43
Ну здесь на этой плате только ядро работает на напряжении 1.2, вся переферия — 3.3, так что проблем с этим не должно быть. Мне действительно надоело тыкать пальцем в слепую — эти извращения с пошаговым выполнением и измерением напряжения тестером — нЕчто)
0
При необходимости можно воткнуть буфер-согласователь, на котором китайцы сэкономили — что-нить из 74LVC, с двумя питаниями.
+1
Как раз думал об этом, валяется парочка таких — 74LVC125. Как приедет мой, попробую приделать
Хотя если честно, ещё не сталкивался с напряжениями ниже 3.3 вольта на ногах. Это наверное на оперативке там напряжения такие, больше не знаю даже где
0
STM8L работают до 1.8В. AVR тоже большенство сейчас. ARM так всегда 1.8-3.3В. То есть все это может работать и от 3.3В, но и от 1.8 им ни кто не запрещает (в целях снижения потребления, например, при питании от батареек).
0
О минимальных входных логических уровнях 5V толерантной по входу 3.3V логики 74LVC:

Возьмем буфер NXP 74LVC245. Он понимает минимальное напряжение на входе как логич.«1»(HIGH-level input voltage) от 2V, и это при стандартном для 3.3V логики напряжении питания VCC=2.7-3.6V. Он может и понимать 1.7V, ~1.2V или ~1.1V как логич.«1», но нужно соответственно снижать напряжение питания VCC чипа до 2.3-2.7V, 1.65-1.95V или 1.2V. Т.е. лепить дополнительный 1.8-2.5Vout LDO на плате клона Saleae.
0
Зачем же именно на плате, можно сделать небольшую плату-переходник в разрыв шлейфа от Saleae к устройству. Будет универсальной и её можно использовать будет не только с ним, но и другими устройствами
0
В этой теме был базар про клоны Saleae/USBee(ссылки на поделки с kazus.ru и т.п.) и про этот пресловутый буфер. Если не надо работать с 1.2, 1.5, 1.8V питания логикой — то он не нужен.

ИМХО, наилучший по универсальности схемотехники клон Saleae/USBee: этот — 3 чипа I2C EEPROM для разных прошивок, куча джамперов, можно переконфигурить в USBee AX.

И самое главное там стоит буфер 74LVC8T245 с двойным питанием(Dual Supply), т.е. отдельным напряжением питания для входной и выходной части буфера, при питании входной части от 1.2, 1.5, 1.8, 2.5, 3.3, 5V он нормально поддерживает по входу логические уровни стандартные для соответствующей по вольтажу логики. Выходная часть естественно запитана 3.3V — напряжением питания чипа CYPRESS. Только я не знаю — поставил ли он туда регулируемый LDO с джамперами для выбора питания ее вх.части из этого ряда 1.2-5V.
0
Гораздо логичнее запитать одну сторону транслятора уровня от самого устройства и тогда не надо будет ни LDO-шек, ни переключателей.
0
запитать одну сторону транслятора уровня от самого устройства
У элементуса так видимо и сделано, но ИМХО, что мешало заиметь на всякий случай этот копеечный Adjastable Voltage LDO на такой большой плате, и лучше не с перемычками а со slider switch.
0
Надо просто взять LVC4245 вместо LVC245 и «будет щасте» :)
0
Решил окончательно обобщить все написанное про этот буфер на входе Saleae:

1. Он там не нужен, если работать только с 3.3 или 5V (и возможно 2.5V) логикой. Защиту входов от перенапряжения и ESD там отлично выполняют диодные или TVS сборки. Например такие: PESD5V0L4U

2. Если надо надежно читать логические сигналы с 1.2, 1.5, 1.8 и 2.5V логикой, то надо ставить чип 74LVC8T245 с Dual Supply.

3. Во 2-м случае надо озаботиться вопросом питания его вх.части напряжениями 1.2, 1.5, 1.8 или 2.5V, помимо стандартного 3.3V. От собственного источника или отдельным проводком от испытуемой схемы.

Способность digital IC (цифровых чипов) надежно воспринимать по входу логические сигналы от IC с другим напряжением питания определяется главным образом минимальным напряжением лог. «1» VIH_min (High-Level Input Voltage min), поскольку чем меньше напряжение питания VCC — тем меньше VIH.

Соответственно, VIH_max – это максимальное напряжение лог. «1» и обычно ~ VCC, а если выше, то определяет толерантность входов чипа к сигналам логики с более высоким напряжением питания. Например, чип CYPRESS CY7C68013A с VCC=3.3V имеет 5V толерантные входы, т.е. VIH max у него =5V, а не 3.3V, как вроде бы должно быть.

Ряд напряжений питания цифровой логики таков:
5.0, 3.3, 2.5, 1.8, 1.5, 1.2V
Напряжения логических уровней и питания Digital IC определяются следующими стандартами JEDEC:
5.0V — JESD36
3.3V — JESD8-A/B/C
2.5V — JESD8-5
1.8V — JESD8-7
1.5V — JESD8-11
1.2V — JESD8-12

В этой таблице собраны значения VCC_range (номинальный/рабочий диапазон VCC) и VIH_min для логики из этого ряда напряжений:
3.3V — VCC_range=3.0-3.6V VIH_min=2.0V
2.5V — VCC_range=2.3-2.7V VIH_min=1.7V
1.8V — VCC_range=1.65-1.95V VIH_min=1.1V
1.5V — VCC_range=1.4-1.6V VIH_min=0.9V
1.2V — VCC_range=1.1-1.3V VIH_min=0.7V

Даташит 74LVC8T245 на 1 стр. говорит о поддержке чипом стандартов JDEC только для 1.8, 2.5, 3.3 и 5V, но посмотрев на значения VIH_min для различных значений VCC(1.2-5.5V) на стр.6 и учитывая, что и рабочий диапазон VCC=1.2-5.5V, можно заключить, что этот чип может спокойно работать на чтение со всем рядом напряжений логики от 1.2 до 5V.
Похожий, тоже Dual Supply буфер 74LVC4245 поддерживает только 2 стандарта JDEC — для 3.3 и 5V и только для этих значений VCC определены значения VIH_min, т.е. даташитом не гарантированно надежное чтение сигналов логики ниже (3.3 или возможно 2.5V), и в данном случае он бесполезен, т.е. с точки зрения вх.части – это будет обычный 3.3V чип с 5V толерантными входами.
0
Подключал LCD дисплей от Nokia 1616 (1661) к Launchpad Stellaris lm4f120 по SPI, проблем не было.

//--- инициализация SPI0 модуля -----------------------------------------
void SPI_m9_Init (void)
{
    //подключить SPI0 модуль
    ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI0);
	
    //настроить SPI0 модуль на порт А
    ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
    ROM_GPIOPinConfigure(GPIO_PA2_SSI0CLK);
    ROM_GPIOPinConfigure(GPIO_PA3_SSI0FSS);
    ROM_GPIOPinConfigure(GPIO_PA4_SSI0RX);
    ROM_GPIOPinConfigure(GPIO_PA5_SSI0TX);
    ROM_GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_5 | GPIO_PIN_4 | GPIO_PIN_3 |
                   GPIO_PIN_2);	

    //конфигурация модуля как мастер, скорость 8МГц, 9 бит данные  
    ROM_SSIConfigSetExpClk(SSI0_BASE, SysCtlClockGet(), SSI_FRF_MOTO_MODE_0,
                       SSI_MODE_MASTER, 8000000, 9);

    //включить SPI0 модуль
    ROM_SSIEnable(SSI0_BASE);
}	
//-----------------------------------------------------------------------

//--- передача данных по SPI --------------------------------------------
void SPI_send(uint16_t value) {
	
  while(SSIBusy(SSI0_BASE)) {}				// передача закончена?
	SSIDataPut(SSI0_BASE, value);			// загрузить данные
}
//-----------------------------------------------------------------------
0
Есть ли у кого-нибудь реальный интерес ко всему описанному выше, или мне нет смысла надрываться тут писать что-то?
Пишите для себя, даже если это никому больше не надо. через полгода-год вам самому пригодится «описание на русском».
+2
Пишите для себя, даже если это никому больше не надо.
Неплохо сказано.
0
Я так только с этой целью и пишу =D Хотя иногда кто-то даже читает…

Так что писать надо! Хотя, написание статеек помогает внести ясность в то, что же упущено из знаний по теме=)
+1
Учить кого-либо — это хороший способ привести свои знания в порядок и научиться самому.
Когда ты учишь — ты лишь напоминаешь другим, что они знают всё это так же хорошо, как и ты.
+2
Заимел тут железяку — LM4F120 — от TI
Вы заказывали её на TI или подарил кто?
Если заказывали, то как быстро заказ был обработан и Вы получили Stellaris?
Мой заказ уже второй месяц в статусе Processing.
0
Скажем так — дали попользоваться. Проблемы с обработкой заказа кстати не только у вас, кто-то жаловался ещё на это. В тонкостях не разбирался. Возможно это связанно с тем что сейчас они по 13 баксов, а вы заказали ещё по старой цене, и они хотят чтоб вы перезаказали :)
0
и они хотят чтоб вы перезаказали
Да ну, из-за 1-2 долларов TI станет так мелочиться?
Подожду ещё, хотя в следующем месяце Estimate period заказа.
По меньшей мере странно выглядят два-три месяца необработки заказа, а после заказ понесётся(если повезёт) по России со скоростью Федекса.
0
Да не, я думаю все гораздо проще: они просто не справились с наплывом заказов и на складе их нет. Как приедет очередная партия, так начнут рассылать. И тогда точно «понесется со скоростью федекса».
0
«Дифсит»(с) А.Райкин
«Пусть будет всё, но все-таки пусть чего-нибудь немножечко не хватает» )
0
Точно-точно :)

P.S. помнится, когда впервые показали этот монолог (кажется в «Утренней Почте»), взрослые еще, наверное, с месяц его вспоминали по любому подходящему поводу :)
0
Нестареющий юмор. Для тех кто понимает ;)
0
Вобщем да, безусловно. Другой вопрос, что теперь стал гораздо заметнее дефицит несколько иных вещей (он не нов, просто стал более заметен, поскольку шмотки-жратва уже не дефицит, были бы деньги)…
0
evsi, по этой теме можно дойти до событий и псевдо-героев начала 90-х годов.
Пусть этот топик останется чисто техническим.
0
Согласен.
0
теперь стал гораздо заметнее дефицит несколько иных вещей (он не нов, просто стал более заметен, поскольку шмотки-жратва уже не дефицит
Да, жить стало лучше, жить стало веселее, но… появился жуткий дифиcит. Например, Докторской колбасы, с мясом естественно, или молочные продукты, которые прокисают в магазине как положено за 24 часа, т.е. от коров, а не из порошка с консервантами.

original, natural, legacy & ordinary foods скоро исчезнут совсем с прилавков и станут роскошью, а питаться ими смогут только барыги, в т.ч. те, которые в погоне за прибылью и производят или продают пищевой суррогат.

И дело даже не в них, а в экономике и об-ве, идеологией которого является постоянное получение и повышение прибыли. Какую дополнительную прибыль можно быстро и эффективно получить с молока, например? Надо просто разбавлять его водой, затем начать некоторую часть его делать из сухого молока, затем полностью из сухого молока — зачем эта дополнительная и затратная возня с ежедневной перевозкой свежего молока с фермы — пусть стоит огромная фабрика по пр-ву сухого молока, а му будем возить оттуда оптом мешки раз в квартал. Ну а затем просто начинаем заменять сухое молоко на соевый порошок — это еще дешевле, значит выше норма прибыли! Уже соевый порошок дорого? Найдем дешевый из генномодифицированной сои — пейте на здоровье!
0
открою секрет
человеку молоко коровы совсем не нужно, ведет к старению и болячкам
посему вопрос качества молока отпадает сам собой, как и 95% остальных продуктов
а годную жратву можно выращивать на огороде без особого напряга
если конечно знать как
0
Говоря «научным» языком, обернутым в удобную для тебя форму: надо заглянуть внутрь тебя, в твое происхождение, т.е. твой реальный конечный генотип, который относится больше к рассам/этносам приспособленным в большей степени к растительной пище, чем к мясу и тем более молоку.

Закажи генетический анализ, стоит это не очень дорого: думаю за упрощенный возьмут $60-200. Сейчас можно и без особых проблем сделать и полный генетический анализ, думаю обойдется в несколько тыр баксов. По крайней мере ты сможешь определить основные гапло-группы в нем, т.е. основные нации и этносы, которые сформировали тебя. И даже кусочки генотипа конкретных исторических личностей, например Царя Давида и Моисея или Темуджина.

Так ты определишь точно, кто ты и что тебе желательнее кушать.

Индусы издревле не пили животного молока, после испития молока у них произойдет легкое отравление — расстройство желудка. Так же не были приспособлены к молоку и организмы американских индейцев — когда викинги от чистого сердца угостили их молоком и молочными продуктами, те вскоре объявили, что они хотели их отравить и что викинги — злые и подлые люди.

Кочевники и северные народы 10-ки тыс.лет питались только мясом и молоком, в рационе многих северных народов присутствует только рыба и морские млекопитающие. Организм северных восточных славян(русские), а особенно финнов и северных народов не приспособлен для правильного усваивания C2H5OH. Что не скажешь про нации, выращивавшие виноград или «употреблявшие» издревле, т.е. большинство «алкашей» (с неправильным в этом отношении генетическим кодом) уже давно вымерло — произошел естественный отбор.
0
Я специально писал запрос о статусе и мне ответили, более того даже с азиатского отделения(так как я в Ю.Корее). У меня на форуме мы обсуждали это почему так долго (тоже плата Tiva),… кстати вам должно было прийти письмо об статусе.
0
Резюме прочтения твоего форума — наконец торкнуло упертого, но тем не менее old ARM-мэна:
Мутный и проприетарный TMS320F28х — ф топку, учитывая те же DSP возможности Cortex-M4(TI LM4F). Что я и говорил тебе ранее в том твоем беспонтовом топике про TMS320F28.
-1
Странно только, что понадобилось столько времени. ST-шный F4 (который разика так в два быстрее) есть уже давно, да и дискавери под него валяется чуть ли не на каждом углу.
0
вам должно было прийти письмо об статусе.
Проверю. Если было, то в начале мая.
Дважды общался в чате с русской службой ti.поддержки. Порекомендовали только ждать и в июле возможно придётся переоформить заказ.
0
Такой кипучий кипеш из-за $9 или TI даже за $13 не высылает?
-1
В начале мая(когда я заказал) он стоил 12.99$. И сейчас цена та же.
0
О, надо значит срочно затарится, а то могут опять наценить. А по 10 штук они дают?

-2
Как раз сегодня тоже прислали мне такую же.
Подскажите, какую среду использовать для него?
0
Очень удобно мне показалась CCS. Но по сути это надстройка на базе эклипса, соответственно можно и его настроить под себя (гемор тот ещё). Плюс обязательно качайте StellarisWare — там есть примеры как раз под CCS, по ним можно быстро разобраться
0
А Keil от него и от STM32 объединится в один, или это два разных кеила?
0
Если честно, не знаю. На сколько помню там компилятор один, MDK-ARM, так что возможно и так
0
544МВ! Похоже это два-три кейла, не меньше ))))
0
В смысле? Свежий MDK-ARM столько и весит, если не больше уже…
0
Сам недавно начал ковырять его, а нигде подходящего для меня описания толком не нашел. Так что пишите, с радостью почитаю
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.