|
СС430F5137 с нуля на asm, нужна помощь |
|
|
|
Feb 23 2013, 14:07
|

Частый гость
 
Группа: Участник
Сообщений: 189
Регистрация: 21-01-10
Пользователь №: 54 971

|
Приобрел EM430F5137RF900 и MSP-FET430UIF, до приобретения особо не заморачивался с подготовкой "рабочего пространства" под новый проект, вроде бы камни не особенно новые, часто встречал различную информацию о них и не думал, что доставабельностью нужной для начала разработки инфы возникнут проблемы. Пол дня поискал в сети примеры заголовочных файлов под этот камень, примеры инициализации периферии, увы - результат 0. Это такой секрет? Такие данные достаются потом и кровью? Раньше работал с AVR (да и продолжаю время от времени), никаких таких проблем не помню, все было как-то проще достать и среда разработки нормальная (и бесплатная). Бог с ней со средой, поставил IAR KS на 4кБ кода (мне для попробовать). С самим ассемблером MSP и системой команд ознакомился поверхностно, страха не вызвал, вроде бы все просто (по крайней мере помигать светодиодом для начала - понятно как, а особенности и "камни" по ходу дела разберу). Стандартный заголовочный файл, который есть в папке иара "\inc" при пустом проекте вызывает негодование у компилятора IAR (дублирование лэйблов в объявлении регистров DMA). Попытался найти нормальный заголовочный файл в сети - нашел лишь такой же, "замазал" все места вызывающие негатив комментариями, чтобы не было ошибок. Далее попытался найти файл, который инициализировал бы мне всю периферию - тут все и загнулось. Я понимаю, что скорее всего при запуске МК все отключает сам и морганию светодиодом врядли что-то помешает, но хотелось бы иметь заготовку с полной инициализацией всех узлов МК ну и ессно полную таблицу векторов прерываний воткнуть в начало. Это добавляет уверенности в дальнейшем освоении камня. В отладчике иара тож пока особо не разобрался, если честно с первого раза иар вроде показался "классическим" средством разработки с простым и понятным интерфейсом, как начал лезть глубже - начало казаться, что первое впечатление обманчиво, чувство "чего-то не хватает" не покидает - ну к примеру как мне для отладчика задать тип МК, частоту кварца (чтоб время выполения отслеживать), также не нашел средства для заливки прошивки в МК (нужно отдельным ПО для этого ввоспользоваться чтоли?!). Прошу извинить за смешивание всего в кучу - помогите найти (или разобраться) с заголовочный файл для ассемблера под этот МК, файл инициализации всех устройств на борту, ну и вектора прерываний до кучи. На Си для МК не программирую и не особо горю желанием.
--------------------
Не так страшна автоматизация, как её малюют.
|
|
|
|
|
 |
Ответов
|
Jan 6 2014, 08:56
|

Частый гость
 
Группа: Участник
Сообщений: 189
Регистрация: 21-01-10
Пользователь №: 54 971

|
Короче все запускается, оказывается помимо PxSEL нужно и PxDIR правильно настроить, а у меня вход XIN гены был настроен как вход, а надо как выход, во какая хрень (очень "логично" надо заметить).
Еще вопрос, но уже касательно сброса:
Периодически замечаю, что в SYSRST регистр записывается, к примеру 0x08, хотя согласно Datasheet этот вектор зарезервирован (т.е. не относится к какому-либо конкретному источнику сброса). У меня то на этом векторе заглушка стоит изначально типа "нет прерывания" (аналогично значению 0x00). Просто интерсено - это глюк или как? А еще сейчас видел разок как сброс произошел от SVSL, т.е. от супервизора питания ядра, нехорошо это..
--------------------
Не так страшна автоматизация, как её малюют.
|
|
|
|
|
Jan 6 2014, 09:16
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(vazz @ Jan 6 2014, 13:56)  Короче все запускается, оказывается помимо PxSEL нужно и PxDIR правильно настроить, а у меня вход XIN гены был настроен как вход, а надо как выход, во какая хрень (очень "логично" надо заметить). Согласно Table 54. Port P5 (P5.0 and P5.1) Pin Functions, приведенной в datasheet, для включения пинов XT1 достаточно установить P5SEL.0. При этом значение P5SEL.1 и P5DIR.0/P5DIR.1 рояли не играет. Оказывает влияние еще и бит XT1BYPASS, который относится к системе тактирования, а не к портам. Цитата(vazz @ Jan 6 2014, 13:56)  Периодически замечаю, что в SYSRST регистр записывается, к примеру 0x08, хотя согласно Datasheet этот вектор зарезервирован (т.е. не относится к какому-либо конкретному источнику сброса). У меня то на этом векторе заглушка стоит изначально типа "нет прерывания" (аналогично значению 0x00). Просто интерсено - это глюк или как? Вы имеете в виду SYSRSTIV? Дык он расписан в User's Guide. Если значение меняется после подачи питания, то я бы начхал. После всей инициализации периферии значение SYSRSTIV можно сбросить любой записью в него, несмотря на то, что он описан как Read-only. Цитата Writing to this register clears all pending reset source flags. А вот если что-то появляется SYSRSTIV уже после инициализации (в процессе выполнения основной программы), тогда можно и повыяснять причины.
|
|
|
|
|
Jan 6 2014, 09:28
|

