X



トップページ電気・電子
565コメント206KB

PIC専用のスレ Part 59 エラッタの話題も歓迎

0423774ワット発電中さん
垢版 |
2023/11/27(月) 22:33:55.20ID:BsvZvvX5
途中経過が出てしまわん? >>422
0424774ワット発電中さん
垢版 |
2023/11/27(月) 23:20:42.39ID:M09c5aG+
>>423
すまん、画像(グラフ)だと抵抗等の定数がいい加減すぎて、閾値に対して余裕がない感じですね
RCK(LD)の抵抗を大きくするかキャパシタの容量を増やせばもっと余裕ができると思う
0426774ワット発電中さん
垢版 |
2023/11/29(水) 18:26:25.58ID:hYGR153n
入力寄生容量使えば、抵抗2本とキャパシタ1個でいけるか。ラッチにすんごく時間かかりそうだけど。
かかるの嫌ならD使って、もっと速めたければピン増やせ、と。
0427774ワット発電中さん
垢版 |
2023/12/23(土) 18:54:54.22ID:pr3SWEQU
I2CのEEPROMが書き込みできる、ROMライターを探してるのだけど
色々探してるのですが、良いのがないので
知ってたら教えてください。
ROMは、AT24C02を書き込みます。
0428774ワット発電中さん
垢版 |
2023/12/24(日) 20:53:52.32ID:ybnyPvj2
ここPICのスレなんだけど……
PICで読むならPICで書けばいいんでは?
そもそもI2CのEEPROMのライタなんて大差ないと思うんだが
良い悪いの判断基準(要件)は何?
0429774ワット発電中さん
垢版 |
2023/12/25(月) 02:35:54.11ID:OETxYld2
CH341Aなんちゃらっていうやつが安くていいんじゃない?
書き込みアプリは探さないといけないけど
0430774ワット発電中さん
垢版 |
2024/01/20(土) 19:14:45.55ID:bXscAYQk
WS2812Bを3.3Vで動かしている例があるようだけど
無点灯のとき実力として何Vで停止するの?
0432774ワット発電中さん
垢版 |
2024/01/20(土) 19:39:36.45ID:bXscAYQk
CLCの無いデバイスでWS2812Bを制御する場合
1bitごとの割り込みだと
(今何個目の何ビット目とかの)ステートの保存で余裕がないけど
やっぱり割り込み使わずに命令サイクルだけでタイミング調整するのが無難?
0433774ワット発電中さん
垢版 |
2024/01/27(土) 17:35:54.76ID:gyKVeDaT
8bitマイコンで、32MHz(FOSC/4 = 8MHz)の話してる?

割り込みじゃ無理だと思う。
アセンブラ使って実装したよ。
0435774ワット発電中さん
垢版 |
2024/01/31(水) 07:20:05.11ID:NSbzF/33
作ってみたらわかるんだが、32MHzでも2インストラクションしか
ONの1状態には時間がないから、PWMでも結局タイミングを合わせて使わないといけない。

それをするなら、直接IOを叩いたほうが効率的
0436774ワット発電中さん
垢版 |
2024/01/31(水) 23:28:59.35ID:+oXMn1vw
効率の考え方の違いだけのような?

PWMを使うと脱調しない範囲で本来の出力周期よりループを早く回せる
節約できるのが1命令だけでも8bit単位のループで8命令稼げる
ループの中の1命令ではほぼ何もできないが
ループの外の8命令なら色々できる

逆にそこまで頑張る必要がないなら労力として非効率とも言える
0437774ワット発電中さん
垢版 |
2024/02/01(木) 20:14:11.30ID:7N2W+6HX
PICのアセンブラでないので申し訳ないが、
CCPを使うとして、

mov W , ON
testAndSkipIf0 colorR , bit7
mov W , OFF
mov CCPR1L , W

確かに4命令で、あと4(5とか6でも良い?)命令自由に使えるとも言える。
しかし、これループもせずに、RGB全部のすべてのBITに対して
延々と命令書くのか?Wレジスタも消えるし。
いや別にいいけど。

IOを直接叩くのなら、R、G、Bについての
それぞれのループ3つ書くだけで済む。
(800kくらいの設定で考えたので9命令クロック)
ワード数では1ループ8命令、次のロードで1命令で30ワード+α程度

たしかにPICのプログラムメモリはそれなりに潤沢

ちなみにこれをループさせようと思うと

shift colorR , left
decrementAndIf0Skip counter
jmp to front

mov W, 8
mov counter , W

が必要になる。
ループはこの時点で8クロックかかり、1クロック程度余るのかもしれないが、
この、次のロードに1クロック余分にかかるのが曲者で
TMRのループと非常に相性が悪い。この方法は使えないかもしれない。

IOを直接叩く場合、BSFが使えるため、Wレジスタが空く。
このため、カウンタをWに入れておけば、きれいに周期的な出力ができる。
IOを叩く場合、周期的である必要はないが。

だから、結論としては、延々長いアセンブラを書き、
8~9命令中4,5命令をなにかに使うか、
IOを叩くループを書いてプログラムを短く、ついでにタイミングを気にせず書くか、
の違いだ。
0438774ワット発電中さん
垢版 |
2024/02/01(木) 20:20:10.64ID:7N2W+6HX
しかし、基本的にPICはWレジスタとの間の計算しか
ほとんどできず、細切れになった4,5命令で、Wレジスタが
揮発する状態で何ができるのかというとちょっと悩む。
0440774ワット発電中さん
垢版 |
2024/02/01(木) 20:41:49.71ID:7N2W+6HX
BCF
BCF
の必要なのは4命令なんだ。
場所はちゃんとしないといけないが。

