-
- "примерно выяснил где это происходит : *(char*)addr = data;" т.е. проблема возникает при переходе с тактирования MCLK=VLO/n=12кГц/n на тактирование от MCLK=f(FTG)=SMCLK/3=DCOCLK/3=333кГц? - rezident(13.12.2007 19:59)
- не, не так. Ядро всегда работает от MCLK = VLO/8 и не меняется, SMCLK всегда = DCO [1MHz] и не меняется, f[FTG] соответственно = SMCLK/3 = 333kHz, таким образом тактирование не меняется.. incognito(286 знак., 14.12.2007 11:35)
- так да не так. При выполнении записи во Flash, если команда записи выполянется из самой Flash тактирование переключается на генератор модуля управления записью Flash (FTG). Т.е. происходит именно тот переход, что я указал. rezident(596 знак., 14.12.2007 19:11)
- склоняюсь к тому же.. а нельза ли сцылочку на тот момент где говорится о переключении клока MCLK на F[ftg] нигде такого не встречал.. - incognito(15.12.2007 00:57)
- Дык в юзер-мануале см. раздел посвященный Flash. Страницу не скажу, т.к. под рукой нет, а качать только ради этого не хочется. - rezident(15.12.2007 02:59)
- Хотя вот, см. в переводе мануала. Там правда для MSP430x1xx мануал, ну да у MSP430 все идентично в этой части. - rezident(15.12.2007 03:01, ссылка)
- если вы имели ввиду следующее.. incognito(572 знак., 15.12.2007 12:49)
- Я про тактирование ядра (CPU), которое непосредственно выбирает и исполняет из Flash команды. Пока идет запись/стирание Flash CPU выполняет команду JMP PC, которую ему
подсовываетформирует контроллер записи/стирания Flash. rezident(417 знак., 15.12.2007 16:43)- а где здесь про то что CPU тактируется от F[ftg] ? ведь нет ничего страшного от того что ядро пашет на одном клоке, а флэшь контроллер на другом.. incognito(463 знак., 15.12.2007 19:19)
- Нет, я себе такого не представляю. rezident(1033 знак., 16.12.2007 00:42)
- А раз сказано, что при записи/стирании Flash тактирование на себя берет контроллер записи Flash, то я и делаю вывод, что при выполнении фиктивной команды "JMP PC" CPU от FTG и тактируется. - rezident(15.12.2007 16:46)
- а где здесь про то что CPU тактируется от F[ftg] ? ведь нет ничего страшного от того что ядро пашет на одном клоке, а флэшь контроллер на другом.. incognito(463 знак., 15.12.2007 19:19)
- Я про тактирование ядра (CPU), которое непосредственно выбирает и исполняет из Flash команды. Пока идет запись/стирание Flash CPU выполняет команду JMP PC, которую ему
- если вы имели ввиду следующее.. incognito(572 знак., 15.12.2007 12:49)
- Хотя вот, см. в переводе мануала. Там правда для MSP430x1xx мануал, ну да у MSP430 все идентично в этой части. - rezident(15.12.2007 03:01, ссылка)
- Дык в юзер-мануале см. раздел посвященный Flash. Страницу не скажу, т.к. под рукой нет, а качать только ради этого не хочется. - rezident(15.12.2007 02:59)
- Может я что-то не правильно понял в механизме коллизии, но 99% за то, что проблема из-за того, что период тактирования ядра и цикл записи одного байта имеют сравнимое время. Попробуйте уменьшить f(FTG) до 250кГц и ИМХО у вас заработает MCLK=VLO/8. - rezident(14.12.2007 19:27)
- Кстати, поздравляю! Вы похоже действительно нарвались на "грабли", не описанные даже в Errata. Можете написать об этом в фирму TI и получить от нее благодарность :) - rezident(14.12.2007 19:21)
- склоняюсь к тому же.. а нельза ли сцылочку на тот момент где говорится о переключении клока MCLK на F[ftg] нигде такого не встречал.. - incognito(15.12.2007 00:57)
- вариант f2013 работает также, владельцы eZ430-f2013 могут проверить, код ниже.. incognito(1711 знак., 14.12.2007 12:20)
- так да не так. При выполнении записи во Flash, если команда записи выполянется из самой Flash тактирование переключается на генератор модуля управления записью Flash (FTG). Т.е. происходит именно тот переход, что я указал. rezident(596 знак., 14.12.2007 19:11)
- А как именно на асме эта команда выглядит смотрели? - rezident(13.12.2007 20:00)
- не, не так. Ядро всегда работает от MCLK = VLO/8 и не меняется, SMCLK всегда = DCO [1MHz] и не меняется, f[FTG] соответственно = SMCLK/3 = 333kHz, таким образом тактирование не меняется.. incognito(286 знак., 14.12.2007 11:35)
- "примерно выяснил где это происходит : *(char*)addr = data;" т.е. проблема возникает при переходе с тактирования MCLK=VLO/n=12кГц/n на тактирование от MCLK=f(FTG)=SMCLK/3=DCOCLK/3=333кГц? - rezident(13.12.2007 19:59)