Частый гость
 
Группа: Участник
Сообщений: 189
Регистрация: 21-01-10
Пользователь №: 54 971

|
Цитата(rezident @ Jan 6 2014, 13:16)  ... для включения пинов XT1 достаточно установить P5SEL.0. При этом значение P5SEL.1 и P5DIR.0/P5DIR.1 рояли не играет ... Играет играет! я изменил PxDIR отвечающий за XT1IN со входа на выход и программа перестала мертво висеть в цикле ожидания очистки бита XT1LFOFFG. При комнатной температуре XT1DRIVE не особо важен при запуске, в мороз наверное лучше начинать с XT1DRIVE=3 (хотя наверное и от качества кварца зависит). Опытным путем получены достоверные результаты, позволяющие сделать определенный вывод: если хотя бы один из битов P5DIR.0 или P5DIR.1 установлен (в т.ч. если установлены оба) генератор XT1 не запустится. Оба бита должны быть сброшены. Как ни удивительно, но то же самое касается и регистра P5REN. А вообще чего удивляться то? Схема пинов P5.0/XIN и P5.1/XOUT представлена на стр. 100, 101 Datasheet. На схеме четко показано, что пины МК напрямую подключены к входу и выходу генератора XT1 (напрямую - это значит в обход всей логики порта). Поэтому можно сделать вывод и без опытных экспериментов о том, что и PxREN и PxOUT естественно будут шунтировать вх/вых. генератора, тем самым нарушая его нормальную работу (а при некоторых вариациях порта - полностью исключающих запуск генератора XT1). Ну что ребятки, кто будет маляву bug report к их ti employee отправлять? оказывается don't care - это ввод в заблуждение, статья КОАП как минимум, однако
Сообщение отредактировал vazz - Jan 6 2014, 10:14
--------------------
Не так страшна автоматизация, как её малюют.
|
|
|
|
|
Jan 6 2014, 13:04
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(vazz @ Jan 6 2014, 14:28)  Поэтому можно сделать вывод и без опытных экспериментов о том, что и PxREN и PxOUT естественно будут шунтировать вх/вых. генератора, тем самым нарушая его нормальную работу (а при некоторых вариациях порта - полностью исключающих запуск генератора XT1). Не будут. Там присутствует еще и логика, отключающая выход и подтяжку при PxSEL != 0. Цитата(vazz @ Jan 6 2014, 14:28)  Ну что ребятки, кто будет маляву bug report к их ti employee отправлять? оказывается don't care - это ввод в заблуждение, статья КОАП как минимум, однако  Прежде, чем "кидать предъявы" вы бы припаяли в схему конденсаторы по 12пФ и показали вашу процедуру инициализации LFXT.
|
|
|
|
|
Jan 6 2014, 13:36
|

Частый гость
 
Группа: Участник
Сообщений: 189
Регистрация: 21-01-10
Пользователь №: 54 971