Wレジスタは空くし、CCPのリソースまで何のために使っているかは
よくわからんとしか言えない。
0441774ワット発電中さん
垢版 |
2024/02/01(木) 22:56:56.76ID:YGKGfXRT
ループ回すって書いてあるのに何でループ使わない前提になっているの?
0443774ワット発電中さん
垢版 |
2024/02/01(木) 23:07:25.52ID:7N2W+6HX
データ「0」ばっかり送るとか、「1」ばかり送るなら、
PWMでループすればいいと思います。
0444774ワット発電中さん
垢版 |
2024/02/01(木) 23:19:27.24ID:7N2W+6HX
おそらく、私の考えとあなたの考えの間に理解のずれがあるようです。

私にはどういうループを短くする手段なのかわかっていません。

PWMを使う、LEDを操作する時点で、DUTYは変えないといけませんよね。
そのうえで、PR2も変えるというようなことを考えておられるのでしょうか。

変えることが可能なら、全体の転送時間は短くなりますね。
それがループを短くするということでしょうか。

しかし、単にDUTYを変えるだけで、4サイクルかかります。
PR2を変えるのにまた同じくらい時間を要しては、PR2を変えると破綻するだけで、
結局命令が足りずできない気がしています。
0445774ワット発電中さん
垢版 |
2024/02/01(木) 23:28:40.10ID:YGKGfXRT
出力先がIOかDUTYの違いで大差ないと思うんだが
何か大きく変えなきゃいけない理由はあるんか?
0446774ワット発電中さん
垢版 |
2024/02/01(木) 23:36:12.50ID:7N2W+6HX
いえ、前の方がPWMで回したほうが効率がいいと言われるので、
比較してみただけです。
同じか、めんどくささを考えるとIOのほうがよさげです。
0447774ワット発電中さん
垢版 |
2024/02/01(木) 23:41:52.31ID:7N2W+6HX
要するに、私がIOのアセンブラで書くと良いよ、と書いたのに対し、

PWMのほうが効率が良いと、レスが付いたものですから、

実際に書くとどう違うかちょっと考えて、
やっぱりIOのほうが良いだろうという結論を私は出しました。
0448774ワット発電中さん
垢版 |
2024/02/02(金) 00:03:48.53ID:gOW1Y7aL
大差ないのに同意しといてなんでPWMだと良くないのかが説明されててモヤモヤするな
ビットテストにとらわれてローテートでキャリーによる分岐が使えることを見落としている?
0450774ワット発電中さん
垢版 |
2024/02/02(金) 01:11:36.08ID:gOW1Y7aL
前提としてバンクセレクト不要にしたらLレベルの時間調整でnop入れる余裕があるでしょ?
そのループの中のnopを1つ削る
Lレベルの時間が不足する分はタイマで待たせる
削った8命令分を他のことに使う

バンクセレクト不可避とか前提が違うなら比較にならないからどうとでも言える
0451774ワット発電中さん
垢版 |
2024/02/03(土) 13:11:12.04ID:+KViwNmT
なるほど、説明を省いたからPWMが良くない理由がよくわからないと。

デューティを変えるだけなら、IOもPWMも同じ命令数がかかる。
これはいいよね。

IOを使うと、Wレジスタを使わなくていい。
これがIOの1つのメリット。

デメリットは、IOだと位置が完全固定になること。

しかし、NOPで待たなければならない、とあるが、この1命令、
何か別のことに使ってもいいかもよ。
だから、使える命令の位置関係に制約があるけど、使える命令数は変わらない。

PWMの一番のデメリットは自走すること。
どこかで
TMR2ON=0
TMR2=X
TMR2ON=1
を入れないといけない。
そして、ちゃんと数えて、
PWMがちゃんとPWMとして機能するように命令を並べないといけない。

ONから数えて何番目だから・・・と最初を見つけ出すのが一番めんどくさいと思っている。
そして、「データ1」を送信するとき
1100000000
データ0を送信するとき
1111100000
この
11XXX00000
のXXXの部分でPWMのデューティサイクルを変えるようにしてしまうと
破綻が起こる。
ここを常に気にしながら、こまかーく設定をしていかないといけない。
繊細な人ならいいけど、いや、繊細な人にしても、いろんなパターンを入れて
テストしないとちゃんと動くって言えないかもしれないプログラムを書くのって
どうよって思う。
あとで何か変更したいとき、どうするの?

また、最初と最後にデューティ0を出力するか、しかるべき位置でタイマを止めなければならない。次のLEDにランしたまま引き継ぐと、どこでどうなってるのか意味がわからなくなる。

そして、PICの周辺回路を専有してしまう。
これもデメリット。

ところで、複数のLEDをつけて、送信することを前提に考えているから
これを関数化して呼び出したいわけだが、
そのときに何度もこの関数呼ぶことを前提に考えて、
この空き命令に何か処理させたいことって何なのか、
私にはちょっとわかんないんだけど。

以上。
0452774ワット発電中さん
垢版 |
2024/02/03(土) 13:14:36.91ID:+KViwNmT
ところで、TMR2ON=1って書くと、
その同じ命令サイクルでTMR2はカウントアップするの?
それとも次のクロックから?

同様にCCPR1L=Xって書くと、そのデューティが反映されるのは、
その命令と同時?

細かく仕様を知ったPICのプロフェッショナルになるならともかく、
めんどくさいことこの上ない。
0453774ワット発電中さん
垢版 |
2024/02/03(土) 13:34:39.86ID:+KViwNmT
>ビットテストにとらわれてローテートでキャリーによる分岐が使えることを見落としている?

これについてはわからないので、説明願いたいな
0454774ワット発電中さん
垢版 |
2024/02/03(土) 13:40:41.39ID:+KViwNmT
あと、上に書いた内容は、
bit7から0まで、ループすることなく愚直にずらずらっと書くことを前提に
命令の余りの数などを書いている。