|
Цитата(rezident @ Jan 6 2014, 17:04)  вы бы припаяли в схему конденсаторы по 12пФ Уверен, дело не в этом. Потому как генератор отлично запускается, а сбой в его работе наблюдается только в случаях описанных мной выше (сугубо из-за инициализации линий ввода вывода). Цитата(rezident @ Jan 6 2014, 17:04)  и показали вашу процедуру инициализации LFXT. Инициализация порта: Код MOV.B #00000000b,&P5OUT ; конфигурируем порт 5 MOV.B #11111100b,&P5DIR ; (на P5.0 (вх.) и P5.1 (вых.) MOV.B #11111100b,&P5REN ; кварц 32.768кГц (XT1), PMC дл MOV.B #00000000b,&P5DS ; я P5 не задействован) MOV.B #00000011b,&P5SEL Запуск XT1 (LF), XDRIVE=3: Код BIC #0x00FF,&UCSCTL6 ; настраиваем XT1 (32.768кГц) BIS #0x00CC,&UCSCTL6 ; подключаем внутр.C = 12 пФ loop_wait_XT1: BIC #0x0002,&UCSCTL7 BIT #0x0002,&UCSCTL7 JNZ loop_wait_XT1 Цитата(rezident @ Jan 6 2014, 17:04)  Не будут. Очевидно, что шунтируют. У меня две платы с CC430 на борту и обе ведут себя одинаково. Можно было бы еще погрешить на порт маппинг контроллер, но его работа описана только для P1-P3, P5 функционирует без него.
--------------------
Не так страшна автоматизация, как её малюют.
|
|
|
|
|
Jan 6 2014, 13:43
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(vazz @ Jan 6 2014, 18:26)  Уверен, дело не в этом. Потому как генератор отлично запускается, а сбой в его работе наблюдается только в случаях описанных мной выше (сугубо из-за инициализации линий ввода вывода). Уверенность это хорошо. Но плоха излишняя самоуверенность  Еще раз предлагаю вам припаять по конденсатору 12пФ ко входам XIN и XOUT так, чтобы суммарная емкость на каждом входе получалась около 24пФ. Нагрузочная емкость CL=24пФ/2=12пФ будет близка (с учетом 5% разброса керамики NP0) к номинальной 12,5пФ. У вас же сейчас кварц работает на CL всего лишь 6пФ=12пФ/2. При этом любой "чих" может приводить к проблемам с генерацией. Тут еще можно вспомнить про баг XOSC8. Правда он характерен для других кристаллов MSP430. Но вы ведь наверняка про ESR кварцев пока вообще даже не задумывались, не так ли?  P.S. пользуйтесь, пожалуйста, стандартными хедерами TI со стандартными обозначениями битов. В противном случае я не гарантирую, что у меня будет желание разбираться с "магическими" числами, которыми вы инициализируете регистры.
|
|
|
|
|
Jan 6 2014, 14:55
|

Частый гость
 
Группа: Участник
Сообщений: 189
Регистрация: 21-01-10
Пользователь №: 54 971