これをループで書くと、ループの制御に命令を食われ、
空き命令はほぼないことはご理解いただきたい。
0455774ワット発電中さん
垢版 |
2024/02/03(土) 13:59:47.14ID:+KViwNmT
あなたが賢いんだか賢くないんだか、私には少なくとも理解ができない

>Lレベルの時間が不足する分はタイマで待たせる

これについてももうちょっとよくわかるように説明してほしい。
どういうこと?
0456774ワット発電中さん
垢版 |
2024/02/03(土) 15:29:30.11ID:OiyNabRq
自分の言いたいことだけ言うんじゃなくて
もうちょっと読む人のこと考えて書いて貰えんかな

> デューティを変えるだけなら、IOもPWMも同じ命令数がかかる。
厳密に同じかは別としてそうね

> IOを使うと、Wレジスタを使わなくていい。
それはそう

> TMR2ON=0
> TMR2=X
> TMR2ON=1
> を入れないといけない。
うん、だから入れるよね?
使う前に準備して使い終わったら片付ける
日常生活でも基本だね

> 11XXX00000
> のXXXの部分でPWMのデューティサイクルを変えるようにしてしまうと
> 破綻が起こる。
> 同様にCCPR1L=Xって書くと、そのデューティが反映されるのは、
> その命令と同時?
PWMの動作の理解間違ってない?
デューティが反映されるのはタイマーがカウントアップした時だよ
あとはどのタイミングにデューティを書き換えても動作に関係ない
だからPWMの周期(10サイクル)より短い9サイクルでループを回してもいいよねってこと

> これをループで書くと、ループの制御に命令を食われ、
> 空き命令はほぼないことはご理解いただきたい。
だからIOと大差ないっつてるだろーが
0458774ワット発電中さん
垢版 |
2024/02/03(土) 15:41:12.97ID:OiyNabRq
自分の考えた方法で問題が無いなら変える必要はない
理解できない方法を無理に使う必要もない
でも理解できていないのに自分の理解の範囲で勝手に批評するな!

以上
0459774ワット発電中さん
垢版 |
2024/02/03(土) 16:10:27.33ID:+KViwNmT
なるほど、Dutyはそういうタイミングで更新されるんですね。
勉強になりました。

理解できていない、と言われると、まあ、そうなるのかもしれませんね。
しかし、完璧に理解しているかどうか、どうやって判断するんでしょうか。
自分は完璧だ、と思うことでしょうか?
無理だと思います。

批評というかですね、良いとか悪いは、私の意見です。
あなたの意見は違うかもしれません。
意見ですから。

それは言う自由があります。

理論的な正解はあると思っていますので、理論的に間違っていたら
指摘してください。それが勉強だと思っています。
0460774ワット発電中さん
垢版 |
2024/02/03(土) 16:20:50.64ID:rbBmK8qW
教わり方を勉強した方が良いね。
なんかムッとする内容だったから。
じぁあね。
0461774ワット発電中さん
垢版 |
2024/02/03(土) 16:24:29.47ID:+KViwNmT
なるほどね。
私にはまだ難しいなぁ。

ま、ともかく私も勉強させていただきました。
ありがとうございました。
0462774ワット発電中さん
垢版 |
2024/02/12(月) 23:04:26.65ID:WJ2xFEnn
WS2812Bを制御するのにEUSARTのAsyncモードでできそう
内蔵クロック8MHzx4か16MHzx4ができるPICでボーレートを8Mbpsに設定すると
START:1+DATA:8+STOP:1で800kキャラクタ/秒になる
data 0: H375ns+L875ns 0 00111111 1 書き込みデータ0xfc
data 1: H625ns+L625ns 0 00001111 1 書き込みデータ0xf0
CKTXP=1にして論理を反転して送信する
キャラクタ間で10命令または20命令実行できる
試してないから間違ってるかも
0463774ワット発電中さん
垢版 |
2024/02/13(火) 12:09:05.30ID:Ty1pIHd1
スタートビットとストップビットを信号の一部として使うアイデアは面白いけど
出力バッファ1キャラクタしかないから
RGB値1ビットずつセットする必要があるという根源的問題が残る
(割り込みを使うのが厳しいし他の処理がほぼできない)
PWMに対する利点がPWMを使わないくらい?
0464774ワット発電中さん
垢版 |
2024/02/13(火) 19:21:34.91ID:OrIxLg+l
そもそも最近のデバイスでCLCが使えないのって低コスト全振りのPIC16F152くらいじゃ?
老人の懐古趣味の世界
0465774ワット発電中さん
垢版 |
2024/02/13(火) 22:18:14.46ID:rKX2G5tt
無理してナウでヤングなフリすんなw
0466774ワット発電中さん
垢版 |
2024/02/15(木) 09:41:59.69ID:5yup8QCb
次はCLBで自由自在やね。 はーやくこいこい  13145シリーズ
0467774ワット発電中さん
垢版 |
2024/02/15(木) 19:24:00.13ID:I5128OAj
なんやその5桁型番て・・・
0468774ワット発電中さん
垢版 |
2024/02/15(木) 19:51:34.66ID:ZLZlf2v9
CLCを使ったやり方ってどうやるの?
ざっくりとでいいので教えてもらえませんか?
0470774ワット発電中さん
垢版 |
2024/02/16(金) 05:44:24.85ID:eSgicOEc
>>466
なんかいろいろできそうだな・・・と思ったけど、最大で20ピン?
0471774ワット発電中さん
垢版 |
2024/02/16(金) 08:25:17.98ID:n2OBVal/
単機能周辺デバイスを作るのがおもなターゲットかな?

趣味用には遊べそうだけど。
0472774ワット発電中さん
垢版 |
2024/02/17(土) 12:25:20.46ID:inx4M67b
USBオーディオDACを作っているがやっと動いた。とは言っても習作(安物AK4490REQ)なのだが
本番はAK4491EQ+AK4499EXEQで作る。チップ価格が高いのでまずはソフトテスト用環境構築。
・メインマイコン16F887
・ディスプレイマイコンPIC16F886
・COMBO384 I2C変換マイコンPIC16F88
AK4490REQでも1.8V内蔵レギュレータ使わないで外部供給にすると結構いい音でたまげたわ
https://i.imgur.com/dvuOo86.jpeg
https://i.imgur.com/DJiN44H.jpeg
0473774ワット発電中さん
垢版 |
2024/02/17(土) 12:26:47.12ID:u3r8RhWK
ピン数必要ならそれこそFPGAを使えばいいんじゃないの

単にGPIO増やしたいだけなら152シリーズ併用で
下手なGPIOエキスパンダより安いし

という訳で秋月で152シリーズを扱うようみんな要望出してくれ!
0474774ワット発電中さん
垢版 |
2024/02/17(土) 12:42:35.21ID:u3r8RhWK
>>472
言うだけ野暮だけど外部回路がキモならPICどうでも良くない?
もっと高性能で安価なUSB付きのマイコンボードあるじゃん

あとソフトテスト用環境とはいえノイズ対策はそれでいいの?
0476774ワット発電中さん
垢版 |
2024/02/17(土) 13:43:25.44ID:u3r8RhWK
PICの得意領域にPICを使う←わかる
PICの苦手領域をあえてPICで挑戦してみる←わかる
PIC使っても良いところにPICを使う←で?
ってだけだよ
0477774ワット発電中さん
垢版 |
2024/02/17(土) 16:45:53.55ID:rc1JsiRr
>>473
件のとその辺のFPGAの底辺とを比べても、どえらい差があるでしょ。価格といいLUT数といい。
たくさんの入力の特定条件をわしゃっとハードウェアデコードしてPICに割り込みかけたい、とかにはピン数ほしいよ。
0478774ワット発電中さん
垢版 |
2024/02/17(土) 17:18:41.43ID:lf/W+7C2
152てPIC16F152xx? これ、どんな特長があるんです?
0479774ワット発電中さん
垢版 |
2024/02/17(土) 20:50:32.45ID:u3r8RhWK
>>477
ピン数ほしいよって言ったところで現時点で無いもんは無いんだから……
0480774ワット発電中さん
垢版 |
2024/02/18(日) 08:29:39.16ID:6i5Cd1AG
無ければPICから離れるだけのこと。
希望を述べてはいけない法も無し。
0481774ワット発電中さん
垢版 |
2024/02/18(日) 09:33:13.40ID:FvPjCfbY
microchipは数百円のEEPLDを売ってて
> たくさんの入力の特定条件をわしゃっとハードウェアデコードしてPICに割り込みかけたい
みたいな一方通行でソフトウェア処理とのインタラクションが少ない用途は既にカバーしている

おそらく「その辺のFPGAの底辺」ってのが想定が違っていて
Microchip自身が力を入れ始めている小規模FPGAとは別に
LatticeのiCE40あたりの市場をターゲットにしていると思われる

もっと言えばルネサスがForgeFPGAとか言い出したから
「既存」の需要の確保、防衛として先手を打ったというところでは?

で、ForgeFPGAの量産品はいつ一般市場に出るんだろうか?
0482774ワット発電中さん
垢版 |
2024/02/18(日) 09:49:44.63ID:Laz3NhO1
市場の反応が良ければ多ピンの品種にも展開していくんじゃないですかね。
ピンにアサインできる自由度も増えて。
0484774ワット発電中さん
垢版 |
2024/02/18(日) 11:41:37.68ID:6i5Cd1AG
>>481
数100円の「PICひとつ」でやりたいなぁ。安価、コンパクトが売りだと思っているんで。
数100円で100MHz超の32bitマイコンとか使える時代なんだし。もうハードウェア要らんかも、な処理能力になりつつある。
0485774ワット発電中さん
垢版 |
2024/02/18(日) 11:45:56.90ID:6i5Cd1AG
>>483
CLBが32個でマクロセルが4つみたいよ。
0486774ワット発電中さん
垢版 |
2024/02/18(日) 12:18:06.05ID:wRCOhhMV
>>485
や、CPUコアの話ね
セル数は十分だから18か24シリーズで出してほしい
psoc好きで使ってるがコストとか消費電力とか色々いまいちなんだよね
0488774ワット発電中さん
垢版 |
2024/02/20(火) 22:39:44.86ID:KLKmZunp
PICで16コア?
0489774ワット発電中さん
垢版 |
2024/02/20(火) 22:57:51.60ID:vNPomogn
>>481
ルネサスは中国資本になって好調になったのでは?
0490774ワット発電中さん
垢版 |
2024/02/22(木) 07:50:55.88ID:1W9dwXT+
何かと誤解してない? そしてだから何?
ForgeFPGAという製品の話であってルネサスという会社の話はしてない
0491774ワット発電中さん
垢版 |
2024/02/22(木) 13:06:19.88ID:yNVjAFWH
PICxxアーキテクチャって言うよね
あと古いPIC16とPIC16F1はだいぶ別物
0492774ワット発電中さん
垢版 |
2024/02/22(木) 13:18:01.75ID:aFGDTPWG
みなさますみません。
知っている方が居られましたら教えて頂きたいです。
PIC16F1825を使用して、CCP4をシングルPWMで
出力しようとしています。CCP1〜CCP3まではシングルで
出力出来るのですが、CCP4だけなぜか出力出来ません。
試しにMCCで出力したコードを使用しても、CCP4だけ
出力されません。さらに、デバッグヘッダAC244043でも
同様でした。エラッタにも無いような気がします。
ピンが足らず、CCP4を使ったのが失敗でした・・・。
0494774ワット発電中さん
垢版 |
2024/02/22(木) 14:26:07.13ID:aFGDTPWG
>>493
大体そうですよね。なので、いつもは使わないMCCを使ってみた。
設定すると、デューティ関係なくHi(100%?)が出る。タイマ及び
他の設定はもちろんCCP1〜CCP4全部同じです。CCP1とCCP3,
CCP2とCCP4がペアみたいになっていますが、CCP3は問題なく
単独で出力されるんですよね。
0495774ワット発電中さん
垢版 |
2024/02/22(木) 14:58:57.07ID:ua6kw5ON
RC1 9 AN5 CPS5 C12IN1 CCP4 P1C(1)
これのCCP4って入力しかなくね?
CCP4の出力はModulatorのソースにしかなってないような
0496774ワット発電中さん
垢版 |
2024/02/22(木) 15:17:44.03ID:aFGDTPWG
>>495
うわー。ほんとですね。PINOUT DESCRIPTIONの表ではOutput Typeが
「CMOS」ではなく「ー」になってる。
0499774ワット発電中さん
垢版 |
2024/02/22(木) 23:05:02.74ID:1W9dwXT+
ああ、そうか
じゃあP1Cで出力すればいいってことでは?