|
Честно говоря я уже погрузился в Unified Clock System, и чем глубже в лес, тем толще партизаны.. Думаю, типичное рабочее место TI Engineer's Departament выглядит примерно так:  Черт ногу сломит в этом МК, кишащем RC-генераторами да еще и со всякими примочками и приблудами... Эх.. Ладно.. Цитата(rezident @ Jan 6 2014, 17:43)  При этом любой "чих" может приводить к проблемам с генерацией. Ок, только у меня по-моему нет сейчас в распоряжении NP0 на 12пФ, но помоему есть 24пФ. Поэтому XCAP выставлю на 2пФ (как я подозреваю в этом случае емкость вообще не подключается, а используется собственная емкость пина) и подключу их. А еще, если не ошибаюсь есть 10пФ NP0/COG. Вобщем сейчас попробую... Эээээээ... только вспомнил, там на плате 0402, а у меня 0805 минимум, ради этого в офис не поеду. Нарыл 4000шт COG 22пФ 5% 0805, сейчас припаяюсь и отпишусь. Докладываю Начальные условия:XCAP = 2 пФ, внеш.C = 22 пФ COG 5% 0805 (корпус кварца припаян к общему, одна ножка внеш.конденсаторов припаяна XIN/XOUT, другая ножка припаяна в точку соединения корпуса кварца с общим). XT1DRIVE = 3. Температура окр.среды комнатная. Результат:По поводу влияния PxDIR, PxREN - все ровно также, как и при отсутвии внеш.конденсаторов. Единственное изменение - это увеличение времени запуска XT1, что не есть гуд. Оффтоп: Надо мне побольше почитать про опыт применения внутренних емкостей, хочется верить, что "любой чих" не сбивает генерацию, т.к. время запуска значительно меньше, чем с конденсаторами суммарной емкостью 24пФ. Еще немного результатов, не так важных, но мало ли может кому пригодиться. Время запуска при комнатной температуре: При внутр.C = 12 пФ + внеш. 22 пФ: XT1DRIVE=0 - около 3 секунд XT1DRIVE=3 - около 1,5 секунд При внутр.C = 2 пФ + внеш. 22 пФ: XT1DRIVE=0 - около 1 секунды XT1DRIVE=3 - около 0,7...0,8 секунды
Сообщение отредактировал vazz - Jan 6 2014, 14:19
--------------------
Не так страшна автоматизация, как её малюют.
|
|
|
|
Сообщений в этой теме
vazz СС430F5137 с нуля на asm Feb 23 2013, 14:07 rezident Цитата(vazz @ Feb 23 2013, 19:07) Стандар... Feb 23 2013, 20:03 vazz Благодарю за напутственные пояснения, наконец-то п... Dec 28 2013, 14:12 rx3apf "#" - непосредственный операнд, если зна... Dec 28 2013, 14:33 vazz А правда то, что ограничение 4кБ IAR Kickstart отн... Dec 28 2013, 17:31 d7d1cd Цитата(vazz @ Dec 28 2013, 21:31) А правд... Dec 28 2013, 17:32  vazz Цитата(d7d1cd @ Dec 28 2013, 21:32) Вроде... Dec 29 2013, 11:55   d7d1cd Цитата(vazz @ Dec 29 2013, 15:55) Я пока ... Dec 29 2013, 14:21 vazz Почитал о режимах адресации, впринципе все понятно... Dec 29 2013, 09:47 d7d1cd Цитата(vazz @ Dec 29 2013, 13:47) Почитал... Dec 29 2013, 11:39 vazz Не могу найти/понять информацию про стек. Вершина ... Dec 30 2013, 19:55 d7d1cd Цитата(vazz @ Dec 30 2013, 23:55) Не могу... Dec 31 2013, 06:25  vazz Цитата(d7d1cd @ Dec 31 2013, 10:25) Перво... Dec 31 2013, 10:13   d7d1cd Цитата(vazz @ Dec 31 2013, 14:13) Про сте... Dec 31 2013, 13:38    vazz Цитата(d7d1cd @ Dec 31 2013, 17:38) и буд... Dec 31 2013, 14:52 vazz А еще непонятны примочки ассемблера типа "NAM... Dec 30 2013, 21:57 d7d1cd А что за расширение файла .inc? Вот ты говоришь, ч... Dec 31 2013, 15:32 vazz Цитата(d7d1cd @ Dec 31 2013, 19:32) А что... Dec 31 2013, 16:05  d7d1cd Цитата(vazz @ Dec 31 2013, 20:05) Тут не ... Dec 31 2013, 16:20   vazz Цитата(d7d1cd @ Dec 31 2013, 20:20) Мне к... Dec 31 2013, 16:29    d7d1cd Цитата(vazz @ Dec 31 2013, 20:29) Кстати,... Dec 31 2013, 20:11  SM Цитата(vazz @ Dec 31 2013, 20:05) Хм... н... Jan 1 2014, 09:36   vazz Цитата(SM @ Jan 1 2014, 13:36) public/ext... Jan 1 2014, 10:14    d7d1cd Цитата(vazz @ Jan 1 2014, 14:14) Благодар... Jan 1 2014, 10:52    SM Цитата(vazz @ Jan 1 2014, 14:14) Благодар... Jan 1 2014, 13:34 vazz По мере разбирательства пытаюсь читать CC430 Users... Jan 2 2014, 19:21 rezident Цитата(vazz @ Jan 3 2014, 00:21) Про MCLK... Jan 2 2014, 20:03  vazz Цитата(rezident @ Jan 3 2014, 00:03) Поче... Jan 2 2014, 22:09   rezident Цитата(vazz @ Jan 3 2014, 03:09) Не, я им... Jan 3 2014, 17:03 vazz IAR почему-то ругается на команду CMP.B по отношен... Jan 3 2014, 19:03 vazz Господин rezident, немного наслышан о тебе, как об... Jan 3 2014, 20:37 d7d1cd Цитата(vazz @ Jan 4 2014, 00:37) Господин... Jan 4 2014, 08:59  vazz Цитата(d7d1cd @ Jan 4 2014, 12:59) Я знаю... Jan 4 2014, 10:02 rezident Цитата(vazz @ Jan 4 2014, 01:37) можно ли... Jan 4 2014, 15:19 d7d1cd vazz, можно, как ты говоришь, оффтоп... Ты пишешь ... Jan 4 2014, 10:39 vazz Цитата(d7d1cd @ Jan 4 2014, 14:39) Чтобы ... Jan 4 2014, 11:48  d7d1cd Цитата(vazz @ Jan 4 2014, 15:48) Наверное... Jan 4 2014, 12:19   vazz Цитата(d7d1cd @ Jan 4 2014, 16:19) Как то... Jan 4 2014, 16:33    rezident Цитата(vazz @ Jan 4 2014, 21:08) а вот пр... Jan 4 2014, 16:48     vazz Цитата(rezident @ Jan 4 2014, 20:48) сраз... Jan 4 2014, 17:12   SM Цитата(d7d1cd @ Jan 4 2014, 16:19) А для ... Jan 4 2014, 16:45    d7d1cd Цитата(SM @ Jan 4 2014, 20:45) Объявить е... Jan 4 2014, 17:14 SM У меня сейчас IAR не установлен под 430. так что с... Jan 4 2014, 17:36 d7d1cd Цитата(SM @ Jan 4 2014, 21:36) У меня сей... Jan 4 2014, 17:50 SM Какая же это ошибка. Доступ к любому отдельному ба... Jan 4 2014, 18:00 d7d1cd Цитата(SM @ Jan 4 2014, 22:00) Какая же э... Jan 4 2014, 18:04  SM Цитата(d7d1cd @ Jan 4 2014, 22:04) однако... Jan 4 2014, 18:15   d7d1cd Спасибо за помощь. Но все таки есть метод, позволя... Jan 5 2014, 11:58    SM Цитата(d7d1cd @ Jan 5 2014, 15:58) Увы, I... Jan 5 2014, 12:12     d7d1cd Цитата(SM @ Jan 5 2014, 16:12) ...особенн... Jan 5 2014, 13:08      SM Цитата(d7d1cd @ Jan 5 2014, 17:08) Бывают... Jan 5 2014, 13:20       vazz Цитата(SM @ Jan 5 2014, 17:20) да-да. там... Jan 5 2014, 13:51        SM Цитата(vazz @ Jan 5 2014, 17:40) Замостил... Jan 5 2014, 13:54         vazz Цитата(SM @ Jan 5 2014, 17:54) И Вы до си... Jan 5 2014, 14:16    vazz Цитата(d7d1cd @ Jan 5 2014, 15:58) Был ту... Jan 5 2014, 13:17 vazz А у меня еще один интересный вопрос: можно ли как-... Jan 4 2014, 18:59 SM А вот это ищите в даташите. В некоторых MSP430 ест... Jan 4 2014, 19:07 d7d1cd Смотрите как я получил ограничение. Я создал шабло... Jan 5 2014, 14:24 SM Это они что-то поднамутили более свежего... Раньше... Jan 5 2014, 14:30 vazz Замостил связкой:
КодJMP $
NOP
Пространст... Jan 5 2014, 14:32 vazz То ли лыжи, то ли пол третьего ночи... Часовой ква... Jan 5 2014, 22:43 rezident Цитата(vazz @ Jan 6 2014, 03:43) в регист... Jan 6 2014, 05:55 vazz А можно мне совет?
Я что-то зря с этим XT1 походу... Jan 6 2014, 20:47 rezident Ну если вам на потребление начхать и 60мкА DCO vs ... Jan 7 2014, 11:20
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|