PPS対応のデバイスに移行した方が幸せな気もするが
0500774ワット発電中さん
垢版 |
2024/02/23(金) 00:07:26.56ID:YOVKAxrV
皆様有難うございます。500Hzにして、分解能荒くなるけど、
ソフト処理でPWM出すことにしました。32段階ぐらいなら
いけるでしょ。空きピン無いし基板作ってしまったので
9ピンRC1で何とかします。
CCPx PWM x=1〜3とか書いてくれればいいのになあ。
0502774ワット発電中さん
垢版 |
2024/02/26(月) 20:32:48.53ID:uyDwvk7j
DC24Vから1.8V作ってPIC動かしたいんだけど
PIC自身で降圧チョッパ動かした例ってある?
電池一本駆動の昇圧の例はあるんだけど
0503774ワット発電中さん
垢版 |
2024/02/26(月) 20:47:17.29ID:uyDwvk7j
原理的にできるのは分かるんだけど
NMOSでやろうとするとゲート回路の電圧設計が結構繊細なんよね……
やっぱりスイッチングレギュレータIC使う方がいいのか
0504774ワット発電中さん
垢版 |
2024/02/27(火) 21:33:02.97ID:vg9ZPPdQ
NJW1933が秋月で80円だからなぁ
大きさもMOSFETと変わらんし
低電圧域は最新デバイスでも同期整流でも効率頭打ちだし
0505774ワット発電中さん
垢版 |
2024/03/10(日) 09:32:51.29ID:ZPilhXgr
PIC16F131ファミリーもPICkitminusでサポートされたようだね
肝心のデバイスが入手できてないが
0506774ワット発電中さん
垢版 |
2024/03/10(日) 09:44:58.99ID:ZPilhXgr
あと秋月でICD5入荷したな
どういう人が買うのか分からんが
0507774ワット発電中さん
垢版 |
2024/04/02(火) 00:24:58.66ID:eFHn00mT
PICをこれから始めようと思っている者です
プログラミングの経験はありません
色々検索して後閑哲也さんのサイトにたどり着いて
CD付きのC言語の書籍を買おうかと思いましたが
内容的に古過ぎたり、本当に初歩的なことが書いていないような事が
レビューに書かれていたりします
価格等から12Fシリーズ辺りで始めたいと思っているのですが
これを読んでおけば良いというおすすめの書籍やサイトはありますか?
アドバイスいただければ幸いです
回路図はある程度読めます
0508774ワット発電中さん
垢版 |
2024/04/02(火) 07:54:10.61ID:pG5IekrB
プログラミング経験がないってことはマイコンも初めてでしょ?
自分もPIC派だったんだけどさすがに今から始めるのにPICは勧めないな
ライタも高いし
Arduinoでもいいのでは
0509774ワット発電中さん
垢版 |
2024/04/02(火) 08:14:37.82ID:Ilg2hTEP
ホビーならarduinoが簡単だね
仕事でやるならPIC18Qがいいんじゃない
本は色々穴があっても後閑さんのがいいと思う
0510507
垢版 |
2024/04/02(火) 08:48:42.22ID:rlle0bDh
ありがとうございます
最終的には小型に作ったりしたいと思っています
ライターはPICKIT3を安い時に買ってます
本は現在のXCの時代のものでないのでそのまま使えないというようなのも見ました
Arduinoが簡単みたいですが、ハードが違うという事はこちらで始めてしまうと
PICで作りたいと思った時にそのままでは移行できないですよね?
C言語のルールとか恐らく当たり前の事はサイト等を見ても書いていないので、
各ファイルの役割とか基本的な事から書いてある物だと助かります
Arduinoだと良い本やサイトはありますか
基本から学ぶにはハードから見直した方が良いでしょうか?
0511774ワット発電中さん
垢版 |
2024/04/02(火) 17:39:25.18ID:bKY6ioLu
PIC32MZ2048EFでADC 16xオーバーサンプリングと980サンプルDMAしたいのだが、オーバーサンプリング中に何らかの割り込みが入るとオーバーサンプリング停止してしまうね。
DMAで各入力レイテンシーを最小にしたいと思ったが、うまくいかないものだ。
STM32H7ではこんなことは無いのに、PIC32はムズイ。
0512774ワット発電中さん
垢版 |
2024/04/02(火) 18:47:12.99ID:ufW6Y72u
>>510
とりあえず適当な12Fのデータシートを読んでみては。web上でタダで見れるから。理解できそうならもうそれで行けばいいし、サポート欲しければ本買えばいい。
一歩踏み出してみないことには、どこまで理解できるのか自分でもワカランでしょ。他人が判るはずもない。
0513774ワット発電中さん
垢版 |
2024/04/02(火) 21:47:20.65ID:rlle0bDh
>>512
ありがとうございます
一応現物買ってデータシート読んで色々なサイトを参考にはしています
どこの行がどういう意味を持っているのかとかコピペでやって
コンパイルエラーが出た時の対処法とかを
見つけ出すまで凄く遠回りをしていると感じたもので
書籍を買うなりちゃんと勉強をした方が良いと感じました
とりあえずシリアルデータを読み取ってLEDを光らせるとかのレベルでいいと思っていますが、
中途半端に人の書いた物をかじって基本的なルールとかを知らないのだなと感じました
PCの組み立てや基礎的な電子工作は出来ると思います
バッチファイルの分岐云々で躓いたので、考え方が出来ていないと思っています
0514774ワット発電中さん
垢版 |
2024/04/02(火) 22:32:13.94ID:r+/Wirdd
>>513
意外に良いのがYouTubeです。
「PICでLチカしてみた」とかのタイトルでいろいろ出ています。
ソース(プログラム)も出ていたりするので、
画面を止めてゆっくり見えます。

おすすめしたい勉強法は、以下の通りです。
1. 最初はマネ
   難しい理屈を考えようとせずに、人のまねをして、
   その通りの回路で、その通りのプログラムを
   何も考えずにベタでコピーして動くようにします。
   2-3種類を何度も何度もやります。いわゆる体育会系的に行います。
   すると、ツール(MPLABやPICKit)の使い方が覚えられます。
   鉛筆と消しゴムは無意識に使えないと
   国語の勉強ができないのと同じです。

2. 改造してみる
   プログラムをまねて打ち込んでいると、なんとなく意味がわかってきて
   「もしかしたら、こうしたらこうなるんじゃないか?」と
   予想が立てられるようになります。
   そうしたらプログラムの値を変えていじって結果を見て意味を考えます。
   エラーで動かなくなってしまっても、動くものからの変更なので、
   迷うことなく元に戻れます。
   いつでもスタート地点に戻れる環境、これが大変重要です。

3. 自分で1からやってみる
   上記2ができるようになるということは、
   もうツールの使い方からプログラムまでできるようになったということです。
   あとは自分で小さなプログラムを作ってみることです。
   いろいろと作っていくと、だんだんプログラム文法の
   わからないことが出てくるはずです。
   その時は、ネットや本、それこそ後閑さんの本を読んで見てください。
   知りたいことがはっきりしていますから、理解も格段に早いです。

アルデーノもいいですが、
最初は時間がかかりますが、ハードの製作を伴うほうが良いです。
ある地点で、それは突然にマイコン全体が見えてきます。
そこからの理解は、ハードが面倒だからとアルデーノから
スタートした人より、超スピードで理解が深まります。
これは実体験ですので、まちがいありません。
0515774ワット発電中さん
垢版 |
2024/04/02(火) 23:26:35.53ID:V2pf9ScH
最初にマイコンを学ぶなら癖ツヨのPICを選ばなくてもいいと思います。
0516774ワット発電中さん
垢版 |
2024/04/03(水) 09:27:08.82ID:xNYnXjiV
>>514
ありがとうございます
専用の書籍等があればと思いましたが
コピペがきかないので電子で・・・なんて思っておりました
どれも気軽に買える値段ではないのでしばらく見送りたいと思います
動画はほぼノーマークでした。
大きなヒントありがとうございます
元々ハードは好きでいじって来ましたがソフトは触れて来なかったので
やりながら繋がりを見つけて行きたいと思います
0517774ワット発電中さん
垢版 |
2024/04/03(水) 16:25:28.08ID:UFxLQxXE
>コンパイルエラーが
( ゚д゚)ハッ!

>価格等から12Fシリーズ辺りで始めたい
>最終的には小型に作ったりしたい
アセンブラだとばかり・・・
0518774ワット発電中さん
垢版 |
2024/04/03(水) 23:27:39.63ID:wGXC4LH/
いまさらアセンブラもないでしょ。
Cでやっとけば、PICだろうがどれでも同じだよ
0519774ワット発電中さん
垢版 |
2024/04/04(木) 08:47:38.68ID:yx/So+ZF
>Cでやっとけば、PICだろうがどれでも同じだよ

今はバンクをまたぐような配列確保やポインタ加算に問題はないのかな。
0520774ワット発電中さん
垢版 |
2024/04/04(木) 12:27:35.75ID:pM6h1GM4
ハーバード
0521774ワット発電中さん
垢版 |
2024/04/04(木) 14:17:02.50ID:AeJ4FVdP
PICやり始めたところだけど、勉強かねてアセンブラでやろうかと
0522774ワット発電中さん
垢版 |
2024/04/04(木) 16:56:12.81ID:3hSWQCrQ
PICも色々あるけど、12FとかクラスでCはどうだろうと思う。
0523774ワット発電中さん
垢版 |
2024/04/04(木) 19:22:48.96ID:V/yuYnxq
>>521
目覚めるもよし、辟易として高級言語に逃げるもよし。経験は血肉になるよ。
0524774ワット発電中さん
垢版 |
2024/04/04(木) 20:49:31.66ID:xVlVA/mJ
>>519
>今はバンクをまたぐような配列確保やポインタ加算に問題はないのかな。
そんなこと意識したことないな。Cのレベルに現れない。
0526774ワット発電中さん
垢版 |
2024/04/04(木) 22:09:57.17ID:AAK6jd8u
xc8はバンクとか無いので普通のCだわ。
出来ればC++で書ければ変数管理楽なんだが
0527774ワット発電中さん
垢版 |
2024/04/05(金) 02:11:31.40ID:6zH3TwXx
パイソンって使えないですかね?
0528774ワット発電中さん
垢版 |
2024/04/05(金) 07:49:10.69ID:eBp7SdwO
>>526
なるほど。
そのあたりの制約が無い(またはとても少ない)なら、C言語で取り組む限り、
「PICでマイコン入門」は問題なさそう。
0529774ワット発電中さん
垢版 |
2024/04/05(金) 20:38:33.19ID:mRd+wI9j
メモリ次第ってのもあるな12F509とかROM1kW,RAM41Byteしかないもんな、まあこんなのもう使う奴いないだろうけど…
12FでもRAMが1kあるやつもあるからそれくらいならCで書いても何とかなるかもな
0531774ワット発電中さん
垢版 |
2024/04/05(金) 23:05:33.68ID:7zlYgkTT
ピン数少ないのはデバッガ繋がらないから入門にはいまいちじゃない?
0533774ワット発電中さん
垢版 |
2024/04/06(土) 00:10:47.23ID:KTB8vtfn
パイソンって、記述の位置とかを変えてはいけないんでしたっけ。
0534774ワット発電中さん
垢版 |
2024/04/06(土) 00:22:23.36ID:+ZUUy86g
インデントがブロックに対応してるから固定といえば固定だな
煩いのはその位だけど
0535774ワット発電中さん
垢版 |
2024/04/06(土) 02:20:18.92ID:2l2zGroa
if( a==1 ){
  b++;
} else {
  b=8;
}

と書いたり
if( a==1 ){  b++; }
 else { b=8; }
とか書いたりしてるんですけど、それを許さないんですよね。
窮屈で、抵抗が1MΩくらいあります。
0536774ワット発電中さん
垢版 |
2024/04/06(土) 08:31:25.50ID:+ZUUy86g
上の書き方しか通らないね
俺は気にならんけど好みに合わないときついかもね
ライブラリが揃ってるからネットに繋ぐ物を作るのはすごく楽だよ
あとは地味だけど文字列の処理が楽
0537774ワット発電中さん
垢版 |
2024/04/06(土) 09:08:52.03ID:h1xjJO7c
好き嫌いとか印象で、好きだ嫌いだって言ってたら、自由奔放に取り残されるのが技術の世界ですね。
0538774ワット発電中さん
垢版 |
2024/04/06(土) 10:25:42.10ID:QRVAgh/I
>>537
変な文章。
何が言いたいのか。
0539774ワット発電中さん
垢版 |
2024/04/06(土) 10:43:05.10ID:h1xjJO7c
嫌いの感情が芽生えたら潰す方が、新しいものについていきやすい、って話ですよ。
0544774ワット発電中さん
垢版 |
2024/05/06(月) 11:42:43.73ID:AJKJxe4M
数年ぶりの久々にPICKit4を使おうとしたら、
Transmission on endpoint 2 failed (err = -109)
のエラーで全く使い物にならない。

以前使えていた時は同じパソコン筐体でWindow7で、USBポート(ドライバー)が3.0非対応だから2.0で通信していた。
今はWindow10にしていて、デバイスが対応していればUSB3.0通信が可能となっているのと
MPLABXを最新の6.20(前は5.45あたり)という違いがあります。

デバイスマネージャーを見ていると、firmwareを更新を開始して1分以内に
PICKit4が消滅して再表示されないので、更新処理に失敗していると思われる。

工場出荷状態に初期化は出来ているから、
USB通信に絡む部品が経年劣化しているのかな。
通信速度をLowにしても状況は変わらず。

もう純正品をやめて、PICerFTやPICKleを使おうかと悩み中。
0545774ワット発電中さん
垢版 |
2024/05/07(火) 17:58:34.80ID:3KUGx2ks
>>544
一度PICkit4のファーム書き直してみたら?
あとUSBケーブルを変えてみる
あと、複数のUSBコントローラ使われてるMBなら違う系統のポートに繋いでみるとか
0546774ワット発電中さん
垢版 |
2024/05/08(水) 22:47:20.73ID:YdZ8Lm9J
>>545
工場出荷状態に初期化は544に書いた通り実施済。

ケーブルは3種類試しました。
シールド付きの高級ケーブルは近所で今時売っていないので、
それは試していません。

違うポートは既に試しました。
普段タワー型を使っていて2口駄目で、更にノートパソコンでも試しました。
0548774ワット発電中さん
垢版 |
2024/05/09(木) 00:32:50.80ID:dWmyx8RG
意味が無いって意味じゃね?
0549774ワット発電中さん
垢版 |
2024/05/09(木) 02:30:53.04ID:RRxpVv6f
1と0どちらでも という意味では?
0552547
垢版 |
2024/05/09(木) 21:13:38.24ID:Fqp0OrLS
レスありがとうございます
おそらく、おもしろいPICマイコンPCI12F675を使いこなすって本に
って今見たら勘違いでした

MOVLW B'xxxxx011'
MOVWF TRISIO

MOVLW B'xxxxx0xx'
MOVWF ANSEL

xは元から入ってる数値を変更しない、みたいな認識でいいんでしょうか?
0553774ワット発電中さん
垢版 |
2024/05/10(金) 06:55:22.73ID:S2eI1pe0
TRISIOやANSELレジスタの仕様でそのビットには何も意味がない
もしくは
その本の中での使い方ではそのビットに何を設定しても動作に影響がない
みたいな感じかな
0554774ワット発電中さん
垢版 |
2024/05/10(金) 07:31:42.40ID:eisrEha4
ぼくの知らない記述だ。といってももう5年ぐらいPICのアセンブリ言語にはタッチしてないけど。

>MOVLW B'xxxxx0xx'
>xは元から入ってる数値を変更しない、みたいな認識でいいんでしょうか?

実際にそういう記述をしろと書いてあったのかな?
それとも、この機能を使うときは、xはあなたの用途に合わせて変えて、の意味だったのかな?


>>552さんには悪意はないのだろうけれど、質問するときに、情報を小出しにするのは良くないです。

>おそらく、おもしろいPICマイコンPCI12F675を使いこなすって本に
>って今見たら勘違いでした

「本は ”おもしろいPICマイコンPCI12F675を使いこなす”で、
今見てみたら、おそらく私の勘違いでした」
の意味でしょうか。

>552さんが書いた情報だけだと、この本を持っている人しか答えにくいです。
この本はAmazonでもレビューが少ないし、傾向としては、たくさん売れている本でもなさそうです。
どういう文脈で書かれているのか書いて質問する方が、より広い人からコメントをもらえるでしょう。
0555547
垢版 |
2024/05/10(金) 10:08:00.94ID:4d4CP/nA
みなさんサンクスです
>>553
この本の中で0と1どっちでもいいよとゆう意味だったのでしょうか
いまMPLABで
MOVLW B'11111111'
MOVLW B'xxxx0101'
と記述するとエラーでましたError[107] : Illegal digit (x in binary)

>>554
すいません情報小出しにするつもりはなかったんですけど
「よく使う表現だよ」「そんな記述方法はないよ」とか簡単に扱われるものだとおもてました

> 実際にそういう記述をしろと書いてあったのかな?
それがxについて注釈がないんです、
30行ぐらいの書けばプログラムが完成するような例文にサラっとかいてあるだけで

どうやらxを含む表現はなさそうですね
0556774ワット発電中さん
垢版 |
2024/05/10(金) 12:07:19.51ID:EmZIijbt
>>552
>xは元から入ってる数値を変更しない、みたいな認識でいいんでしょうか?
そう読むのが自然ですが
以下のように解釈するとよいです。

>MOVLW B'xxxxx011'  この話は下から3bitについて物を言ってるから
           下から3bitを001にして、残りはあなたの希望する値を入れてね。

>MOVLW B'xxxxx0xx'  この話は下から3bit目について物を言ってるから
           下から3bit目を0にして、残りはあなたの希望する値を入れてね。

xのbitは自分で判断、決定してね。僕は知らないからね。
0557547
垢版 |
2024/05/10(金) 17:12:06.24ID:4d4CP/nA
>>556
サンクス、任意の数値を入れないとダメですか
都合のいいように考えてました
いろいろとシビアですね
0558774ワット発電中さん
垢版 |
2024/05/10(金) 19:51:52.81ID:S2eI1pe0
ここに出されている情報だけで判断するとPCI12F675ということだからIOはb0~b5、TRISIOは入力/出力どっちにするか決めるレジスタ
b0~b2だけが具体的な数値が入っている
xが書いてあるb3~b5に何かつながっているなら>>556のように
>xのbitは自分で判断、決定してね。僕は知らないからね。
b3~b5に何もつながっていないなら>>553のように
>その本の中での使い方ではそのビットに何を設定しても動作に影響がない
という感じ
(xって書いたらエラーになってしまうのでだめだよ)
0560547
垢版 |
2024/05/10(金) 22:14:40.35ID:4d4CP/nA
まとめありがとうございます
mpasmコンパイラがMPLAB XIDEv5.35で終了していて
新しいアセンブラの情報がネットでも少なくて困ってました
0561774ワット発電中さん
垢版 |
2024/05/11(土) 00:09:34.19ID:KkVGTHB8
アセンブラの情報とかいう問題じゃなくて住所を書くサンプルに
XX県○○市
と書いてあったら、そのまま書類に書いちゃったレベルに見えるが
0562547
垢版 |
2024/05/11(土) 08:33:22.36ID:TphR4g5O
>>561
東京都xx区  フジテレビ本社
って書いたら郵便届きそうな気がしない?
0563774ワット発電中さん
垢版 |
2024/05/11(土) 09:16:57.62ID:1vk5IS0g
「住所を書くべきところには、XX県○○市とは書かない」という常識があるから、そうは書かないということであって、
その前提がなければわからない。さすがに、役所の申請用紙の住所欄ならどう書くべきかは、浸透率が高いだろうけれど、
本件のような、

X…変更しない
0…0にする
1…1にする

という認識にならないでいるためには、当該命令がどういうものなのかをわかってないといけない。

その本がどういう流れでそう書いたのかがわからんけれど。
0564774ワット発電中さん
垢版 |
2024/05/11(土) 12:09:02.36ID:lOkrlPTf
>>562
情報の重み付けを考えればこんな感じだろ。

;東京都xx区
movlw 'フジテレビ本社'
0565774ワット発電中さん
垢版 |
2024/05/11(土) 16:41:37.21ID:TphR4g5O
>>563
movlwの内部の命令構造をわかってないといけないってなかなか厳しいですね
ビット処理命令は操作対象外のビットも一度読み込み上書きって書いてあったような
気がするんですが、そんな感じかなあとおもてました

>>564
さいきんのとれんど
GOTO $+2
MOVLW 'フジテレビ'
MOVLW 'テレ東'
レスを投稿する


ニューススポーツなんでも実況